<?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>103697</bug_id>
          
          <creation_ts>2012-11-29 18:01:44 -0800</creation_ts>
          <short_desc>Unify IsActiveFlag, IsHoverFlag, and InActiveChainFlag to save bits in Node</short_desc>
          <delta_ts>2012-12-11 02:37:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104332</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>779682</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-29 18:01:44 -0800</bug_when>
    <thetext>I need another flag so I&apos;d like to make a space for it.
The number of nodes where these flags are on is small and they are tightly related,
we could get them together and manage a collection of enabled nodes in document object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779846</commentid>
    <comment_count>1</comment_count>
      <attachid>176904</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-29 23:26:05 -0800</bug_when>
    <thetext>Created attachment 176904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779890</commentid>
    <comment_count>2</comment_count>
      <attachid>176904</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-30 00:31:27 -0800</bug_when>
    <thetext>Comment on attachment 176904
Patch

Attachment 176904 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15059217

New failing tests:
editing/inserting/insert-div-027.html
accessibility/radio-button-group-members.html
css3/flexbox/flex-flow-margins.html
dom/xhtml/level2/html/HTMLOptionsCollection03.xhtml
dom/xhtml/level2/html/HTMLDocument13.xhtml
dom/html/level2/html/HTMLDocument13.html
dom/html/level2/html/HTMLOptionsCollection03.html
editing/execCommand/4580583-2.html
css3/flexbox/preferred-widths.html
css3/flexbox/flex-flow-orientations.html
dom/html/level2/html/HTMLCollection10.html
editing/inserting/insert-div-018.html
css3/flexbox/flex-flow-margins-auto-size.html
fast/block/block-remove-child-delete-line-box-crash.html
css3/flexbox/flex-flow-auto-margins.html
css3/flexbox/flex-flow-padding.html
animations/body-removal-crash.html
css3/flexbox/flex-align-end.html
dom/xhtml/level2/html/HTMLCollection10.xhtml
css3/flexbox/flex-flow-overflow.html
editing/execCommand/5481523.html
editing/inserting/insert-div-014.html
dom/html/level2/html/HTMLCollection02.html
editing/execCommand/4580583-1.html
css3/flexbox/true-centering.html
css3/flexbox/flex-flow-border.html
editing/inserting/break-blockquote-after-delete.html
editing/pasteboard/paste-RTFD.html
dom/xhtml/level2/html/HTMLCollection02.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779892</commentid>
    <comment_count>3</comment_count>
      <attachid>176911</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-30 00:37:51 -0800</bug_when>
    <thetext>Created attachment 176911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779937</commentid>
    <comment_count>4</comment_count>
      <attachid>176911</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-30 01:45:25 -0800</bug_when>
    <thetext>Comment on attachment 176911
Patch

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

&gt; Source/WebCore/dom/Node.h:-695
&gt; -        IsHoveredFlag = 1 &lt;&lt; 11,

I&apos;m not sure if we want to move hover flag. It&apos;s updated whenever user moves a mouse pointer. Doing hash look ups on every mouse move doesn&apos;t seem like a good idea. Focus &amp; active on the other hand only respond to mouse clicks, so they&apos;re probably not as crucial.

Also, why don&apos;t we just move them to NodeRareData instead of adding a new class &amp; hanging it off of Document?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779943</commentid>
    <comment_count>5</comment_count>
      <attachid>176911</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-30 01:51:44 -0800</bug_when>
    <thetext>Comment on attachment 176911
Patch

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

New failing tests:
http/tests/local/drag-over-remote-content.html
css3/flexbox/flex-flow-margins.html
dom/xhtml/level2/html/HTMLOptionsCollection03.xhtml
dom/xhtml/level2/html/HTMLDocument13.xhtml
dom/html/level2/html/HTMLDocument13.html
dom/html/level2/html/HTMLOptionsCollection03.html
editing/execCommand/4580583-2.html
css3/flexbox/preferred-widths.html
css3/flexbox/flex-flow-orientations.html
dom/html/level2/html/HTMLCollection10.html
css3/flexbox/flex-flow-overflow.html
css3/flexbox/flex-flow-margins-auto-size.html
animations/suspend-resume-animation-events.html
http/tests/inspector/console-cd-completions.html
css3/flexbox/flex-flow-auto-margins.html
css3/flexbox/flex-flow-padding.html
http/tests/misc/char-encoding-in-hidden-charset-field-default.html
animations/body-removal-crash.html
css3/flexbox/flex-align-end.html
dom/xhtml/level2/html/HTMLCollection10.xhtml
http/tests/misc/multiple-submit.html
editing/execCommand/5481523.html
dom/html/level2/html/HTMLCollection02.html
http/tests/inspector/console-cd.html
http/tests/misc/form-post-textplain.html
editing/execCommand/4580583-1.html
http/tests/misc/post-submit-button.html
css3/flexbox/true-centering.html
css3/flexbox/flex-flow-border.html
dom/xhtml/level2/html/HTMLCollection02.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779954</commentid>
    <comment_count>6</comment_count>
      <attachid>176928</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-30 02:07:58 -0800</bug_when>
    <thetext>Created attachment 176928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779956</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-30 02:11:02 -0800</bug_when>
    <thetext>I expect Document::m_focusedNode, m_activeNode and m_hoverNode can also be moved to 
this class. That will make it easy to track lifetime of these nodes.
But it should happen in separate changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779958</commentid>
    <comment_count>8</comment_count>
      <attachid>176930</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-30 02:18:11 -0800</bug_when>
    <thetext>Created attachment 176930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780000</commentid>
    <comment_count>9</comment_count>
      <attachid>176930</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-30 04:21:44 -0800</bug_when>
    <thetext>Comment on attachment 176930
Patch

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

New failing tests:
fast/html/details-add-summary-10-and-click.html
fast/html/details-add-summary-8-and-click.html
fast/html/details-add-summary-1-and-click.html
fast/html/details-add-summary-2-and-click.html
fast/html/details-remove-summary-6-and-click.html
fast/html/details-add-summary-7-and-click.html
fast/html/details-remove-summary-5-and-click.html
fast/html/details-add-summary-5-and-click.html
fast/html/details-remove-summary-1-and-click.html
fast/html/details-add-summary-6-and-click.html
fast/html/details-remove-summary-4-and-click.html
fast/html/details-add-summary-3-and-click.html
fast/html/details-remove-summary-3-and-click.html
fast/html/details-add-summary-4-and-click.html
fast/html/details-remove-summary-2-and-click.html
fast/html/details-add-summary-9-and-click.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780013</commentid>
    <comment_count>10</comment_count>
      <attachid>176930</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-11-30 04:49:34 -0800</bug_when>
    <thetext>Comment on attachment 176930
Patch

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

&gt; Source/WebCore/dom/Node.cpp:919
&gt; +bool Node::respondingNodeIs(RespondingNodeFlags flags) const
&gt; +{
&gt; +    ASSERT(responding());
&gt; +    if (Document* doc = document())
&gt; +        return doc-&gt;respondingNodes()-&gt;hasFlags(this, flags);
&gt; +    return false;
&gt;  }

respondingNodeIs function seems bit unnecessary. Why not just call respondingNodes()-&gt;isActive() from Node::active() directly, similar to the setters? Then Node won&apos;t have to know about the flags at all.

&gt; Source/WebCore/dom/Node.h:326
&gt; +    bool responding() const { return getFlag(IsRespondingFlag); }

isResponding(). The existing accessors don&apos;t follow the pattern but there is not need why new ones wouldn&apos;t.

&gt; Source/WebCore/dom/Node.h:334
&gt; +    void setResponding(bool flag) { setFlag(flag, IsRespondingFlag); }
&gt; +
&gt; +    enum RespondingNodeFlags {
&gt; +        IsActiveFlag      = 1 ,
&gt; +        InActiveChainFlag = 1 &lt;&lt; 1,
&gt; +        IsHoveredFlag     = 1 &lt;&lt; 2,
&gt; +        IsFocusedFlag     = 1 &lt;&lt; 3
&gt; +    };

Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.

I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.

&gt; Source/WebCore/dom/Node.h:340
&gt; +    bool respondingNodeIs(RespondingNodeFlags) const;

This should be private.

&gt; Source/WebCore/dom/RespondingNodeSet.h:39
&gt; +class RespondingNodeSet {

Do these flags ever have meaning on non-Elements? If not this could be tightened to be RespondingElementSet.

&gt; Source/WebCore/dom/RespondingNodeSet.h:64
&gt; +    void documentRemovedLastRef() { m_nodes.clear(); }

documentDidRemoveLastRef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780753</commentid>
    <comment_count>11</comment_count>
      <attachid>176930</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-01 11:28:45 -0800</bug_when>
    <thetext>Comment on attachment 176930
Patch

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

&gt;&gt; Source/WebCore/dom/Node.h:334
&gt;&gt; +    };
&gt; 
&gt; Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.
&gt; 
&gt; I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.

The CSS spec calls these &quot;User Action pseudo classes&quot;. It&apos;s a bit wordy, but InteractivePseudoFlags maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780813</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-01 17:39:56 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 176930 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176930&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/Node.h:334
&gt; &gt;&gt; +    };
&gt; &gt; 
&gt; &gt; Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.
&gt; &gt; 
&gt; &gt; I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.
&gt; 
&gt; The CSS spec calls these &quot;User Action pseudo classes&quot;. It&apos;s a bit wordy, but InteractivePseudoFlags maybe?
So these nodes are interacting. InteractingNodeSet might be better name then.
I&apos;ll update the patch that way. Thanks for suggestions, and reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780828</commentid>
    <comment_count>13</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-01 18:34:39 -0800</bug_when>
    <thetext>&gt; &gt; &gt; Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.
&gt; &gt; 
&gt; &gt; The CSS spec calls these &quot;User Action pseudo classes&quot;. It&apos;s a bit wordy, but InteractivePseudoFlags maybe?
&gt; So these nodes are interacting. InteractingNodeSet might be better name then.
&gt; I&apos;ll update the patch that way. Thanks for suggestions, and reviews!

Yeah. I think that&apos;s better. Although, &quot;interacting&quot; sounds to me like the nodes are interacting with each other. So, I think InteractiveNodeSet would be a little less confusing.

It&apos;s still not a very clear name. I&apos;m having trouble thinking of anything better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780838</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-01 21:43:10 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; &gt; &gt; Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.
&gt; &gt; &gt; 
&gt; &gt; &gt; The CSS spec calls these &quot;User Action pseudo classes&quot;. It&apos;s a bit wordy, but InteractivePseudoFlags maybe?
&gt; &gt; So these nodes are interacting. InteractingNodeSet might be better name then.
&gt; &gt; I&apos;ll update the patch that way. Thanks for suggestions, and reviews!
&gt; 
&gt; Yeah. I think that&apos;s better. Although, &quot;interacting&quot; sounds to me like the nodes are interacting with each other. So, I think InteractiveNodeSet would be a little less confusing.

How about NodesInUserInteraction or NodesWithUserAction?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781127</commentid>
    <comment_count>15</comment_count>
      <attachid>177178</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-02 22:11:31 -0800</bug_when>
    <thetext>Created attachment 177178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781132</commentid>
    <comment_count>16</comment_count>
      <attachid>176930</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-02 22:16:16 -0800</bug_when>
    <thetext>Comment on attachment 176930
Patch

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

Thanks for the review, Antti! I updated the patch.

&gt;&gt; Source/WebCore/dom/Node.cpp:919
&gt;&gt;  }
&gt; 
&gt; respondingNodeIs function seems bit unnecessary. Why not just call respondingNodes()-&gt;isActive() from Node::active() directly, similar to the setters? Then Node won&apos;t have to know about the flags at all.

I tried to hide RespondingNodeSet.h in Node.cpp. But it might have been overkill.
I moved it to Node.h and get rid of this indirection.

&gt;&gt; Source/WebCore/dom/Node.h:326
&gt;&gt; +    bool responding() const { return getFlag(IsRespondingFlag); }
&gt; 
&gt; isResponding(). The existing accessors don&apos;t follow the pattern but there is not need why new ones wouldn&apos;t.

Right done.

&gt;&gt;&gt;&gt; Source/WebCore/dom/Node.h:334
&gt;&gt;&gt;&gt; +    };
&gt;&gt;&gt; 
&gt;&gt;&gt; Instead of being in Node, RespondingNodeFlags might be more natural as RespondingNodeSet::Flags.
&gt;&gt;&gt; 
&gt;&gt;&gt; I&apos;m not sure &quot;responding&quot; really captures these well. Responding to what? I don&apos;t have better suggestions though.
&gt;&gt; 
&gt;&gt; The CSS spec calls these &quot;User Action pseudo classes&quot;. It&apos;s a bit wordy, but InteractivePseudoFlags maybe?
&gt; 
&gt; So these nodes are interacting. InteractingNodeSet might be better name then.
&gt; I&apos;ll update the patch that way. Thanks for suggestions, and reviews!

I moved these flags to UserActionElementSet (yes, this is new name).

&gt;&gt; Source/WebCore/dom/RespondingNodeSet.h:39
&gt;&gt; +class RespondingNodeSet {
&gt; 
&gt; Do these flags ever have meaning on non-Elements? If not this could be tightened to be RespondingElementSet.

Right. These for selector matching thus makes sense only for Elements. Updated patch reflects this fact.

&gt;&gt; Source/WebCore/dom/RespondingNodeSet.h:64
&gt;&gt; +    void documentRemovedLastRef() { m_nodes.clear(); }
&gt; 
&gt; documentDidRemoveLastRef

Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781569</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 10:02:18 -0800</bug_when>
    <thetext>I would not call this “cleanup”. I retitled the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781591</commentid>
    <comment_count>18</comment_count>
      <attachid>177178</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-03 10:19:43 -0800</bug_when>
    <thetext>Comment on attachment 177178
Patch

Causing many failures in fast/html/details-*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784278</commentid>
    <comment_count>19</comment_count>
      <attachid>177868</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 16:50:23 -0800</bug_when>
    <thetext>Created attachment 177868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784282</commentid>
    <comment_count>20</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 16:52:42 -0800</bug_when>
    <thetext>&gt; Created an attachment (id=177868) [details]
&gt; Patch
Fixed broken tests, addressed misleading title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784316</commentid>
    <comment_count>21</comment_count>
      <attachid>177868</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-05 17:21:47 -0800</bug_when>
    <thetext>Comment on attachment 177868
Patch

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

&gt; Source/WebCore/dom/Node.h:712
&gt; +        IsInUserActionFlag = 1 &lt;&lt; 10,

IsUserActionElementFlag/IsInUserActionElementSetFlag or similar.

&gt; Source/WebCore/dom/UserActionElementSet.h:48
&gt; +public:
&gt; +    enum ElementFlags {
&gt; +        IsActiveFlag      = 1 ,
&gt; +        InActiveChainFlag = 1 &lt;&lt; 1,
&gt; +        IsHoveredFlag     = 1 &lt;&lt; 2,
&gt; +        IsFocusedFlag     = 1 &lt;&lt; 3
&gt; +    };

I think this enum can be private.

&gt; Source/WebCore/dom/UserActionElementSet.h:58
&gt; +    static PassOwnPtr&lt;UserActionElementSet&gt; create() { return adoptPtr(new UserActionElementSet()); }
&gt; +    static bool isFocused(const Node* node) { return hasFlags(node, IsFocusedFlag); }
&gt; +    static void setFocused(Node* node, bool enable) { setFlags(node, enable, IsFocusedFlag); }
&gt; +    static bool isActive(const Node* node) { return hasFlags(node, IsActiveFlag); }
&gt; +    static void setActive(Node* node, bool enable) { setFlags(node, enable, IsActiveFlag); }
&gt; +    static bool isInActiveChain(const Node* node) { return hasFlags(node, InActiveChainFlag); }
&gt; +    static void setInActiveChain(Node* node, bool enable) { setFlags(node, InActiveChainFlag, enable); }
&gt; +    static bool isHovered(const Node* node) { return hasFlags(node, IsHoveredFlag); }
&gt; +    static void setHovered(Node* node, bool enable) { setFlags(node, enable, IsHoveredFlag); }

Jumping trough these static functions seems strange and unnecessary. Why is this done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784367</commentid>
    <comment_count>22</comment_count>
      <attachid>177868</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 17:51:09 -0800</bug_when>
    <thetext>Comment on attachment 177868
Patch

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

&gt;&gt; Source/WebCore/dom/Node.h:712
&gt;&gt; +        IsInUserActionFlag = 1 &lt;&lt; 10,
&gt; 
&gt; IsUserActionElementFlag/IsInUserActionElementSetFlag or similar.

Sure. Will fix.

&gt;&gt; Source/WebCore/dom/UserActionElementSet.h:48
&gt;&gt; +    };
&gt; 
&gt; I think this enum can be private.

Right. will do.

&gt;&gt; Source/WebCore/dom/UserActionElementSet.h:58
&gt;&gt; +    static void setHovered(Node* node, bool enable) { setFlags(node, enable, IsHoveredFlag); }
&gt; 
&gt; Jumping trough these static functions seems strange and unnecessary. Why is this done?

Yeah, ideally we could write document()-&gt;userActionElementSet().isFocused() or something
but we need some kind of indirection like this
since neither Node.h and UserActionElement.h cannot depend on Document which owns UserActionElement.
We can access Document::userActionElementSet() only inside .cpp files due to this dependency restriction.

But I agree that having many static functions looks strange. Will try to move them to non-statics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784486</commentid>
    <comment_count>23</comment_count>
      <attachid>177868</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 19:07:51 -0800</bug_when>
    <thetext>Comment on attachment 177868
Patch

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

New failing tests:
touchadjustment/touch-links-active.html
fast/events/touch/gesture/gesture-tap-active-state.html
editing/selection/editable-links.html
fast/css/hover-active-drag.html
fast/forms/search-cancel-button-mouseup.html
fast/events/touch/gesture/gesture-tap-active-state-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784513</commentid>
    <comment_count>24</comment_count>
      <attachid>177868</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 19:57:06 -0800</bug_when>
    <thetext>Comment on attachment 177868
Patch

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

New failing tests:
touchadjustment/touch-links-active.html
fast/events/touch/gesture/gesture-tap-active-state.html
editing/selection/editable-links.html
fast/css/hover-active-drag.html
fast/forms/search-cancel-button-mouseup.html
fast/events/touch/gesture/gesture-tap-active-state-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784536</commentid>
    <comment_count>25</comment_count>
      <attachid>177918</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 20:51:30 -0800</bug_when>
    <thetext>Created attachment 177918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784538</commentid>
    <comment_count>26</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 20:52:18 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=177918) [details]
&gt; Patch
Addressed Antti&apos;s point, fixed broken test (which was caused by a bad copy-n-paste)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785070</commentid>
    <comment_count>27</comment_count>
      <attachid>177918</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-06 11:18:32 -0800</bug_when>
    <thetext>Comment on attachment 177918
Patch

Attachment 177918 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15170594</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785491</commentid>
    <comment_count>28</comment_count>
      <attachid>178126</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-06 17:56:22 -0800</bug_when>
    <thetext>Created attachment 178126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786276</commentid>
    <comment_count>29</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-07 16:28:29 -0800</bug_when>
    <thetext>Bots are all green!
Antti, could you take another look when you have time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786296</commentid>
    <comment_count>30</comment_count>
      <attachid>178126</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-07 16:41:21 -0800</bug_when>
    <thetext>Comment on attachment 178126
Patch

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

I’ve started to think that maybe it’s better to make NodeRareData deletable.

&gt; Source/WebCore/ChangeLog:13
&gt; +        aElementFlags.

Typo: aElementFlags.

&gt; Source/WebCore/ChangeLog:22
&gt; +        flags. However, there are certain differences, that are why such a
&gt; +        data structure is worth adding:

This sentence doesn’t read smoothly. How about something like &quot;however, the following characteristics of these flags make adding a new data structure on Document an attractive alternative&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786624</commentid>
    <comment_count>31</comment_count>
      <attachid>178126</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-08 14:30:23 -0800</bug_when>
    <thetext>Comment on attachment 178126
Patch

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

&gt; Source/WebCore/dom/UserActionElementSet.cpp:38
&gt; +    if (Document* doc = node-&gt;document())

Please don’t abbreviate document to doc in new code. Just use the whole word.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786898</commentid>
    <comment_count>32</comment_count>
      <attachid>178450</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-09 16:39:14 -0800</bug_when>
    <thetext>Created attachment 178450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786900</commentid>
    <comment_count>33</comment_count>
      <attachid>178126</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-09 16:40:57 -0800</bug_when>
    <thetext>Comment on attachment 178126
Patch

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

Ryosuke, Dari, Thanks for the review!
I updated the patch to address these points.

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        aElementFlags.
&gt; 
&gt; Typo: aElementFlags.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:22
&gt;&gt; +        data structure is worth adding:
&gt; 
&gt; This sentence doesn’t read smoothly. How about something like &quot;however, the following characteristics of these flags make adding a new data structure on Document an attractive alternative&quot;.

Sounds good. I copy-pasted this.

&gt;&gt; Source/WebCore/dom/UserActionElementSet.cpp:38
&gt;&gt; +    if (Document* doc = node-&gt;document())
&gt; 
&gt; Please don’t abbreviate document to doc in new code. Just use the whole word.

Right. I should get rid of my bad habit :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787971</commentid>
    <comment_count>34</comment_count>
      <attachid>178696</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-10 20:24:17 -0800</bug_when>
    <thetext>Created attachment 178696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787974</commentid>
    <comment_count>35</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-10 20:25:21 -0800</bug_when>
    <thetext>I talked Antti at IRC and updated the patch to take his advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788215</commentid>
    <comment_count>36</comment_count>
      <attachid>178696</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-11 02:16:13 -0800</bug_when>
    <thetext>Comment on attachment 178696
Patch

Looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788216</commentid>
    <comment_count>37</comment_count>
      <attachid>178696</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-11 02:17:28 -0800</bug_when>
    <thetext>Comment on attachment 178696
Patch

Thanks! Landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788219</commentid>
    <comment_count>38</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-11 02:20:20 -0800</bug_when>
    <thetext>Yeh, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788234</commentid>
    <comment_count>39</comment_count>
      <attachid>178696</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 02:37:24 -0800</bug_when>
    <thetext>Comment on attachment 178696
Patch

Clearing flags on attachment: 178696

Committed r137277: &lt;http://trac.webkit.org/changeset/137277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788235</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 02:37:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176904</attachid>
            <date>2012-11-29 23:26:05 -0800</date>
            <delta_ts>2012-11-30 00:37:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121130162337.patch</filename>
            <type>text/plain</type>
            <size>18131</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI0MGI0
YWQ1ZmQzMDdkZDc1MzcyMTkwNzQwM2Q0YWY3M2I2YzU2MzEuLjAzYTNmM2I3MDBkOGUyZTA0YTEx
NzE1NTA4MzgyNDZiNWJmZmRkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA1LDYgKzEy
MDUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1JhbmdlLmNwcAogICAgIGRvbS9S
YW5nZUV4Y2VwdGlvbi5jcHAKICAgICBkb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwCisg
ICAgZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmgKICAgICBkb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAK
ICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAogICAgIGRvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAw
NjdjNzFjNWQwODM0MWJmZmQxNTk4N2IwMjZjMDgyNGVlYTIyNGI0Li44NzA2YTRiYTk1YzUxZDBh
YWM4NmIwYThmYjg2ZWQzMTY1MDBmMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTI5MDksNiArMjkwOSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9S
ZW5kZXJlZERvY3VtZW50TWFya2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05v
ZGVTZXQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyZDQwYWQw
YmQyNjVkODc3NWNhZjZmYzg4ZDU1MzNkNDE2ZTMxNzkyLi5iNzczMmY0NTMzNzgwNzNiN2FlOGQ2
MGEwM2Q3YTk4MDJjOWZiMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTE2MTcsNiArMTYxNyw3IEBAIEhF
QURFUlMgKz0gXAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20vUmVnaXN0ZXJlZEV2ZW50TGlz
dGVuZXIuaCBcCiAgICAgZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBcCisgICAgZG9tL1Jl
c3BvbmRpbmdOb2RlU2V0LmggXAogICAgIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
aCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDYyNWMxZWZhMWY5YmE1OTEyZmY5NzE4NDM3
M2IwYWEyMDI2YjhjMy4uMDE0YWM0NmU3YTllNmE3OTUzMDA2MjFjMjJjOTFhOTdiOTVhZWNiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjg3LDYgKzY4Nyw3IEBACiAgICAgICAgICAgICAnZG9tL1Jh
bmdlLmgnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCcsCiAgICAgICAg
ICAgICAnZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9S
ZXNwb25kaW5nTm9kZVNldC5oJywKICAgICAgICAgICAgICdkb20vUmVuZGVyZWREb2N1bWVudE1h
cmtlci5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAg
ICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggZGI3NGQ1NWRlNWMxMGYwNmQ1NTIxNjEzMzBhY2Y2NzI1N2UyMTliMi4uMDIzZTFmZTgwNDBl
NDUwYmFhZTJjNGJhMjk4NjM0YzAxZmQyNDU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMzQsNiArMTM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJS
ZXNwb25kaW5nTm9kZVNldC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
ICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUu
aCIKQEAgLTQzOSw2ICs0NDAsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX2NvbnRl
eHRGZWF0dXJlcyhDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKSkKICAgICAsIG1fY29t
cGF0aWJpbGl0eU1vZGUoTm9RdWlya3NNb2RlKQogICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZUxv
Y2tlZChmYWxzZSkKKyAgICAsIG1fcmVzcG9uZGluZ05vZGVzKFJlc3BvbmRpbmdOb2RlU2V0Ojpj
cmVhdGUoKSkKICAgICAsIG1fZG9tVHJlZVZlcnNpb24oKytzX2dsb2JhbFRyZWVWZXJzaW9uKQog
I2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCiAgICAgLCBtX211dGF0aW9uT2JzZXJ2ZXJU
eXBlcygwKQpAQCAtNTcyOCw3ICs1NzMwLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJB
Y3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAg
ICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBvbGRBY3RpdmVOb2RlLT5yZW5kZXJlcigp
OyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmIChjdXJyLT5u
b2RlKCkgJiYgIWN1cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgY3Vyci0+bm9kZSgp
LT5zZXRBY3RpdmUoZmFsc2UpOwotICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+Y2xlYXJJ
bkFjdGl2ZUNoYWluKCk7CisgICAgICAgICAgICAgICAgbV9yZXNwb25kaW5nTm9kZXMtPmNsZWFy
SW5BY3RpdmVDaGFpbihjdXJyLT5ub2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIHNldEFjdGl2ZU5vZGUoMCk7CkBAIC01NzM5LDcgKzU3NDEsNyBAQCB2b2lkIERvY3Vt
ZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0
LCBIaXRUZXN0UmVzdQogICAgICAgICAgICAgLy8gd2lsbCBuZWVkIHRvIHJlZmVyZW5jZSB0aGlz
IGNoYWluLgogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBuZXdBY3RpdmVO
b2RlLT5yZW5kZXJlcigpOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoY3Vyci0+bm9kZSgpICYmICFjdXJyLT5pc1RleHQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgY3Vyci0+bm9kZSgpLT5zZXRJbkFjdGl2ZUNoYWluKCk7CisgICAgICAgICAgICAg
ICAgICAgIG1fcmVzcG9uZGluZ05vZGVzLT5zZXRJbkFjdGl2ZUNoYWluKGN1cnItPm5vZGUoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzZXRBY3RpdmVOb2RlKG5ld0FjdGl2ZU5vZGUp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDRlMjY3MTYxMTIyMGQzZmJmNzcy
MGEwOGRjNGQ3OTUzZGExZTUwZWUuLjNlZDg3NzI2ZmUyNzAzZGU0ZmQ4ZmM1NTQ1MTk2ZjExOTNl
OGU5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjQsNiArMTI0LDcgQEAgY2xhc3MgUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBSZW5kZXJBcmVuYTsKIGNsYXNzIFJlbmRlclZp
ZXc7CiBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOworY2xhc3MgUmVzcG9uZGluZ05vZGVTZXQ7CiBj
bGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsK
IGNsYXNzIFNjcmlwdFJ1bm5lcjsKQEAgLTY4Myw2ICs2ODQsNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4pOwogICAgIE5vZGUqIGZvY3VzZWRO
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkTm9kZS5nZXQoKTsgfQorICAgIFJlc3BvbmRp
bmdOb2RlU2V0KiByZXNwb25kaW5nTm9kZXMoKSAgeyByZXR1cm4gbV9yZXNwb25kaW5nTm9kZXMu
Z2V0KCk7IH0KIAogICAgIHZvaWQgZ2V0Rm9jdXNhYmxlTm9kZXMoVmVjdG9yPFJlZlB0cjxOb2Rl
PiA+Jik7CiAgICAgCkBAIC0xMzE0LDYgKzEzMTYsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxO
b2RlPiBtX2hvdmVyTm9kZTsKICAgICBSZWZQdHI8Tm9kZT4gbV9hY3RpdmVOb2RlOwogICAgIFJl
ZlB0cjxFbGVtZW50PiBtX2RvY3VtZW50RWxlbWVudDsKKyAgICBPd25QdHI8UmVzcG9uZGluZ05v
ZGVTZXQ+IG1fcmVzcG9uZGluZ05vZGVzOwogCiAgICAgdWludDY0X3QgbV9kb21UcmVlVmVyc2lv
bjsKICAgICBzdGF0aWMgdWludDY0X3Qgc19nbG9iYWxUcmVlVmVyc2lvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCA5ZjA4OTAzYzFmMzlkYzdhNmVmNDRmNzY5M2FhMjdkOGEzNTdjYTUxLi4yNGQyYmNi
NTViZWI0MzQ4OGU1ODA0Y2FkOWEwMWJhNjVhZDljNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC04
Niw2ICs4Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUmVzcG9uZGlu
Z05vZGVTZXQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0b3JRdWVyeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC04OTEsMTYgKzg5MiwzMCBA
QCB2b2lkIE5vZGU6OmxhenlBdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNo
ZWQpCiAgICAgbWFya0FuY2VzdG9yc1dpdGhDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAot
dm9pZCBOb2RlOjpzZXRGb2N1cyhib29sIGIpCit2b2lkIE5vZGU6OnNldEZvY3VzKGJvb2wgZmxh
ZykKIHsgCi0gICAgaWYgKGIgfHwgaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURh
dGEoKS0+c2V0Rm9jdXNlZChiKTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCkp
CisgICAgICAgIGRvYy0+cmVzcG9uZGluZ05vZGVzKCktPnNldEZvY3VzZWQodGhpcywgZmxhZyk7
CiB9CiAKLWJvb2wgTm9kZTo6cmFyZURhdGFGb2N1c2VkKCkgY29uc3QKK3ZvaWQgTm9kZTo6c2V0
QWN0aXZlKGJvb2wgZmxhZywgYm9vbCkKIHsKLSAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7Ci0g
ICAgcmV0dXJuIHJhcmVEYXRhKCktPmlzRm9jdXNlZCgpOworICAgIGlmIChEb2N1bWVudCogZG9j
ID0gZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jLT5yZXNwb25kaW5nTm9kZXMoKS0+c2V0QWN0aXZl
KHRoaXMsIGZsYWcpOworfQorCit2b2lkIE5vZGU6OnNldEhvdmVyZWQoYm9vbCBmbGFnKQorewor
ICAgIGlmIChEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jLT5yZXNwb25k
aW5nTm9kZXMoKS0+c2V0SG92ZXJlZCh0aGlzLCBmbGFnKTsKK30KKworYm9vbCBOb2RlOjpyZXNw
b25kaW5nTm9kZUlzKFJlc3BvbmRpbmdOb2RlRmxhZ3MgZmxhZ3MpIGNvbnN0Cit7CisgICAgQVNT
RVJUKHJlc3BvbmRpbmcoKSk7CisgICAgaWYgKERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgpKQor
ICAgICAgICByZXR1cm4gZG9jLT5yZXNwb25kaW5nTm9kZXMoKS0+aGFzRmxhZ3ModGhpcywgZmxh
Z3MpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBOb2RlOjpzdXBwb3J0c0ZvY3VzKCkg
Y29uc3QKQEAgLTEyNDYsMTQgKzEyNjEsMTQgQEAgdm9pZCBOb2RlOjpkZXRhY2goKQogICAgIEFT
U0VSVCghcmVuZGVyZXIoKSk7CiAKICAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKTsKLSAg
ICBpZiAoaG92ZXJlZCgpKQotICAgICAgICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7
Ci0gICAgaWYgKGluQWN0aXZlQ2hhaW4oKSkKLSAgICAgICAgZG9jLT5hY3RpdmVDaGFpbk5vZGVE
ZXRhY2hlZCh0aGlzKTsKLQotICAgIGNsZWFyRmxhZyhJc0FjdGl2ZUZsYWcpOwotICAgIGNsZWFy
RmxhZyhJc0hvdmVyZWRGbGFnKTsKLSAgICBjbGVhckZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOwor
ICAgIGlmIChyZXNwb25kaW5nKCkpIHsKKyAgICAgICAgaWYgKGhvdmVyZWQoKSkKKyAgICAgICAg
ICAgIGRvYy0+aG92ZXJlZE5vZGVEZXRhY2hlZCh0aGlzKTsKKyAgICAgICAgaWYgKGluQWN0aXZl
Q2hhaW4oKSkKKyAgICAgICAgICAgIGRvYy0+YWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWQodGhpcyk7
CisgICAgICAgIGRvYy0+cmVzcG9uZGluZ05vZGVzKCktPmRpZERldGFjaCh0aGlzKTsKKyAgICB9
CisKICAgICBjbGVhckZsYWcoSXNBdHRhY2hlZEZsYWcpOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggNjU5M2Y3OGUyMmE1YWQyMTNhYjEyODI2ZDk5NzVkZjIyNTg4YjFiNC4uOTBm
NmY4ZGZjZWNhNzQ2NTMwM2MyNjRlNTA4MzVkMzZhNGE3Y2QwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0z
MjMsMTAgKzMyMywyMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0OwogICAgIGJv
b2wgaGFzQ2xhc3MoKSBjb25zdDsKIAotICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
Z2V0RmxhZyhJc0FjdGl2ZUZsYWcpOyB9Ci0gICAgYm9vbCBpbkFjdGl2ZUNoYWluKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxhZyhJbkFjdGl2ZUNoYWluRmxhZyk7IH0KLSAgICBib29sIGhvdmVyZWQo
KSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzSG92ZXJlZEZsYWcpOyB9Ci0gICAgYm9vbCBmb2N1
c2VkKCkgY29uc3QgeyByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhRm9jdXNlZCgpIDog
ZmFsc2U7IH0KKyAgICBib29sIHJlc3BvbmRpbmcoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElz
UmVzcG9uZGluZ0ZsYWcpOyB9CisgICAgdm9pZCBzZXRSZXNwb25kaW5nKGJvb2wgZmxhZykgeyBz
ZXRGbGFnKGZsYWcsIElzUmVzcG9uZGluZ0ZsYWcpOyB9CisKKyAgICBlbnVtIFJlc3BvbmRpbmdO
b2RlRmxhZ3MgeworICAgICAgICBJc0FjdGl2ZUZsYWcgICAgICA9IDEgLAorICAgICAgICBJbkFj
dGl2ZUNoYWluRmxhZyA9IDEgPDwgMSwKKyAgICAgICAgSXNIb3ZlcmVkRmxhZyAgICAgPSAxIDw8
IDIsCisgICAgICAgIElzRm9jdXNlZEZsYWcgICAgID0gMSA8PCAzCisgICAgfTsKKworICAgIGJv
b2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gcmVzcG9uZGluZygpICYmIHJlc3BvbmRpbmdOb2Rl
SXMoSXNBY3RpdmVGbGFnKTsgfQorICAgIGJvb2wgaW5BY3RpdmVDaGFpbigpIGNvbnN0IHsgcmV0
dXJuIHJlc3BvbmRpbmcoKSAmJiByZXNwb25kaW5nTm9kZUlzKEluQWN0aXZlQ2hhaW5GbGFnKTsg
fQorICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIHJlc3BvbmRpbmcoKSAmJiByZXNw
b25kaW5nTm9kZUlzKElzSG92ZXJlZEZsYWcpOyB9CisgICAgYm9vbCBmb2N1c2VkKCkgY29uc3Qg
eyByZXR1cm4gcmVzcG9uZGluZygpICYmIHJlc3BvbmRpbmdOb2RlSXMoSXNGb2N1c2VkRmxhZyk7
IH0KKyAgICBib29sIHJlc3BvbmRpbmdOb2RlSXMoUmVzcG9uZGluZ05vZGVGbGFncykgY29uc3Q7
CisKICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0F0dGFjaGVk
RmxhZyk7IH0KICAgICB2b2lkIHNldEF0dGFjaGVkKCkgeyBzZXRGbGFnKElzQXR0YWNoZWRGbGFn
KTsgfQogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuIHN0eWxlQ2hh
bmdlVHlwZSgpICE9IE5vU3R5bGVDaGFuZ2U7IH0KQEAgLTMzOSw5ICszNTEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IHNldEZsYWcoQ2hpbGROZWVk
c1N0eWxlUmVjYWxjRmxhZyk7IH0KICAgICB2b2lkIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxj
KCkgeyBjbGVhckZsYWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyk7IH0KIAotICAgIHZvaWQg
c2V0SW5BY3RpdmVDaGFpbigpIHsgc2V0RmxhZyhJbkFjdGl2ZUNoYWluRmxhZyk7IH0KLSAgICB2
b2lkIGNsZWFySW5BY3RpdmVDaGFpbigpIHsgY2xlYXJGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsg
fQotCiAgICAgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VU
eXBlID0gRnVsbFN0eWxlQ2hhbmdlKTsKICAgICB2b2lkIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygp
IHsgbV9ub2RlRmxhZ3MgJj0gflN0eWxlQ2hhbmdlTWFzazsgfQogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZVNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBG
dWxsU3R5bGVDaGFuZ2UpIHsgc2V0TmVlZHNTdHlsZVJlY2FsYyhjaGFuZ2VUeXBlKTsgfQpAQCAt
MzcwLDggKzM3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGxhenlSZWF0dGFjaChTaG91bGRTZXRB
dHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29s
ID0gdHJ1ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGYgPSB0cnVlLCBib29s
IC8qcGF1c2UqLyA9IGZhbHNlKSB7IHNldEZsYWcoZiwgSXNBY3RpdmVGbGFnKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJvb2wgZiA9IHRydWUpIHsgc2V0RmxhZyhmLCBJc0hvdmVy
ZWRGbGFnKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0gdHJ1ZSwgYm9v
bCAvKnBhdXNlKi8gPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCBm
ID0gdHJ1ZSk7CiAKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKQEAgLTY5
MSwzNyArNzAwLDM1IEBAIHByaXZhdGU6CiAgICAgICAgIENoaWxkTmVlZHNTdHlsZVJlY2FsY0Zs
YWcgPSAxIDw8IDcsCiAgICAgICAgIEluRG9jdW1lbnRGbGFnID0gMSA8PCA4LAogICAgICAgICBJ
c0xpbmtGbGFnID0gMSA8PCA5LAotICAgICAgICBJc0FjdGl2ZUZsYWcgPSAxIDw8IDEwLAotICAg
ICAgICBJc0hvdmVyZWRGbGFnID0gMSA8PCAxMSwKLSAgICAgICAgSW5BY3RpdmVDaGFpbkZsYWcg
PSAxIDw8IDEyLAotICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDEzLAotICAgICAgICBJ
c0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxNCwKKyAgICAgICAgSXNSZXNwb25kaW5nRmxh
ZyA9IDEgPDwgMTAsCisgICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCisgICAgICAg
IElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAogCiAgICAgICAgIC8vIFRoZXNlIGJp
dHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNh
bgogICAgICAgICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5v
ZGUgYml0cyBhYm92ZS4KLSAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAx
IDw8IDE1LCAvLyBFbGVtZW50CisgICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFn
ID0gMSA8PCAxMywgLy8gRWxlbWVudAogI2lmIEVOQUJMRShTVkcpCi0gICAgICAgIEhhc1NWR1Jh
cmVEYXRhRmxhZyA9IDEgPDwgMTYsIC8vIFNWR0VsZW1lbnQKKyAgICAgICAgSGFzU1ZHUmFyZURh
dGFGbGFnID0gMSA8PCAxNCwgLy8gU1ZHRWxlbWVudAogI2VuZGlmCiAKICAgICAgICAgU3R5bGVD
aGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNo
YW5nZVNoaWZ0ICsgMSksCiAKLSAgICAgICAgU2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9
IDEgPDwgMTksCisgICAgICAgIFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE3
LAogCi0gICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1RleHRGbGFnID0gMSA8PCAyMCwKKyAgICAg
ICAgSGFzTmFtZU9ySXNFZGl0aW5nVGV4dEZsYWcgPSAxIDw8IDE4LAogCi0gICAgICAgIEluTmFt
ZWRGbG93RmxhZyA9IDEgPDwgMjEsCi0gICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVz
RmxhZyA9IDEgPDwgMjIsCi0gICAgICAgIEhhc0N1c3RvbUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDIz
LAotICAgICAgICBIYXNTY29wZWRIVE1MU3R5bGVDaGlsZEZsYWcgPSAxIDw8IDI0LAotICAgICAg
ICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyNSwKLSAgICAgICAgVjhDb2xsZWN0YWJs
ZUR1cmluZ01pbm9yR0NGbGFnID0gMSA8PCAyNiwKLSAgICAgICAgSXNJbnNlcnRpb25Qb2ludEZs
YWcgPSAxIDw8IDI3LAorICAgICAgICBJbk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDE5LAorICAgICAg
ICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8IDIwLAorICAgICAgICBIYXND
dXN0b21DYWxsYmFja3NGbGFnID0gMSA8PCAyMSwKKyAgICAgICAgSGFzU2NvcGVkSFRNTFN0eWxl
Q2hpbGRGbGFnID0gMSA8PCAyMiwKKyAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEg
PDwgMjMsCisgICAgICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEgPDwgMjQs
CisgICAgICAgIElzSW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAyNSwKIAogICAgICAgICBEZWZh
dWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKICAgICB9OwogCi0g
ICAgLy8gNCBiaXRzIHJlbWFpbmluZworICAgIC8vIDYgYml0cyByZW1haW5pbmcKIAogICAgIGJv
b2wgZ2V0RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ub2RlRmxhZ3MgJiBt
YXNrOyB9CiAgICAgdm9pZCBzZXRGbGFnKGJvb2wgZiwgTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsg
bV9ub2RlRmxhZ3MgPSAobV9ub2RlRmxhZ3MgJiB+bWFzaykgfCAoLShpbnQzMl90KWYgJiBtYXNr
KTsgfSAKQEAgLTc4Nyw3ICs3OTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCk7CiAKICAgICB2aXJ0dWFsIE93blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0
ZVJhcmVEYXRhKCk7Ci0gICAgYm9vbCByYXJlRGF0YUZvY3VzZWQoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgUmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiAwOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBhYzU1MWMzYTIyY2MxNDAxZmNiODlj
N2EwNTg2MmJlMmNjZjIzYTgxLi44ZTNlNzVkMzI2NmUzYjkzYzZkNWI4MGM2YzkzNTYyNGFlOWRj
OTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yMDUsNyArMjA1LDYgQEAgcHVi
bGljOgogICAgICAgICAsIG1fdGFiSW5kZXgoMCkKICAgICAgICAgLCBtX2NoaWxkSW5kZXgoMCkK
ICAgICAgICAgLCBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseShmYWxzZSkKLSAgICAgICAgLCBt
X2lzRm9jdXNlZChmYWxzZSkKICAgICAgICAgLCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRl
U29vbkFmdGVyQXR0YWNoKGZhbHNlKQogICAgICAgICAsIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHko
ZmFsc2UpCiAgICAgICAgICwgbV9pc0luQ2FudmFzU3VidHJlZShmYWxzZSkKQEAgLTMyNCw5ICsz
MjMsNiBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKLSAgICBib29sIGlzRm9jdXNlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9Ci0gICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wgZm9j
dXNlZCkgeyBtX2lzRm9jdXNlZCA9IGZvY3VzZWQ7IH0KLQogICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByb3RlY3RlZDoKQEAg
LTM3Miw3ICszNjgsNiBAQCBwcml2YXRlOgogICAgIHNob3J0IG1fdGFiSW5kZXg7CiAgICAgdW5z
aWduZWQgc2hvcnQgbV9jaGlsZEluZGV4OwogICAgIGJvb2wgbV90YWJJbmRleFdhc1NldEV4cGxp
Y2l0bHkgOiAxOwotICAgIGJvb2wgbV9pc0ZvY3VzZWQgOiAxOwogICAgIGJvb2wgbV9uZWVkc0Zv
Y3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaCA6IDE7CiAgICAgYm9vbCBtX3N0eWxl
QWZmZWN0ZWRCeUVtcHR5IDogMTsKICAgICBib29sIG1faXNJbkNhbnZhc1N1YnRyZWUgOiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2MxZDU4Y2Ji
Y2I2NTQ1MjM1YTYzNWMzNWI0MjNmMjdiNGFkZWFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFJlc3BvbmRpbmdOb2RlU2V0X2gKKyNkZWZpbmUgUmVzcG9uZGluZ05vZGVTZXRfaAorCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUmVzcG9uZGluZ05vZGVTZXQgeworcHVibGljOgorCisgICAgc3RhdGljIFBh
c3NPd25QdHI8UmVzcG9uZGluZ05vZGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5l
dyBSZXNwb25kaW5nTm9kZVNldCgpKTsgfQorCisgICAgdm9pZCBzZXRBY3RpdmUoTm9kZSogbm9k
ZSkgeyBzZXRGbGFncyhub2RlLCBOb2RlOjpJc0FjdGl2ZUZsYWcpOyB9CisgICAgdm9pZCBzZXRB
Y3RpdmUoTm9kZSogbm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBO
b2RlOjpJc0FjdGl2ZUZsYWcpOyB9CisgICAgdm9pZCBjbGVhckFjdGl2ZShOb2RlKiBub2RlKSB7
IGNsZWFyRmxhZ3Mobm9kZSwgTm9kZTo6SXNBY3RpdmVGbGFnKTsgfQorICAgIGJvb2wgaXNBY3Rp
dmUoY29uc3QgTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwgTm9kZTo6
SXNBY3RpdmVGbGFnKTsgfQorCisgICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWluKE5vZGUqIG5vZGUp
IHsgc2V0RmxhZ3Mobm9kZSwgTm9kZTo6SW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgdm9pZCBj
bGVhckluQWN0aXZlQ2hhaW4oTm9kZSogbm9kZSkgeyBjbGVhckZsYWdzKG5vZGUsIE5vZGU6Oklu
QWN0aXZlQ2hhaW5GbGFnKTsgfQorICAgIGJvb2wgaXNJbkFjdGl2ZUNoYWluKGNvbnN0IE5vZGUq
IG5vZGUpIGNvbnN0IHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIE5vZGU6OkluQWN0aXZlQ2hhaW5G
bGFnKTsgfQorCisgICAgdm9pZCBzZXRIb3ZlcmVkKE5vZGUqIG5vZGUpIHsgc2V0RmxhZ3Mobm9k
ZSwgTm9kZTo6SXNIb3ZlcmVkRmxhZyk7IH0KKyAgICB2b2lkIHNldEhvdmVyZWQoTm9kZSogbm9k
ZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBOb2RlOjpJc0hvdmVyZWRG
bGFnKTsgfQorICAgIHZvaWQgY2xlYXJIb3ZlcmVkKE5vZGUqIG5vZGUpIHsgY2xlYXJGbGFncyhu
b2RlLCBOb2RlOjpJc0hvdmVyZWRGbGFnKTsgfQorICAgIGJvb2wgaXNIb3ZlcmVkKGNvbnN0IE5v
ZGUqIG5vZGUpIGNvbnN0IHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIE5vZGU6OklzSG92ZXJlZEZs
YWcpOyB9CisKKyAgICB2b2lkIHNldEZvY3VzZWQoTm9kZSogbm9kZSkgeyBzZXRGbGFncyhub2Rl
LCBOb2RlOjpJc0ZvY3VzZWRGbGFnKTsgfQorICAgIHZvaWQgc2V0Rm9jdXNlZChOb2RlKiBub2Rl
LCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUsIE5vZGU6OklzRm9jdXNlZEZs
YWcpOyB9CisgICAgdm9pZCBjbGVhckZvY3VzZWQoTm9kZSogbm9kZSkgeyBjbGVhckZsYWdzKG5v
ZGUsIE5vZGU6OklzRm9jdXNlZEZsYWcpOyB9CisgICAgYm9vbCBpc0ZvY3VzZWQoY29uc3QgTm9k
ZSogbm9kZSkgY29uc3QgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwgTm9kZTo6SXNGb2N1c2VkRmxh
Zyk7IH0KKworICAgIGJvb2wgaGFzRmxhZ3MoY29uc3QgTm9kZSosIHVuc2lnbmVkKSBjb25zdDsK
KyAgICB2b2lkIGRpZERldGFjaChOb2RlKik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRGbGFn
cyhOb2RlKiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0
RmxhZ3Mobm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBmbGFncyk7IH0KKyAgICB2b2lk
IHNldEZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBjbGVhckZsYWdzKE5vZGUqLCB1
bnNpZ25lZCk7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCB1bnNpZ25lZD4g
Tm9kZUZsYWdNYXA7CisgICAgTm9kZUZsYWdNYXAgbV9ub2RlczsKK307CisKK2lubGluZSB2b2lk
IFJlc3BvbmRpbmdOb2RlU2V0OjpzZXRGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykK
K3sKKyAgICBOb2RlRmxhZ01hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9ub2Rlcy5maW5kKG5vZGUp
OworICAgIGlmIChyZXN1bHQgIT0gbV9ub2Rlcy5lbmQoKSkgeworICAgICAgICBBU1NFUlQobm9k
ZS0+cmVzcG9uZGluZygpKTsKKyAgICAgICAgcmVzdWx0LT52YWx1ZSB8PSBmbGFnczsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG5vZGUtPnNldFJlc3BvbmRpbmcodHJ1ZSk7CisgICAg
bV9ub2Rlcy5hZGQobm9kZSwgZmxhZ3MpOworfQorCitpbmxpbmUgdm9pZCBSZXNwb25kaW5nTm9k
ZVNldDo6Y2xlYXJGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAo
IW5vZGUtPnJlc3BvbmRpbmcoKSkgeworICAgICAgICBBU1NFUlQobV9ub2Rlcy5lbmQoKSA9PSBt
X25vZGVzLmZpbmQobm9kZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTm9kZUZs
YWdNYXA6Oml0ZXJhdG9yIGZvdW5kID0gbV9ub2Rlcy5maW5kKG5vZGUpOworICAgIGlmIChmb3Vu
ZCA9PSBtX25vZGVzLmVuZCgpKSB7CisgICAgICAgIG5vZGUtPnNldFJlc3BvbmRpbmcoZmFsc2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdW5zaWduZWQgdXBkYXRlZCA9IGZvdW5k
LT52YWx1ZSAmIH5mbGFnczsKKyAgICBpZiAoIXVwZGF0ZWQpIHsKKyAgICAgICAgbm9kZS0+c2V0
UmVzcG9uZGluZyhmYWxzZSk7CisgICAgICAgIG1fbm9kZXMucmVtb3ZlKGZvdW5kKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGZvdW5kLT52YWx1ZSA9IHVwZGF0ZWQ7Cit9CisKK2lu
bGluZSB2b2lkIFJlc3BvbmRpbmdOb2RlU2V0OjpkaWREZXRhY2goTm9kZSogbm9kZSkKK3sKKyAg
ICBBU1NFUlQobm9kZS0+cmVzcG9uZGluZygpKTsKKyAgICBub2RlLT5zZXRSZXNwb25kaW5nKGZh
bHNlKTsKKyAgICBtX25vZGVzLnJlbW92ZShub2RlKTsKK30KKworaW5saW5lIGJvb2wgUmVzcG9u
ZGluZ05vZGVTZXQ6Omhhc0ZsYWdzKGNvbnN0IE5vZGUqIG5vZGUsICB1bnNpZ25lZCBmbGFncykg
Y29uc3QKK3sKKyAgICBpZiAoIW5vZGUtPnJlc3BvbmRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgTm9kZUZsYWdNYXA6OmNvbnN0X2l0ZXJhdG9yIGZvdW5kID0gbV9ub2Rlcy5m
aW5kKGNvbnN0X2Nhc3Q8Tm9kZSo+KG5vZGUpKTsKKyAgICBpZiAoZm91bmQgPT0gbV9ub2Rlcy5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGZvdW5kLT52YWx1ZSAm
IGZsYWdzOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUmVzcG9uZGluZ05vZGVT
ZXRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176911</attachid>
            <date>2012-11-30 00:37:51 -0800</date>
            <delta_ts>2012-11-30 02:07:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121130173523.patch</filename>
            <type>text/plain</type>
            <size>32278</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE3NDZiOGMxMDNhOGJi
OGM4ODg2MmE0NWI1MjllOTJiNjg4YzNmYy4uNGFkYTcxMGI1ODFlOWE1MDk2MGIxMzFjNmVjM2Q1
ZWI3NWQ3N2NiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTMwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb2RlRmxhZ3MgY2xl
YW51cDogSXNBY3RpdmVGbGFnLCBJc0hvdmVyRmxhZywgSW5BY3RpdmVDaGFpbkZsYWcgY2FuIGJl
IHVuaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUbyBzYXZlIHR3byBtb3JlIE5vZGVGbGFncyBiaXRzLCBUaGlzIHBhdGNoIGlucm9kdWNlcwor
ICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywg
SW5BY3RpdmVDaGFpbkZsYWcKKyAgICAgICAgdG9nZXRoZXIuIFRoZXNlIHRocmVlIGV4aXN0aW5n
IGZsYWdzIGFyZSByZXBsYWNlZCBieQorICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIGFuZCBuZXds
eSBpbnJvZHVjZWQgTm9kZTo6UmVzcG9uZGluZ05vZGVGbGFncyBhbmQKKyAgICAgICAgUmVzcG9u
ZGluZ05vZGVTZXQuCisKKyAgICAgICAgV2hlbiBtYXJraW5nIGEgbm9kZSBhcyBhY3RpdmUgZm9y
IGV4YW1wbGUsIFdlYktpdCBzZXQKKyAgICAgICAgSXNSZXNwb25kaW5nRmxhZyB0byB0aGUgbm9k
ZSBhbmQgc3RvcmUgdGhlIG5vZGUgaW50byBjb3JyZXNwb25kaW5nCisgICAgICAgIG5vZGUgc2V0
IG9mIHRoZSBkb2N1bWVudC4gdGhlIHNldCBtYWludGFpbnMgbWFya2VkIG5vZGVzIGFuZAorICAg
ICAgICBjb3JyZXNwb25kaW5nIGZsYWdzIGZvciBlYWNoIG5vZGUuCisKKyAgICAgICAgUmVzcG9u
ZGluZ05vZGVTZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhlciByYXJlIGRhdGEgZm9yIHRo
ZXNlCisgICAgICAgIHRocmVlIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUgY2VydGFpbiBkaWZm
ZXJlbmNlcywgdGhhdCBhcmUgd2h5CisgICAgICAgIHN1Y2ggYSBkYXRhIHN0cnVjdHVyZSBpcyB3
b3J0aCBhZGRpbmc6CisKKyAgICAgICAgLSBSZXNwb25kaW5nTm9kZVNldCBpcyBtYWludGFpbmVk
IGZvciBlYWNoIERvY3VtZW50IGluc3RlYWQgb2YgZ2xvYmFsLiBUaGF0IGZpdHMgbmF0dXJhbCBs
aWZldGltZSBvZiBub2Rlcy4KKyAgICAgICAgLSBUaGUgbnVtYmVyIG9mIG5vZGVzIHdoaWNoIGhh
cyB0aGVzZSBmbGFncyBhcmUgZ2VuZXJhbGx5IHNtYWxsLCBhbmQgYSBncm91cCBvZiBub2RlcyBm
b3IgZWFjaCBmbGFnIGlzCisgICAgICAgICAgbGFyZ2VseSBvdmVybGFwcGVkIGR1ZSB0byBpdHMg
bmF0dXJlLiBUaGlzIHByb3BlcnR5IGtlZXBzIHRoZSBzZXQgc21hbGwsIGFuZCBsZXRzIGZsYWcg
cmV0cmlldmFsIGVmZmljaWVudC4KKyAgICAgICAgICBPbiBtYWpvcml0eSBvZiB0aGUgbm9kZXMs
IGFsbCB0aGVzZSBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMgZG9uZSBieSBqdXN0
IGNoZWNraW5nIElzUmVzcG9uZGluZ0ZsYWcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJl
c3BvbmRpbmdOb2Rlcyk6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Rm9jdXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6c2V0SG92ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXNwb25kaW5n
Tm9kZUlzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRldGFjaCk6CisgICAgICAgICogZG9t
L05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlc3BvbmRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6c2V0UmVzcG9uZGluZyk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbkFjdGl2
ZUNoYWluKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmhvdmVyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6Zm9jdXNlZCk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOiBSZW1v
dmVkIG1faXNGb2N1c2VkCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJl
RGF0YSk6CisgICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGRvbS9SZXNwb25kaW5n
Tm9kZVNldC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNwb25kaW5nTm9kZVNldDo6Y2xlYXJGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNw
b25kaW5nTm9kZVNldDo6c2V0RmxhZ3MpOgorICAgICAgICAqIGRvbS9SZXNwb25kaW5nTm9kZVNl
dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzcG9uZGluZ05vZGVT
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpjbGVhckFjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNwb25kaW5nTm9kZVNldDo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9u
ZGluZ05vZGVTZXQ6OnNldEluQWN0aXZlQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9u
ZGluZ05vZGVTZXQ6OmNsZWFySW5BY3RpdmVDaGFpbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNw
b25kaW5nTm9kZVNldDo6aXNJbkFjdGl2ZUNoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3Bv
bmRpbmdOb2RlU2V0OjpzZXRIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdO
b2RlU2V0OjpjbGVhckhvdmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVT
ZXQ6OmlzSG92ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6c2V0
Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6Y2xlYXJGb2N1
c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0Ojppc0ZvY3VzZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmRvY3VtZW50UmVtb3ZlZExhc3RS
ZWYpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OnNldEZsYWdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpkaWREZXRhY2gpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6Omhhc0ZsYWdzKToKKwogMjAxMi0xMS0yOSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW1dl
YktpdDJdIFdlYktpdFdlYlZpZXdCYXNlIGNyZWF0ZXMgYSBHTCBjb250ZXh0IGZvciB0aGUgcmVk
aXJlY3RlZCBYQ29tcG9zaXRlIHdpbmRvdyBjcmFzaGluZyBXZWJLaXQgaW4gWHZmYgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA5NjFjNWQ1NTkzOGNjNDgwYjdlMmE4NTI1NmUwZjUyNzMyMDM5NmRi
Li5mNmRkNjI4OWY4NTA3N2E4ZGRlMjE5ZWZhZjU1MzNiZDQyODU2NzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTIwNSw2ICsxMjA1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRv
bS9SYW5nZS5jcHAKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwCiAgICAgZG9tL1JlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcAorICAgIGRvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAKICAgICBk
b20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBlNTJhMTY4ZmY2NzllYzEwYjdmZWVhZDQ5OTNmYjZiZGNi
Y2ExYjA0Li5iMTIxOTk0NzBiMmNmMjZmZGJiM2IwOGQ0YWQ5ODNiYTcxMGI0OTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI5MDksNiArMjkwOSw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZW5kZXJlZERvY3VtZW50TWFya2VyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Jl
c3BvbmRpbmdOb2RlU2V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2ZW50UXVl
dWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA0OGExMDE0ZDQ2NmY1NmEyOWM5ZDI3MDU2M2I1Mzk3MDQzMGUwM2Q0Li5hMGE5NzhjNDE2
ZWE0MWQxZTMyNDUwNWIxNzVlMGE3ZWZiNDhkMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ0NSw2ICs0
NDUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwIFwKICAgICBk
b20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggXAogICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lci5jcHAgXAorICAgIGRvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAgXAogICAgIGRvbS9TY29w
ZWRFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAgXAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwKQEAgLTE2MTgsNiAr
MTYxOSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20vUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBc
CisgICAgZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmggXAogICAgIGRvbS9TY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIuaCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAgICAgZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTNkNjAxMzlhNGM3YzZm
Mzc2YTM0OTdkMGNiODE4MWE4MjQ4Y2NmNy4uNmJmODRlNTM1NmY5YWNiMmIyOWZiYWNlOTdiNjVj
NmE5ZmY4OTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzkxNCw2ICszOTE0LDggQEAKICAgICAg
ICAgICAgICdkb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9S
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5oJywKKyAgICAgICAgICAgICdkb20vUmVzcG9uZGluZ05vZGVT
ZXQuaCcsCisgICAgICAgICAgICAnZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwJywKICAgICAgICAgICAgICdkb20vU2NvcGVk
RXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RWxlbWVudC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDViMzRkNTE3MWFhNjU5YzAyOTAwMzI4NzUxM2ZkZTQyNDE0NTM1NzUuLmNiOGE2ZWMzYTkxMTE2
MTMwMWRiMzVhYTUwMGMzOGI3YmQ4ZjZmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4ODMsNiArMzg4Myw3IEBACiAJCUE3
MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzIzRjc3
QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRC
RSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBSZXNwb25k
aW5nTm9kZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFJlc3BvbmRpbmdOb2RlU2V0LmggKi87IH07
CiAJCUE3MkVBM0JCMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRUEzQkExNTg1
Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAwMzFBQUY5
IC8qIFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi87
IH07CiAJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAw
MzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTM5MDEsNiArMzkwMiw3IEBACiAJCUE3NUU4QjhEMEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21w
b25lbnRUcmFuc2Zlci5oICovOyB9OwogCQlBNzVFOEI4RTBFMURFMkQ2MDA3RjI0ODEgLyogRkVD
b21wb3NpdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLzsgfTsKIAkJ
QTc1RThCOEYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEg
LyogRkVDb21wb3NpdGUuaCAqLzsgfTsKKwkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5IC8qIFJl
c3BvbmRpbmdOb2RlU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9kZVNldC5j
cHAgKi87IH07CiAJCUE3NkU1RjdGMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50
TWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovOyB9
OwogCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTEzMEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkg
LyogSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IH07CkBAIC0x
MTIwNSw2ICsxMTIwNyw3IEBACiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29u
dHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERy
YWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzFBNzBD
OTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzI3NjNCRTE2Njg5QkZCMDAyRkNBQ0IgLyog
UmVzcG9uZGluZ05vZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVz
cG9uZGluZ05vZGVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyRUEzQkEx
NTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlZkNvdW50ZWRTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSb3VuZGVk
UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMTksNiArMTEyMjIsNyBA
QAogCQlBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvbmVudFRyYW5zZmVyLmg7IHBh
dGggPSBmaWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQ29tcG9zaXRlLmNwcDsgcGF0aCA9
IGZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb3NpdGUuaDsgcGF0aCA9IGZpbHRlcnMvRkVDb21wb3Np
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2OUU5NjkxNjY4OUQwQzAwNUQ0
NTI5IC8qIFJlc3BvbmRpbmdOb2RlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlc3BvbmRpbmdOb2RlU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyZWREb2N1bWVudE1hcmtl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxMzBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTE0MEQ2
QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjExMyw2
ICsyMjExNyw4IEBACiAJCQkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9j
dW1lbnRNYXJrZXIuaCAqLywKIAkJCQk0OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCAqLywKIAkJCQk0OTk4QUVDNTEzRjlEMEVBMDA5MEIx
QUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovLAorCQkJCUE3NjlFOTY5
MTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9kZVNldC5jcHAgKi8sCisJCQkJQTcyNzYz
QkUxNjY4OUJGQjAwMkZDQUNCIC8qIFJlc3BvbmRpbmdOb2RlU2V0LmggKi8sCiAJCQkJOUJEMEJG
OTIxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuY3BwICovLAogCQkJCTlCRDBC
RjkxMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi8sCiAJCQkJQTg0RDgy
QzAxMUQzNDc0ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgKi8sCkBA
IC0yNTA4Myw2ICsyNTA4OSw3IEBACiAJCQkJN0VFNjg0NkYxMkQyNkUzODAwRTc5NDE1IC8qIFJl
c291cmNlUmVxdWVzdENGTmV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RUU2ODQ3MDEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2
N0YwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNzI3NjNCRjE2Njg5QkZCMDAyRkNBQ0IgLyogUmVzcG9uZGluZ05vZGVTZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1
bXVsYXRpb25CdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2RjcwMEMx
QTM1OSAvKiBSZXZlcmJDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjgzMTQsNiArMjgz
MjEsNyBAQAogCQkJCTUxNEM3NjdFMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNl
QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RUU2ODQ3MTEyRDI2RTM4MDBFNzk0MTUgLyog
UmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3NjU1MENF
OTIzNEYwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5IC8qIFJlc3BvbmRpbmdOb2RlU2V0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMzE2MEE0MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQTYxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkFjY3Vt
dWxhdGlvbkJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBBODEyQjAyNkY3MDBD
MUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01BbGxJbk9uZS5jcHAKaW5kZXggNTA2ZTI2N2VhYTI0NWQ5YzE0NzAwYzJkM2NkYTQxYzg2Nzli
MjI2YS4uY2FjODFhOGFkOTU1MTM2Y2FiZjBjZmVjYTg2ZDgxNTEyZTY3ZjM3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRlICJSYW5n
ZS5jcHAiCiAjaW5jbHVkZSAiUmFuZ2VFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIlJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcCIKKyNpbmNsdWRlICJSZXNwb25kaW5nTm9kZVNldC5jcHAiCiAj
aW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBkYjc0ZDU1ZGU1YzEwZjA2ZDU1MjE2MTMzMGFjZjY3MjU3ZTIxOWIyLi40
MTQ5YzhkMzEwZmM3OTZkODQ2M2ZiMWU2NDljOGY3NmQ3MTg2YTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTEzNCw2ICsxMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9s
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgor
I2luY2x1ZGUgIlJlc3BvbmRpbmdOb2RlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NvcGVk
RXZlbnRRdWV1ZS5oIgpAQCAtNDM5LDYgKzQ0MCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFt
ZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAg
ICAsIG1fY29udGV4dEZlYXR1cmVzKENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgpKQog
ICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpCiAgICAgLCBtX2NvbXBhdGli
aWxpdHlNb2RlTG9ja2VkKGZhbHNlKQorICAgICwgbV9yZXNwb25kaW5nTm9kZXMoUmVzcG9uZGlu
Z05vZGVTZXQ6OmNyZWF0ZSgpKQogICAgICwgbV9kb21UcmVlVmVyc2lvbigrK3NfZ2xvYmFsVHJl
ZVZlcnNpb24pCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAsIG1fbXV0YXRp
b25PYnNlcnZlclR5cGVzKDApCkBAIC02ODcsNiArNjg5LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVt
b3ZlZExhc3RSZWYoKQogICAgICAgICBtX3RpdGxlRWxlbWVudCA9IDA7CiAgICAgICAgIG1fZG9j
dW1lbnRFbGVtZW50ID0gMDsKICAgICAgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVh
dHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAgICAgICAgbV9yZXNwb25kaW5nTm9kZXMtPmRvY3Vt
ZW50UmVtb3ZlZExhc3RSZWYoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgICAg
IG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3Rh
Y2suY2xlYXIoKTsKQEAgLTU3MjgsNyArNTczMSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhv
dmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1
CiAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gb2xkQWN0aXZlTm9kZS0+cmVuZGVy
ZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoY3Vy
ci0+bm9kZSgpICYmICFjdXJyLT5pc1RleHQoKSkgewogICAgICAgICAgICAgICAgIGN1cnItPm5v
ZGUoKS0+c2V0QWN0aXZlKGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPmNs
ZWFySW5BY3RpdmVDaGFpbigpOworICAgICAgICAgICAgICAgIG1fcmVzcG9uZGluZ05vZGVzLT5j
bGVhckluQWN0aXZlQ2hhaW4oY3Vyci0+bm9kZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBzZXRBY3RpdmVOb2RlKDApOwpAQCAtNTczOSw3ICs1NzQyLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgICAgIC8vIHdpbGwgbmVlZCB0byByZWZlcmVuY2Ug
dGhpcyBjaGFpbi4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gbmV3QWN0
aXZlTm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpCi0gICAgICAg
ICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFpbigpOworICAgICAgICAg
ICAgICAgICAgICBtX3Jlc3BvbmRpbmdOb2Rlcy0+c2V0SW5BY3RpdmVDaGFpbihjdXJyLT5ub2Rl
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0QWN0aXZlTm9kZShuZXdBY3RpdmVO
b2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0ZTI2NzE2MTEyMjBkM2Zi
Zjc3MjBhMDhkYzRkNzk1M2RhMWU1MGVlLi4zZWQ4NzcyNmZlMjcwM2RlNGZkOGZjNTU0NTE5NmYx
MTkzZThlOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI0LDYgKzEyNCw3IEBAIGNsYXNz
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyOwogY2xhc3MgUmVuZGVyQXJlbmE7CiBjbGFzcyBSZW5k
ZXJWaWV3OwogY2xhc3MgUmVuZGVyRnVsbFNjcmVlbjsKK2NsYXNzIFJlc3BvbmRpbmdOb2RlU2V0
OwogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxlbWVudERh
dGE7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CkBAIC02ODMsNiArNjg0LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsKICAgICBOb2RlKiBmb2N1
c2VkTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZE5vZGUuZ2V0KCk7IH0KKyAgICBSZXNw
b25kaW5nTm9kZVNldCogcmVzcG9uZGluZ05vZGVzKCkgIHsgcmV0dXJuIG1fcmVzcG9uZGluZ05v
ZGVzLmdldCgpOyB9CiAKICAgICB2b2lkIGdldEZvY3VzYWJsZU5vZGVzKFZlY3RvcjxSZWZQdHI8
Tm9kZT4gPiYpOwogICAgIApAQCAtMTMxNCw2ICsxMzE2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8Tm9kZT4gbV9ob3Zlck5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fYWN0aXZlTm9kZTsKICAg
ICBSZWZQdHI8RWxlbWVudD4gbV9kb2N1bWVudEVsZW1lbnQ7CisgICAgT3duUHRyPFJlc3BvbmRp
bmdOb2RlU2V0PiBtX3Jlc3BvbmRpbmdOb2RlczsKIAogICAgIHVpbnQ2NF90IG1fZG9tVHJlZVZl
cnNpb247CiAgICAgc3RhdGljIHVpbnQ2NF90IHNfZ2xvYmFsVHJlZVZlcnNpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggMWQ5ZGZjNDRkMmU5ODk1NzVlYWI2ZGM0ZmM1MmYxYTMwZmY2YzEyNS4uODYz
ZmUyN2I1MGNkMzlmNjZhMTVmZjQ0NWQ4ZWI5NmRjMjlkNzYxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRl
clRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlJlc3Bv
bmRpbmdOb2RlU2V0LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IlNlbGVjdG9yUXVlcnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODkxLDE2ICs4OTIs
MzAgQEAgdm9pZCBOb2RlOjpsYXp5QXR0YWNoKFNob3VsZFNldEF0dGFjaGVkIHNob3VsZFNldEF0
dGFjaGVkKQogICAgIG1hcmtBbmNlc3RvcnNXaXRoQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9
CiAKLXZvaWQgTm9kZTo6c2V0Rm9jdXMoYm9vbCBiKQordm9pZCBOb2RlOjpzZXRGb2N1cyhib29s
IGZsYWcpCiB7IAotICAgIGlmIChiIHx8IGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVuc3VyZVJh
cmVEYXRhKCktPnNldEZvY3VzZWQoYik7CisgICAgaWYgKERvY3VtZW50KiBkb2MgPSBkb2N1bWVu
dCgpKQorICAgICAgICBkb2MtPnJlc3BvbmRpbmdOb2RlcygpLT5zZXRGb2N1c2VkKHRoaXMsIGZs
YWcpOwogfQogCi1ib29sIE5vZGU6OnJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0Cit2b2lkIE5vZGU6
OnNldEFjdGl2ZShib29sIGZsYWcsIGJvb2wpCiB7Ci0gICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkp
OwotICAgIHJldHVybiByYXJlRGF0YSgpLT5pc0ZvY3VzZWQoKTsKKyAgICBpZiAoRG9jdW1lbnQq
IGRvYyA9IGRvY3VtZW50KCkpCisgICAgICAgIGRvYy0+cmVzcG9uZGluZ05vZGVzKCktPnNldEFj
dGl2ZSh0aGlzLCBmbGFnKTsKK30KKwordm9pZCBOb2RlOjpzZXRIb3ZlcmVkKGJvb2wgZmxhZykK
K3sKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCkpCisgICAgICAgIGRvYy0+cmVz
cG9uZGluZ05vZGVzKCktPnNldEhvdmVyZWQodGhpcywgZmxhZyk7Cit9CisKK2Jvb2wgTm9kZTo6
cmVzcG9uZGluZ05vZGVJcyhSZXNwb25kaW5nTm9kZUZsYWdzIGZsYWdzKSBjb25zdAoreworICAg
IEFTU0VSVChyZXNwb25kaW5nKCkpOworICAgIGlmIChEb2N1bWVudCogZG9jID0gZG9jdW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIGRvYy0+cmVzcG9uZGluZ05vZGVzKCktPmhhc0ZsYWdzKHRoaXMs
IGZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTm9kZTo6c3VwcG9ydHNGb2N1
cygpIGNvbnN0CkBAIC0xMjQ2LDE0ICsxMjYxLDE0IEBAIHZvaWQgTm9kZTo6ZGV0YWNoKCkKICAg
ICBBU1NFUlQoIXJlbmRlcmVyKCkpOwogCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7
Ci0gICAgaWYgKGhvdmVyZWQoKSkKLSAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURldGFjaGVkKHRo
aXMpOwotICAgIGlmIChpbkFjdGl2ZUNoYWluKCkpCi0gICAgICAgIGRvYy0+YWN0aXZlQ2hhaW5O
b2RlRGV0YWNoZWQodGhpcyk7Ci0KLSAgICBjbGVhckZsYWcoSXNBY3RpdmVGbGFnKTsKLSAgICBj
bGVhckZsYWcoSXNIb3ZlcmVkRmxhZyk7Ci0gICAgY2xlYXJGbGFnKEluQWN0aXZlQ2hhaW5GbGFn
KTsKKyAgICBpZiAocmVzcG9uZGluZygpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkpCisgICAg
ICAgICAgICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlmIChpbkFj
dGl2ZUNoYWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRo
aXMpOworICAgICAgICBkb2MtPnJlc3BvbmRpbmdOb2RlcygpLT5kaWREZXRhY2godGhpcyk7Cisg
ICAgfQorCiAgICAgY2xlYXJGbGFnKElzQXR0YWNoZWRGbGFnKTsKIAogI2lmbmRlZiBOREVCVUcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCmluZGV4IDY1OTNmNzhlMjJhNWFkMjEzYWIxMjgyNmQ5OTc1ZGYyMjU4OGIxYjQu
LjkwZjZmOGRmY2VjYTc0NjUzMDNjMjY0ZTUwODM1ZDM2YTRhN2NkMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApA
QCAtMzIzLDEwICszMjMsMjIgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSUQoKSBjb25zdDsKICAg
ICBib29sIGhhc0NsYXNzKCkgY29uc3Q7CiAKLSAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIGdldEZsYWcoSXNBY3RpdmVGbGFnKTsgfQotICAgIGJvb2wgaW5BY3RpdmVDaGFpbigpIGNv
bnN0IHsgcmV0dXJuIGdldEZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0gICAgYm9vbCBob3Zl
cmVkKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0hvdmVyZWRGbGFnKTsgfQotICAgIGJvb2wg
Zm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YUZvY3VzZWQo
KSA6IGZhbHNlOyB9CisgICAgYm9vbCByZXNwb25kaW5nKCkgY29uc3QgeyByZXR1cm4gZ2V0Rmxh
ZyhJc1Jlc3BvbmRpbmdGbGFnKTsgfQorICAgIHZvaWQgc2V0UmVzcG9uZGluZyhib29sIGZsYWcp
IHsgc2V0RmxhZyhmbGFnLCBJc1Jlc3BvbmRpbmdGbGFnKTsgfQorCisgICAgZW51bSBSZXNwb25k
aW5nTm9kZUZsYWdzIHsKKyAgICAgICAgSXNBY3RpdmVGbGFnICAgICAgPSAxICwKKyAgICAgICAg
SW5BY3RpdmVDaGFpbkZsYWcgPSAxIDw8IDEsCisgICAgICAgIElzSG92ZXJlZEZsYWcgICAgID0g
MSA8PCAyLAorICAgICAgICBJc0ZvY3VzZWRGbGFnICAgICA9IDEgPDwgMworICAgIH07CisKKyAg
ICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJlc3BvbmRpbmcoKSAmJiByZXNwb25kaW5n
Tm9kZUlzKElzQWN0aXZlRmxhZyk7IH0KKyAgICBib29sIGluQWN0aXZlQ2hhaW4oKSBjb25zdCB7
IHJldHVybiByZXNwb25kaW5nKCkgJiYgcmVzcG9uZGluZ05vZGVJcyhJbkFjdGl2ZUNoYWluRmxh
Zyk7IH0KKyAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJldHVybiByZXNwb25kaW5nKCkgJiYg
cmVzcG9uZGluZ05vZGVJcyhJc0hvdmVyZWRGbGFnKTsgfQorICAgIGJvb2wgZm9jdXNlZCgpIGNv
bnN0IHsgcmV0dXJuIHJlc3BvbmRpbmcoKSAmJiByZXNwb25kaW5nTm9kZUlzKElzRm9jdXNlZEZs
YWcpOyB9CisgICAgYm9vbCByZXNwb25kaW5nTm9kZUlzKFJlc3BvbmRpbmdOb2RlRmxhZ3MpIGNv
bnN0OworCiAgICAgYm9vbCBhdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNBdHRh
Y2hlZEZsYWcpOyB9CiAgICAgdm9pZCBzZXRBdHRhY2hlZCgpIHsgc2V0RmxhZyhJc0F0dGFjaGVk
RmxhZyk7IH0KICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiBzdHls
ZUNoYW5nZVR5cGUoKSAhPSBOb1N0eWxlQ2hhbmdlOyB9CkBAIC0zMzksOSArMzUxLDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgeyBzZXRGbGFnKENoaWxk
TmVlZHNTdHlsZVJlY2FsY0ZsYWcpOyB9CiAgICAgdm9pZCBjbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpIHsgY2xlYXJGbGFnKENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcpOyB9CiAKLSAgICB2
b2lkIHNldEluQWN0aXZlQ2hhaW4oKSB7IHNldEZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0g
ICAgdm9pZCBjbGVhckluQWN0aXZlQ2hhaW4oKSB7IGNsZWFyRmxhZyhJbkFjdGl2ZUNoYWluRmxh
Zyk7IH0KLQogICAgIHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hh
bmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSk7CiAgICAgdm9pZCBjbGVhck5lZWRzU3R5bGVSZWNh
bGMoKSB7IG1fbm9kZUZsYWdzICY9IH5TdHlsZUNoYW5nZU1hc2s7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVTZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBl
ID0gRnVsbFN0eWxlQ2hhbmdlKSB7IHNldE5lZWRzU3R5bGVSZWNhbGMoY2hhbmdlVHlwZSk7IH0K
QEAgLTM3MCw4ICszNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXp5UmVhdHRhY2goU2hvdWxk
U2V0QXR0YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMo
Ym9vbCA9IHRydWUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0gdHJ1ZSwg
Ym9vbCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0aXZlRmxhZyk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGYgPSB0cnVlKSB7IHNldEZsYWcoZiwgSXNI
b3ZlcmVkRmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgZiA9IHRydWUs
IGJvb2wgLypwYXVzZSovID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJv
b2wgZiA9IHRydWUpOwogCiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCkBA
IC02OTEsMzcgKzcwMCwzNSBAQCBwcml2YXRlOgogICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNh
bGNGbGFnID0gMSA8PCA3LAogICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKICAgICAg
ICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNBY3RpdmVGbGFnID0gMSA8PCAxMCwK
LSAgICAgICAgSXNIb3ZlcmVkRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIEluQWN0aXZlQ2hhaW5G
bGFnID0gMSA8PCAxMiwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMywKLSAgICAg
ICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTQsCisgICAgICAgIElzUmVzcG9uZGlu
Z0ZsYWcgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAorICAg
ICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKIAogICAgICAgICAvLyBUaGVz
ZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28gdGhl
eSBjYW4KICAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFzIHRo
ZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFn
ID0gMSA8PCAxNSwgLy8gRWxlbWVudAorICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVk
RmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKICNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBIYXNT
VkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE2LCAvLyBTVkdFbGVtZW50CisgICAgICAgIEhhc1NWR1Jh
cmVEYXRhRmxhZyA9IDEgPDwgMTQsIC8vIFNWR0VsZW1lbnQKICNlbmRpZgogCiAgICAgICAgIFN0
eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5
bGVDaGFuZ2VTaGlmdCArIDEpLAogCi0gICAgICAgIFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0Zs
YWcgPSAxIDw8IDE5LAorICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8
PCAxNywKIAotICAgICAgICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0RmxhZyA9IDEgPDwgMjAsCisg
ICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1RleHRGbGFnID0gMSA8PCAxOCwKIAotICAgICAgICBJ
bk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDIxLAotICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGRO
b2Rlc0ZsYWcgPSAxIDw8IDIyLAotICAgICAgICBIYXNDdXN0b21DYWxsYmFja3NGbGFnID0gMSA8
PCAyMywKLSAgICAgICAgSGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRGbGFnID0gMSA8PCAyNCwKLSAg
ICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjUsCi0gICAgICAgIFY4Q29sbGVj
dGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEgPDwgMjYsCi0gICAgICAgIElzSW5zZXJ0aW9uUG9p
bnRGbGFnID0gMSA8PCAyNywKKyAgICAgICAgSW5OYW1lZEZsb3dGbGFnID0gMSA8PCAxOSwKKyAg
ICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAyMCwKKyAgICAgICAg
SGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjEsCisgICAgICAgIEhhc1Njb3BlZEhUTUxT
dHlsZUNoaWxkRmxhZyA9IDEgPDwgMjIsCisgICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcg
PSAxIDw8IDIzLAorICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlub3JHQ0ZsYWcgPSAxIDw8
IDI0LAorICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwgMjUsCiAKICAgICAgICAg
RGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCiAgICAgfTsK
IAotICAgIC8vIDQgYml0cyByZW1haW5pbmcKKyAgICAvLyA2IGJpdHMgcmVtYWluaW5nCiAKICAg
ICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdz
ICYgbWFzazsgfQogICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25z
dCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYg
bWFzayk7IH0gCkBAIC03ODcsNyArNzk0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpOwogCiAgICAgdmlydHVhbCBPd25QdHI8Tm9kZVJhcmVEYXRhPiBj
cmVhdGVSYXJlRGF0YSgpOwotICAgIGJvb2wgcmFyZURhdGFGb2N1c2VkKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgeyByZXR1cm4g
MDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggYWM1NTFjM2EyMmNjMTQwMWZj
Yjg5YzdhMDU4NjJiZTJjY2YyM2E4MS4uOGUzZTc1ZDMyNjZlM2I5M2M2ZDViODBjNmM5MzU2MjRh
ZTlkYzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMjA1LDcgKzIwNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgLCBtX3RhYkluZGV4KDApCiAgICAgICAgICwgbV9jaGlsZEluZGV4
KDApCiAgICAgICAgICwgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkoZmFsc2UpCi0gICAgICAg
ICwgbV9pc0ZvY3VzZWQoZmFsc2UpCiAgICAgICAgICwgbV9uZWVkc0ZvY3VzQXBwZWFyYW5jZVVw
ZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBtX3N0eWxlQWZmZWN0ZWRCeUVt
cHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRyZWUoZmFsc2UpCkBAIC0zMjQs
OSArMzIzLDYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCi0gICAgYm9vbCBpc0ZvY3VzZWQo
KSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQotICAgIHZvaWQgc2V0Rm9jdXNlZChib29s
IGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2VkOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcm90ZWN0ZWQ6
CkBAIC0zNzIsNyArMzY4LDYgQEAgcHJpdmF0ZToKICAgICBzaG9ydCBtX3RhYkluZGV4OwogICAg
IHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKICAgICBib29sIG1fdGFiSW5kZXhXYXNTZXRF
eHBsaWNpdGx5IDogMTsKLSAgICBib29sIG1faXNGb2N1c2VkIDogMTsKICAgICBib29sIG1fbmVl
ZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2ggOiAxOwogICAgIGJvb2wgbV9z
dHlsZUFmZmVjdGVkQnlFbXB0eSA6IDE7CiAgICAgYm9vbCBtX2lzSW5DYW52YXNTdWJ0cmVlIDog
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4
YzZhYWNmZjQ5OGRmNWViYzZhZmNjODE0NDczN2Y2Yjk2NWUxYzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuY3BwCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVzcG9uZGluZ05vZGVTZXQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJlc3BvbmRpbmdOb2RlU2V0OjpjbGVhckZs
YWdzKE5vZGUqIG5vZGUsIHVuc2lnbmVkIGZsYWdzKQoreworICAgIGlmICghbm9kZS0+cmVzcG9u
ZGluZygpKSB7CisgICAgICAgIEFTU0VSVChtX25vZGVzLmVuZCgpID09IG1fbm9kZXMuZmluZChu
b2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOb2RlRmxhZ01hcDo6aXRlcmF0
b3IgZm91bmQgPSBtX25vZGVzLmZpbmQobm9kZSk7CisgICAgaWYgKGZvdW5kID09IG1fbm9kZXMu
ZW5kKCkpIHsKKyAgICAgICAgbm9kZS0+c2V0UmVzcG9uZGluZyhmYWxzZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1cGRhdGVkID0gZm91bmQtPnZhbHVlICYgfmZs
YWdzOworICAgIGlmICghdXBkYXRlZCkgeworICAgICAgICBub2RlLT5zZXRSZXNwb25kaW5nKGZh
bHNlKTsKKyAgICAgICAgbV9ub2Rlcy5yZW1vdmUoZm91bmQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZm91bmQtPnZhbHVlID0gdXBkYXRlZDsKK30KKwordm9pZCBSZXNwb25kaW5n
Tm9kZVNldDo6c2V0RmxhZ3MoTm9kZSogbm9kZSwgdW5zaWduZWQgZmxhZ3MpCit7CisgICAgTm9k
ZUZsYWdNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fbm9kZXMuZmluZChub2RlKTsKKyAgICBpZiAo
cmVzdWx0ICE9IG1fbm9kZXMuZW5kKCkpIHsKKyAgICAgICAgQVNTRVJUKG5vZGUtPnJlc3BvbmRp
bmcoKSk7CisgICAgICAgIHJlc3VsdC0+dmFsdWUgfD0gZmxhZ3M7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBub2RlLT5zZXRSZXNwb25kaW5nKHRydWUpOworICAgIG1fbm9kZXMuYWRk
KG5vZGUsIGZsYWdzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jl
c3BvbmRpbmdOb2RlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yN2Y4Njg0YzZjNDExZTM5MjU0YWIyMTIwMGIxZDc2NGU5YmFlYTk4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmgK
QEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVzcG9uZGluZ05vZGVTZXRfaAorI2RlZmluZSBS
ZXNwb25kaW5nTm9kZVNldF9oCisKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNwb25kaW5nTm9kZVNldCB7Citw
dWJsaWM6CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxSZXNwb25kaW5nTm9kZVNldD4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFJlc3BvbmRpbmdOb2RlU2V0KCkpOyB9CisKKyAgICB2
b2lkIHNldEFjdGl2ZShOb2RlKiBub2RlKSB7IHNldEZsYWdzKG5vZGUsIE5vZGU6OklzQWN0aXZl
RmxhZyk7IH0KKyAgICB2b2lkIHNldEFjdGl2ZShOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBz
ZXRGbGFncyhub2RlLCBlbmFibGUsIE5vZGU6OklzQWN0aXZlRmxhZyk7IH0KKyAgICB2b2lkIGNs
ZWFyQWN0aXZlKE5vZGUqIG5vZGUpIHsgY2xlYXJGbGFncyhub2RlLCBOb2RlOjpJc0FjdGl2ZUZs
YWcpOyB9CisgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBOb2RlKiBub2RlKSBjb25zdCB7IHJldHVy
biBoYXNGbGFncyhub2RlLCBOb2RlOjpJc0FjdGl2ZUZsYWcpOyB9CisKKyAgICB2b2lkIHNldElu
QWN0aXZlQ2hhaW4oTm9kZSogbm9kZSkgeyBzZXRGbGFncyhub2RlLCBOb2RlOjpJbkFjdGl2ZUNo
YWluRmxhZyk7IH0KKyAgICB2b2lkIGNsZWFySW5BY3RpdmVDaGFpbihOb2RlKiBub2RlKSB7IGNs
ZWFyRmxhZ3Mobm9kZSwgTm9kZTo6SW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgYm9vbCBpc0lu
QWN0aXZlQ2hhaW4oY29uc3QgTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gaGFzRmxhZ3Mobm9k
ZSwgTm9kZTo6SW5BY3RpdmVDaGFpbkZsYWcpOyB9CisKKyAgICB2b2lkIHNldEhvdmVyZWQoTm9k
ZSogbm9kZSkgeyBzZXRGbGFncyhub2RlLCBOb2RlOjpJc0hvdmVyZWRGbGFnKTsgfQorICAgIHZv
aWQgc2V0SG92ZXJlZChOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBl
bmFibGUsIE5vZGU6OklzSG92ZXJlZEZsYWcpOyB9CisgICAgdm9pZCBjbGVhckhvdmVyZWQoTm9k
ZSogbm9kZSkgeyBjbGVhckZsYWdzKG5vZGUsIE5vZGU6OklzSG92ZXJlZEZsYWcpOyB9CisgICAg
Ym9vbCBpc0hvdmVyZWQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gaGFzRmxhZ3Mo
bm9kZSwgTm9kZTo6SXNIb3ZlcmVkRmxhZyk7IH0KKworICAgIHZvaWQgc2V0Rm9jdXNlZChOb2Rl
KiBub2RlKSB7IHNldEZsYWdzKG5vZGUsIE5vZGU6OklzRm9jdXNlZEZsYWcpOyB9CisgICAgdm9p
ZCBzZXRGb2N1c2VkKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVu
YWJsZSwgTm9kZTo6SXNGb2N1c2VkRmxhZyk7IH0KKyAgICB2b2lkIGNsZWFyRm9jdXNlZChOb2Rl
KiBub2RlKSB7IGNsZWFyRmxhZ3Mobm9kZSwgTm9kZTo6SXNGb2N1c2VkRmxhZyk7IH0KKyAgICBi
b29sIGlzRm9jdXNlZChjb25zdCBOb2RlKiBub2RlKSBjb25zdCB7IHJldHVybiBoYXNGbGFncyhu
b2RlLCBOb2RlOjpJc0ZvY3VzZWRGbGFnKTsgfQorCisgICAgYm9vbCBoYXNGbGFncyhjb25zdCBO
b2RlKiwgdW5zaWduZWQpIGNvbnN0OworICAgIHZvaWQgZGlkRGV0YWNoKE5vZGUqKTsKKyAgICB2
b2lkIGRvY3VtZW50UmVtb3ZlZExhc3RSZWYoKSB7IG1fbm9kZXMuY2xlYXIoKTsgfQorcHJpdmF0
ZToKKyAgICB2b2lkIHNldEZsYWdzKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlLCB1bnNpZ25lZCBm
bGFncykgeyBlbmFibGUgPyBzZXRGbGFncyhub2RlLCBmbGFncykgOiBjbGVhckZsYWdzKG5vZGUs
IGZsYWdzKTsgfQorICAgIHZvaWQgc2V0RmxhZ3MoTm9kZSosIHVuc2lnbmVkKTsKKyAgICB2b2lk
IGNsZWFyRmxhZ3MoTm9kZSosIHVuc2lnbmVkKTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQ
dHI8Tm9kZT4sIHVuc2lnbmVkPiBOb2RlRmxhZ01hcDsKKyAgICBOb2RlRmxhZ01hcCBtX25vZGVz
OworfTsKKworaW5saW5lIHZvaWQgUmVzcG9uZGluZ05vZGVTZXQ6OmRpZERldGFjaChOb2RlKiBu
b2RlKQoreworICAgIEFTU0VSVChub2RlLT5yZXNwb25kaW5nKCkpOworICAgIG5vZGUtPnNldFJl
c3BvbmRpbmcoZmFsc2UpOworICAgIG1fbm9kZXMucmVtb3ZlKG5vZGUpOworfQorCitpbmxpbmUg
Ym9vbCBSZXNwb25kaW5nTm9kZVNldDo6aGFzRmxhZ3MoY29uc3QgTm9kZSogbm9kZSwgIHVuc2ln
bmVkIGZsYWdzKSBjb25zdAoreworICAgIGlmICghbm9kZS0+cmVzcG9uZGluZygpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBOb2RlRmxhZ01hcDo6Y29uc3RfaXRlcmF0b3IgZm91bmQg
PSBtX25vZGVzLmZpbmQoY29uc3RfY2FzdDxOb2RlKj4obm9kZSkpOworICAgIGlmIChmb3VuZCA9
PSBtX25vZGVzLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZm91
bmQtPnZhbHVlICYgZmxhZ3M7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBSZXNw
b25kaW5nTm9kZVNldF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176928</attachid>
            <date>2012-11-30 02:07:58 -0800</date>
            <delta_ts>2012-11-30 02:18:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121130190529.patch</filename>
            <type>text/plain</type>
            <size>32692</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZiNTliYWQwYWVmNDMy
MWJkY2E1Mzc3NzVlZjU0NmUzNjFkMGFhYy4uODM4ZjFkZTI3YzYyNDRlNGU0YmE0Zjk3MTNlMTU2
YzMwY2VkYWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTExLTMwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb2RlRmxhZ3MgY2xl
YW51cDogSXNBY3RpdmVGbGFnLCBJc0hvdmVyRmxhZywgSW5BY3RpdmVDaGFpbkZsYWcgY2FuIGJl
IHVuaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUbyBzYXZlIHR3byBtb3JlIE5vZGVGbGFncyBiaXRzLCBUaGlzIHBhdGNoIGlucm9kdWNlcwor
ICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywg
SW5BY3RpdmVDaGFpbkZsYWcKKyAgICAgICAgdG9nZXRoZXIuIFRoZXNlIHRocmVlIGV4aXN0aW5n
IGZsYWdzIGFyZSByZXBsYWNlZCBieQorICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIGFuZCBuZXds
eSBpbnJvZHVjZWQgTm9kZTo6UmVzcG9uZGluZ05vZGVGbGFncyBhbmQKKyAgICAgICAgUmVzcG9u
ZGluZ05vZGVTZXQuCisKKyAgICAgICAgV2hlbiBtYXJraW5nIGEgbm9kZSBhcyBhY3RpdmUgZm9y
IGV4YW1wbGUsIFdlYktpdCBzZXQKKyAgICAgICAgSXNSZXNwb25kaW5nRmxhZyB0byB0aGUgbm9k
ZSBhbmQgc3RvcmUgdGhlIG5vZGUgaW50byBjb3JyZXNwb25kaW5nCisgICAgICAgIG5vZGUgc2V0
IG9mIHRoZSBkb2N1bWVudC4gdGhlIHNldCBtYWludGFpbnMgbWFya2VkIG5vZGVzIGFuZAorICAg
ICAgICBjb3JyZXNwb25kaW5nIGZsYWdzIGZvciBlYWNoIG5vZGUuCisKKyAgICAgICAgUmVzcG9u
ZGluZ05vZGVTZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhlciByYXJlIGRhdGEgZm9yIHRo
ZXNlCisgICAgICAgIHRocmVlIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUgY2VydGFpbiBkaWZm
ZXJlbmNlcywgdGhhdCBhcmUgd2h5CisgICAgICAgIHN1Y2ggYSBkYXRhIHN0cnVjdHVyZSBpcyB3
b3J0aCBhZGRpbmc6CisKKyAgICAgICAgLSBSZXNwb25kaW5nTm9kZVNldCBpcyBtYWludGFpbmVk
IGZvciBlYWNoIERvY3VtZW50IGluc3RlYWQgb2YgZ2xvYmFsLiBUaGF0IGZpdHMgbmF0dXJhbCBs
aWZldGltZSBvZiBub2Rlcy4KKyAgICAgICAgLSBUaGUgbnVtYmVyIG9mIG5vZGVzIHdoaWNoIGhh
cyB0aGVzZSBmbGFncyBhcmUgZ2VuZXJhbGx5IHNtYWxsLCBhbmQgYSBncm91cCBvZiBub2RlcyBm
b3IgZWFjaCBmbGFnIGlzCisgICAgICAgICAgbGFyZ2VseSBvdmVybGFwcGVkIGR1ZSB0byBpdHMg
bmF0dXJlLiBUaGlzIHByb3BlcnR5IGtlZXBzIHRoZSBzZXQgc21hbGwsIGFuZCBsZXRzIGZsYWcg
cmV0cmlldmFsIGVmZmljaWVudC4KKyAgICAgICAgICBPbiBtYWpvcml0eSBvZiB0aGUgbm9kZXMs
IGFsbCB0aGVzZSBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMgZG9uZSBieSBqdXN0
IGNoZWNraW5nIElzUmVzcG9uZGluZ0ZsYWcuCisKKyAgICAgICAgQXMgYSBib251cywgaXNGb2N1
c2VkIGZsYWcsIHdoaWNoIGlzIG9uIE5vZGVSYXJlRGF0YSwgaXMgYWxzbyBtb3ZlZCB0byBSZXNw
b25kaW5nTm9kZUZsYWdzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNwb25kaW5nTm9k
ZXMpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dEhvdmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVzcG9uZGluZ05vZGVJcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXNwb25kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnNldFJlc3BvbmRpbmcpOgorICAgICAgICAoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjphY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aW5BY3RpdmVDaGFpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpob3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmZvY3VzZWQpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDogUmVtb3ZlZCBtX2lzRm9j
dXNlZAorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpOb2RlUmFyZURhdGEpOgorICAg
ICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vUmVzcG9uZGluZ05vZGVTZXQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGlu
Z05vZGVTZXQ6OmNsZWFyRmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVT
ZXQ6OnNldEZsYWdzKToKKyAgICAgICAgKiBkb20vUmVzcG9uZGluZ05vZGVTZXQuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlc3BvbmRpbmdOb2RlU2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzcG9uZGluZ05vZGVTZXQ6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNw
b25kaW5nTm9kZVNldDo6Y2xlYXJBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGlu
Z05vZGVTZXQ6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0
OjpzZXRJbkFjdGl2ZUNoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0
OjpjbGVhckluQWN0aXZlQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVT
ZXQ6OmlzSW5BY3RpdmVDaGFpbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNl
dDo6c2V0SG92ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6Y2xl
YXJIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0Ojppc0hvdmVy
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OnNldEZvY3VzZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmNsZWFyRm9jdXNlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6aXNGb2N1c2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0Ojpkb2N1bWVudFJlbW92ZWRMYXN0UmVmKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpzZXRGbGFncyk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNwb25kaW5nTm9kZVNldDo6ZGlkRGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c3BvbmRpbmdOb2RlU2V0OjpoYXNGbGFncyk6CisKIDIwMTItMTEtMzAgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCB0eXBvcyBpbiBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuY3BwIGFuZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NjFjNWQ1NTkzOGNjNDgwYjdlMmE4NTI1NmUwZjUyNzMy
MDM5NmRiLi5mNmRkNjI4OWY4NTA3N2E4ZGRlMjE5ZWZhZjU1MzNiZDQyODU2NzNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTIwNSw2ICsxMjA1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGRvbS9SYW5nZS5jcHAKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwCiAgICAgZG9tL1Jl
Z2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcAorICAgIGRvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAK
ICAgICBkb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNwcAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlNTJhMTY4ZmY2NzllYzEwYjdmZWVhZDQ5OTNm
YjZiZGNiY2ExYjA0Li5iMTIxOTk0NzBiMmNmMjZmZGJiM2IwOGQ0YWQ5ODNiYTcxMGI0OTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI5MDksNiArMjkwOSw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZW5kZXJlZERvY3VtZW50TWFya2VyLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuaCBcCisJU291cmNlL1dlYkNvcmUv
ZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2
ZW50UXVldWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCA0OGExMDE0ZDQ2NmY1NmEyOWM5ZDI3MDU2M2I1Mzk3MDQzMGUwM2Q0Li5hMGE5
NzhjNDE2ZWE0MWQxZTMyNDUwNWIxNzVlMGE3ZWZiNDhkMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ0
NSw2ICs0NDUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwIFwK
ICAgICBkb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggXAogICAgIGRvbS9SZWdpc3RlcmVkRXZl
bnRMaXN0ZW5lci5jcHAgXAorICAgIGRvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAgXAogICAgIGRv
bS9TY29wZWRFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgXAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwKQEAgLTE2
MTgsNiArMTYxOSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20v
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJr
ZXIuaCBcCisgICAgZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmggXAogICAgIGRvbS9TY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuaCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAgICAgZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTNkNjAxMzlh
NGM3YzZmMzc2YTM0OTdkMGNiODE4MWE4MjQ4Y2NmNy4uNmJmODRlNTM1NmY5YWNiMmIyOWZiYWNl
OTdiNjVjNmE5ZmY4OTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzkxNCw2ICszOTE0LDggQEAK
ICAgICAgICAgICAgICdkb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgnLAogICAgICAgICAgICAg
J2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oJywKKyAgICAgICAgICAgICdkb20vUmVzcG9uZGlu
Z05vZGVTZXQuaCcsCisgICAgICAgICAgICAnZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwJywKICAgICAgICAgICAgICdkb20v
U2NvcGVkRXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RWxlbWVudC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDM0MDRjYzE1ZWViNWRhNzM3OWEyMGNjYzg1ZmU5Yjc2NzgxYTAxMWUuLmE3ODVjNDQx
YjdlZDNmNzBkNzQwZjIxZWVlMzQzMzM1MDAzN2E5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4ODMsNiArMzg4Myw3IEBA
CiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2
RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVy
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcx
ODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlB
NzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMw
MDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBS
ZXNwb25kaW5nTm9kZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFJlc3BvbmRpbmdOb2RlU2V0Lmgg
Ki87IH07CiAJCUE3MkVBM0JCMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRUEz
QkExNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAw
MzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5j
cHAgKi87IH07CiAJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5
N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5MDEsNiArMzkwMiw3IEBACiAJCUE3NUU4QjhEMEUx
REUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyog
RkVDb21wb25lbnRUcmFuc2Zlci5oICovOyB9OwogCQlBNzVFOEI4RTBFMURFMkQ2MDA3RjI0ODEg
LyogRkVDb21wb3NpdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLzsg
fTsKIAkJQTc1RThCOEYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3
RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsgfTsKKwkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5
IC8qIFJlc3BvbmRpbmdOb2RlU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9k
ZVNldC5jcHAgKi87IH07CiAJCUE3NkU1RjdGMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERv
Y3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5o
ICovOyB9OwogCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTEzMEQ2QjlE
MEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAz
ODUxQjkgLyogSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IH07
CkBAIC0xMTIwNSw2ICsxMTIwNyw3IEBACiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzI3NjNCRTE2Njg5QkZCMDAyRkNB
Q0IgLyogUmVzcG9uZGluZ05vZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVzcG9uZGluZ05vZGVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcy
RUEzQkExNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZkNvdW50ZWRTdXBwbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVk
UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVj
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMx
QUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
b3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMTksNiArMTEy
MjIsNyBAQAogCQlBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvbmVudFRyYW5zZmVy
Lmg7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQ29tcG9zaXRlLmNwcDsg
cGF0aCA9IGZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb3NpdGUuaDsgcGF0aCA9IGZpbHRlcnMvRkVD
b21wb3NpdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2OUU5NjkxNjY4OUQw
QzAwNUQ0NTI5IC8qIFJlc3BvbmRpbmdOb2RlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlc3BvbmRpbmdOb2RlU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyZWREb2N1bWVu
dE1hcmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxMzBENkI5RDBD
MDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3
OTE0MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MjExMyw2ICsyMjExNyw4IEBACiAJCQkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaCAqLywKIAkJCQk0OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyog
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCAqLywKIAkJCQk0OTk4QUVDNTEzRjlEMEVB
MDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovLAorCQkJCUE3
NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9kZVNldC5jcHAgKi8sCisJCQkJ
QTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFJlc3BvbmRpbmdOb2RlU2V0LmggKi8sCiAJCQkJ
OUJEMEJGOTIxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuY3BwICovLAogCQkJ
CTlCRDBCRjkxMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi8sCiAJCQkJ
QTg0RDgyQzAxMUQzNDc0ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAg
Ki8sCkBAIC0yNTA4NCw2ICsyNTA5MCw3IEBACiAJCQkJN0VFNjg0NkYxMkQyNkUzODAwRTc5NDE1
IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RUU2ODQ3MDEy
RDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE0Qzc2N0YwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzI3NjNCRjE2Njg5QkZCMDAyRkNBQ0IgLyogUmVzcG9uZGluZ05vZGVT
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZl
cmIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZl
cmJBY2N1bXVsYXRpb25CdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2
RjcwMEMxQTM1OSAvKiBSZXZlcmJDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjgzMTQs
NiArMjgzMjEsNyBAQAogCQkJCTUxNEM3NjdFMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RUU2ODQ3MTEyRDI2RTM4MDBFNzk0
MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3
NjU1MENFOTIzNEYwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5IC8qIFJlc3BvbmRpbmdOb2RlU2V0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEE0MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQTYxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVy
YkFjY3VtdWxhdGlvbkJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBBODEyQjAy
NkY3MDBDMUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNTA2ZTI2N2VhYTI0NWQ5YzE0NzAwYzJkM2NkYTQx
Yzg2NzliMjI2YS4uY2FjODFhOGFkOTU1MTM2Y2FiZjBjZmVjYTg2ZDgxNTEyZTY3ZjM3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRl
ICJSYW5nZS5jcHAiCiAjaW5jbHVkZSAiUmFuZ2VFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIlJl
Z2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCIKKyNpbmNsdWRlICJSZXNwb25kaW5nTm9kZVNldC5j
cHAiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RWxl
bWVudC5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA3NTY5Njc0NDE4MGVmZmFmZGRkZjk3MWZmYzkzNTIxZWYyMmFl
YmVkLi5iZDhjMTMwMTVkMzk1MDliMGQ2ZDYyYWI1YTlkNjhhNzg1OTBiZTM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTEzNCw2ICsxMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRD
b250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdl
dC5oIgorI2luY2x1ZGUgIlJlc3BvbmRpbmdOb2RlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
U2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtNDM5LDYgKzQ0MCw3IEBAIERvY3VtZW50OjpEb2N1bWVu
dChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRN
TCkKICAgICAsIG1fY29udGV4dEZlYXR1cmVzKENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRj
aCgpKQogICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpCiAgICAgLCBtX2Nv
bXBhdGliaWxpdHlNb2RlTG9ja2VkKGZhbHNlKQorICAgICwgbV9yZXNwb25kaW5nTm9kZXMoUmVz
cG9uZGluZ05vZGVTZXQ6OmNyZWF0ZSgpKQogICAgICwgbV9kb21UcmVlVmVyc2lvbigrK3NfZ2xv
YmFsVHJlZVZlcnNpb24pCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAsIG1f
bXV0YXRpb25PYnNlcnZlclR5cGVzKDApCkBAIC02ODcsNiArNjg5LDcgQEAgdm9pZCBEb2N1bWVu
dDo6cmVtb3ZlZExhc3RSZWYoKQogICAgICAgICBtX3RpdGxlRWxlbWVudCA9IDA7CiAgICAgICAg
IG1fZG9jdW1lbnRFbGVtZW50ID0gMDsKICAgICAgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250
ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAgICAgICAgbV9yZXNwb25kaW5nTm9kZXMt
PmRvY3VtZW50UmVtb3ZlZExhc3RSZWYoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVt
ZW50U3RhY2suY2xlYXIoKTsKQEAgLTU3MjgsNyArNTczMSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVw
ZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRl
c3RSZXN1CiAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gb2xkQWN0aXZlTm9kZS0+
cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBp
ZiAoY3Vyci0+bm9kZSgpICYmICFjdXJyLT5pc1RleHQoKSkgewogICAgICAgICAgICAgICAgIGN1
cnItPm5vZGUoKS0+c2V0QWN0aXZlKGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjdXJyLT5ub2Rl
KCktPmNsZWFySW5BY3RpdmVDaGFpbigpOworICAgICAgICAgICAgICAgIG1fcmVzcG9uZGluZ05v
ZGVzLT5jbGVhckluQWN0aXZlQ2hhaW4oY3Vyci0+bm9kZSgpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICBzZXRBY3RpdmVOb2RlKDApOwpAQCAtNTczOSw3ICs1NzQyLDcgQEAg
dm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVz
dCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgICAgIC8vIHdpbGwgbmVlZCB0byByZWZl
cmVuY2UgdGhpcyBjaGFpbi4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0g
bmV3QWN0aXZlTm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpCi0g
ICAgICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFpbigpOworICAg
ICAgICAgICAgICAgICAgICBtX3Jlc3BvbmRpbmdOb2Rlcy0+c2V0SW5BY3RpdmVDaGFpbihjdXJy
LT5ub2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0QWN0aXZlTm9kZShuZXdB
Y3RpdmVOb2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0ZTI2NzE2MTEy
MjBkM2ZiZjc3MjBhMDhkYzRkNzk1M2RhMWU1MGVlLi4zZWQ4NzcyNmZlMjcwM2RlNGZkOGZjNTU0
NTE5NmYxMTkzZThlOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI0LDYgKzEyNCw3IEBA
IGNsYXNzIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyOwogY2xhc3MgUmVuZGVyQXJlbmE7CiBjbGFz
cyBSZW5kZXJWaWV3OwogY2xhc3MgUmVuZGVyRnVsbFNjcmVlbjsKK2NsYXNzIFJlc3BvbmRpbmdO
b2RlU2V0OwogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxl
bWVudERhdGE7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CkBAIC02ODMsNiArNjg0LDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsKICAgICBOb2Rl
KiBmb2N1c2VkTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZE5vZGUuZ2V0KCk7IH0KKyAg
ICBSZXNwb25kaW5nTm9kZVNldCogcmVzcG9uZGluZ05vZGVzKCkgIHsgcmV0dXJuIG1fcmVzcG9u
ZGluZ05vZGVzLmdldCgpOyB9CiAKICAgICB2b2lkIGdldEZvY3VzYWJsZU5vZGVzKFZlY3RvcjxS
ZWZQdHI8Tm9kZT4gPiYpOwogICAgIApAQCAtMTMxNCw2ICsxMzE2LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8Tm9kZT4gbV9ob3Zlck5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fYWN0aXZlTm9k
ZTsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9kb2N1bWVudEVsZW1lbnQ7CisgICAgT3duUHRyPFJl
c3BvbmRpbmdOb2RlU2V0PiBtX3Jlc3BvbmRpbmdOb2RlczsKIAogICAgIHVpbnQ2NF90IG1fZG9t
VHJlZVZlcnNpb247CiAgICAgc3RhdGljIHVpbnQ2NF90IHNfZ2xvYmFsVHJlZVZlcnNpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKaW5kZXggMWQ5ZGZjNDRkMmU5ODk1NzVlYWI2ZGM0ZmM1MmYxYTMwZmY2YzEy
NS4uODYzZmUyN2I1MGNkMzlmNjZhMTVmZjQ0NWQ4ZWI5NmRjMjlkNzYxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcApAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUg
IlJlc3BvbmRpbmdOb2RlU2V0LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIlNlbGVjdG9yUXVlcnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODkxLDE2
ICs4OTIsMzAgQEAgdm9pZCBOb2RlOjpsYXp5QXR0YWNoKFNob3VsZFNldEF0dGFjaGVkIHNob3Vs
ZFNldEF0dGFjaGVkKQogICAgIG1hcmtBbmNlc3RvcnNXaXRoQ2hpbGROZWVkc1N0eWxlUmVjYWxj
KCk7CiB9CiAKLXZvaWQgTm9kZTo6c2V0Rm9jdXMoYm9vbCBiKQordm9pZCBOb2RlOjpzZXRGb2N1
cyhib29sIGZsYWcpCiB7IAotICAgIGlmIChiIHx8IGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVu
c3VyZVJhcmVEYXRhKCktPnNldEZvY3VzZWQoYik7CisgICAgaWYgKERvY3VtZW50KiBkb2MgPSBk
b2N1bWVudCgpKQorICAgICAgICBkb2MtPnJlc3BvbmRpbmdOb2RlcygpLT5zZXRGb2N1c2VkKHRo
aXMsIGZsYWcpOwogfQogCi1ib29sIE5vZGU6OnJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0Cit2b2lk
IE5vZGU6OnNldEFjdGl2ZShib29sIGZsYWcsIGJvb2wpCiB7Ci0gICAgQVNTRVJUKGhhc1JhcmVE
YXRhKCkpOwotICAgIHJldHVybiByYXJlRGF0YSgpLT5pc0ZvY3VzZWQoKTsKKyAgICBpZiAoRG9j
dW1lbnQqIGRvYyA9IGRvY3VtZW50KCkpCisgICAgICAgIGRvYy0+cmVzcG9uZGluZ05vZGVzKCkt
PnNldEFjdGl2ZSh0aGlzLCBmbGFnKTsKK30KKwordm9pZCBOb2RlOjpzZXRIb3ZlcmVkKGJvb2wg
ZmxhZykKK3sKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCkpCisgICAgICAgIGRv
Yy0+cmVzcG9uZGluZ05vZGVzKCktPnNldEhvdmVyZWQodGhpcywgZmxhZyk7Cit9CisKK2Jvb2wg
Tm9kZTo6cmVzcG9uZGluZ05vZGVJcyhSZXNwb25kaW5nTm9kZUZsYWdzIGZsYWdzKSBjb25zdAor
eworICAgIEFTU0VSVChyZXNwb25kaW5nKCkpOworICAgIGlmIChEb2N1bWVudCogZG9jID0gZG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvYy0+cmVzcG9uZGluZ05vZGVzKCktPmhhc0ZsYWdz
KHRoaXMsIGZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTm9kZTo6c3VwcG9y
dHNGb2N1cygpIGNvbnN0CkBAIC0xMjQ2LDE0ICsxMjYxLDE0IEBAIHZvaWQgTm9kZTo6ZGV0YWNo
KCkKICAgICBBU1NFUlQoIXJlbmRlcmVyKCkpOwogCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3Vt
ZW50KCk7Ci0gICAgaWYgKGhvdmVyZWQoKSkKLSAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURldGFj
aGVkKHRoaXMpOwotICAgIGlmIChpbkFjdGl2ZUNoYWluKCkpCi0gICAgICAgIGRvYy0+YWN0aXZl
Q2hhaW5Ob2RlRGV0YWNoZWQodGhpcyk7Ci0KLSAgICBjbGVhckZsYWcoSXNBY3RpdmVGbGFnKTsK
LSAgICBjbGVhckZsYWcoSXNIb3ZlcmVkRmxhZyk7Ci0gICAgY2xlYXJGbGFnKEluQWN0aXZlQ2hh
aW5GbGFnKTsKKyAgICBpZiAocmVzcG9uZGluZygpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkp
CisgICAgICAgICAgICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlm
IChpbkFjdGl2ZUNoYWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFj
aGVkKHRoaXMpOworICAgICAgICBkb2MtPnJlc3BvbmRpbmdOb2RlcygpLT5kaWREZXRhY2godGhp
cyk7CisgICAgfQorCiAgICAgY2xlYXJGbGFnKElzQXR0YWNoZWRGbGFnKTsKIAogI2lmbmRlZiBO
REVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IDY1OTNmNzhlMjJhNWFkMjEzYWIxMjgyNmQ5OTc1ZGYyMjU4
OGIxYjQuLmRhN2Y0MDA2N2UwYjRiMTliMDI0MTE3ZDY2MDFlMjIxODAzZjAwNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaApAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwogCiB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCi1jb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAx
NzsKK2NvbnN0IGludCBub2RlU3R5bGVDaGFuZ2VTaGlmdCA9IDE1OwogCiAvLyBTeW50aGV0aWNT
dHlsZUNoYW5nZSBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgZW50aXJlIHN0
eWxlIGNoYW5nZSBsb2dpYyBldmVuIHRob3VnaAogLy8gbm8gc3R5bGUgcHJvcGVydHkgaGFzIGFj
dHVhbGx5IGNoYW5nZWQuIEl0IGlzIHVzZWQgdG8gcmVzdHJ1Y3R1cmUgdGhlIHRyZWUgd2hlbiwg
Zm9yIGluc3RhbmNlLApAQCAtMzIzLDEwICszMjMsMjIgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
SUQoKSBjb25zdDsKICAgICBib29sIGhhc0NsYXNzKCkgY29uc3Q7CiAKLSAgICBib29sIGFjdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNBY3RpdmVGbGFnKTsgfQotICAgIGJvb2wgaW5B
Y3RpdmVDaGFpbigpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9
Ci0gICAgYm9vbCBob3ZlcmVkKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0hvdmVyZWRGbGFn
KTsgfQotICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBy
YXJlRGF0YUZvY3VzZWQoKSA6IGZhbHNlOyB9CisgICAgYm9vbCByZXNwb25kaW5nKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxhZyhJc1Jlc3BvbmRpbmdGbGFnKTsgfQorICAgIHZvaWQgc2V0UmVzcG9u
ZGluZyhib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBJc1Jlc3BvbmRpbmdGbGFnKTsgfQorCisg
ICAgZW51bSBSZXNwb25kaW5nTm9kZUZsYWdzIHsKKyAgICAgICAgSXNBY3RpdmVGbGFnICAgICAg
PSAxICwKKyAgICAgICAgSW5BY3RpdmVDaGFpbkZsYWcgPSAxIDw8IDEsCisgICAgICAgIElzSG92
ZXJlZEZsYWcgICAgID0gMSA8PCAyLAorICAgICAgICBJc0ZvY3VzZWRGbGFnICAgICA9IDEgPDwg
MworICAgIH07CisKKyAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHJlc3BvbmRpbmco
KSAmJiByZXNwb25kaW5nTm9kZUlzKElzQWN0aXZlRmxhZyk7IH0KKyAgICBib29sIGluQWN0aXZl
Q2hhaW4oKSBjb25zdCB7IHJldHVybiByZXNwb25kaW5nKCkgJiYgcmVzcG9uZGluZ05vZGVJcyhJ
bkFjdGl2ZUNoYWluRmxhZyk7IH0KKyAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJldHVybiBy
ZXNwb25kaW5nKCkgJiYgcmVzcG9uZGluZ05vZGVJcyhJc0hvdmVyZWRGbGFnKTsgfQorICAgIGJv
b2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIHJlc3BvbmRpbmcoKSAmJiByZXNwb25kaW5nTm9k
ZUlzKElzRm9jdXNlZEZsYWcpOyB9CisgICAgYm9vbCByZXNwb25kaW5nTm9kZUlzKFJlc3BvbmRp
bmdOb2RlRmxhZ3MpIGNvbnN0OworCiAgICAgYm9vbCBhdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJu
IGdldEZsYWcoSXNBdHRhY2hlZEZsYWcpOyB9CiAgICAgdm9pZCBzZXRBdHRhY2hlZCgpIHsgc2V0
RmxhZyhJc0F0dGFjaGVkRmxhZyk7IH0KICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBjb25z
dCB7IHJldHVybiBzdHlsZUNoYW5nZVR5cGUoKSAhPSBOb1N0eWxlQ2hhbmdlOyB9CkBAIC0zMzks
OSArMzUxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCkg
eyBzZXRGbGFnKENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcpOyB9CiAgICAgdm9pZCBjbGVhckNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgY2xlYXJGbGFnKENoaWxkTmVlZHNTdHlsZVJlY2FsY0Zs
YWcpOyB9CiAKLSAgICB2b2lkIHNldEluQWN0aXZlQ2hhaW4oKSB7IHNldEZsYWcoSW5BY3RpdmVD
aGFpbkZsYWcpOyB9Ci0gICAgdm9pZCBjbGVhckluQWN0aXZlQ2hhaW4oKSB7IGNsZWFyRmxhZyhJ
bkFjdGl2ZUNoYWluRmxhZyk7IH0KLQogICAgIHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYyhTdHls
ZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSk7CiAgICAgdm9pZCBjbGVh
ck5lZWRzU3R5bGVSZWNhbGMoKSB7IG1fbm9kZUZsYWdzICY9IH5TdHlsZUNoYW5nZU1hc2s7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVTZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdl
VHlwZSBjaGFuZ2VUeXBlID0gRnVsbFN0eWxlQ2hhbmdlKSB7IHNldE5lZWRzU3R5bGVSZWNhbGMo
Y2hhbmdlVHlwZSk7IH0KQEAgLTM3MCw4ICszNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXp5
UmVhdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Rm9jdXMoYm9vbCA9IHRydWUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUo
Ym9vbCBmID0gdHJ1ZSwgYm9vbCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0
aXZlRmxhZyk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGYgPSB0cnVlKSB7
IHNldEZsYWcoZiwgSXNIb3ZlcmVkRmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZl
KGJvb2wgZiA9IHRydWUsIGJvb2wgLypwYXVzZSovID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRIb3ZlcmVkKGJvb2wgZiA9IHRydWUpOwogCiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRl
eCgpIGNvbnN0OwogCkBAIC02OTEsMzcgKzcwMCwzNSBAQCBwcml2YXRlOgogICAgICAgICBDaGls
ZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAogICAgICAgICBJbkRvY3VtZW50RmxhZyA9
IDEgPDwgOCwKICAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNBY3RpdmVG
bGFnID0gMSA8PCAxMCwKLSAgICAgICAgSXNIb3ZlcmVkRmxhZyA9IDEgPDwgMTEsCi0gICAgICAg
IEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxMiwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0g
MSA8PCAxMywKLSAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTQsCisgICAg
ICAgIElzUmVzcG9uZGluZ0ZsYWcgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcg
PSAxIDw8IDExLAorICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKIAog
ICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVk
IHVwIGhlcmUgc28gdGhleSBjYW4KICAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1l
bW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxk
cmVuRmluaXNoZWRGbGFnID0gMSA8PCAxNSwgLy8gRWxlbWVudAorICAgICAgICBJc1BhcnNpbmdD
aGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKICNpZiBFTkFCTEUoU1ZH
KQotICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE2LCAvLyBTVkdFbGVtZW50Cisg
ICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEgPDwgMTQsIC8vIFNWR0VsZW1lbnQKICNlbmRp
ZgogCiAgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQg
fCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpLAogCi0gICAgICAgIFNlbGZPckFuY2Vz
dG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE5LAorICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0Rp
ckF1dG9GbGFnID0gMSA8PCAxNywKIAotICAgICAgICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0Rmxh
ZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1RleHRGbGFnID0gMSA8PCAx
OCwKIAotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDIxLAotICAgICAgICBIYXNTeW50
aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8IDIyLAotICAgICAgICBIYXNDdXN0b21DYWxs
YmFja3NGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRGbGFn
ID0gMSA8PCAyNCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjUsCi0g
ICAgICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEgPDwgMjYsCi0gICAgICAg
IElzSW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAyNywKKyAgICAgICAgSW5OYW1lZEZsb3dGbGFn
ID0gMSA8PCAxOSwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8
PCAyMCwKKyAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjEsCisgICAgICAg
IEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjIsCisgICAgICAgIEhhc0V2ZW50
VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlu
b3JHQ0ZsYWcgPSAxIDw8IDI0LAorICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwg
MjUsCiAKICAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNo
ZWRGbGFnCiAgICAgfTsKIAotICAgIC8vIDQgYml0cyByZW1haW5pbmcKKyAgICAvLyA2IGJpdHMg
cmVtYWluaW5nCiAKICAgICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0
dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVG
bGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwg
KC0oaW50MzJfdClmICYgbWFzayk7IH0gCkBAIC03ODcsNyArNzk0LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpOwogCiAgICAgdmlydHVhbCBPd25QdHI8
Tm9kZVJhcmVEYXRhPiBjcmVhdGVSYXJlRGF0YSgpOwotICAgIGJvb2wgcmFyZURhdGFGb2N1c2Vk
KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggYWM1
NTFjM2EyMmNjMTQwMWZjYjg5YzdhMDU4NjJiZTJjY2YyM2E4MS4uOGUzZTc1ZDMyNjZlM2I5M2M2
ZDViODBjNmM5MzU2MjRhZTlkYzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAt
MjA1LDcgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3RhYkluZGV4KDApCiAgICAgICAg
ICwgbV9jaGlsZEluZGV4KDApCiAgICAgICAgICwgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHko
ZmFsc2UpCi0gICAgICAgICwgbV9pc0ZvY3VzZWQoZmFsc2UpCiAgICAgICAgICwgbV9uZWVkc0Zv
Y3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBtX3N0
eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRyZWUo
ZmFsc2UpCkBAIC0zMjQsOSArMzIzLDYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCi0gICAg
Ym9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQotICAgIHZvaWQg
c2V0Rm9jdXNlZChib29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2VkOyB9Ci0KICAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCiBwcm90ZWN0ZWQ6CkBAIC0zNzIsNyArMzY4LDYgQEAgcHJpdmF0ZToKICAgICBzaG9ydCBt
X3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKICAgICBib29sIG1f
dGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5IDogMTsKLSAgICBib29sIG1faXNGb2N1c2VkIDogMTsK
ICAgICBib29sIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2ggOiAx
OwogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eSA6IDE7CiAgICAgYm9vbCBtX2lzSW5D
YW52YXNTdWJ0cmVlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXNwb25k
aW5nTm9kZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZiYTE5ZWViOWJlZDk0YTFlYjVhMGJlOWQ2MWU0ZGU4NjM3ZjE2ZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVzcG9uZGluZ05vZGVTZXQuY3Bw
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVzcG9u
ZGluZ05vZGVTZXQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJlc3BvbmRpbmdO
b2RlU2V0OjpjbGVhckZsYWdzKE5vZGUqIG5vZGUsIHVuc2lnbmVkIGZsYWdzKQoreworICAgIGlm
ICghbm9kZS0+cmVzcG9uZGluZygpKSB7CisgICAgICAgIEFTU0VSVChtX25vZGVzLmVuZCgpID09
IG1fbm9kZXMuZmluZChub2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOb2Rl
RmxhZ01hcDo6aXRlcmF0b3IgZm91bmQgPSBtX25vZGVzLmZpbmQobm9kZSk7CisgICAgaWYgKGZv
dW5kID09IG1fbm9kZXMuZW5kKCkpIHsKKyAgICAgICAgbm9kZS0+c2V0UmVzcG9uZGluZyhmYWxz
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1cGRhdGVkID0gZm91
bmQtPnZhbHVlICYgfmZsYWdzOworICAgIGlmICghdXBkYXRlZCkgeworICAgICAgICBub2RlLT5z
ZXRSZXNwb25kaW5nKGZhbHNlKTsKKyAgICAgICAgbV9ub2Rlcy5yZW1vdmUoZm91bmQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZm91bmQtPnZhbHVlID0gdXBkYXRlZDsKK30KKwor
dm9pZCBSZXNwb25kaW5nTm9kZVNldDo6c2V0RmxhZ3MoTm9kZSogbm9kZSwgdW5zaWduZWQgZmxh
Z3MpCit7CisgICAgTm9kZUZsYWdNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fbm9kZXMuZmluZChu
b2RlKTsKKyAgICBpZiAocmVzdWx0ICE9IG1fbm9kZXMuZW5kKCkpIHsKKyAgICAgICAgQVNTRVJU
KG5vZGUtPnJlc3BvbmRpbmcoKSk7CisgICAgICAgIHJlc3VsdC0+dmFsdWUgfD0gZmxhZ3M7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBub2RlLT5zZXRSZXNwb25kaW5nKHRydWUpOwor
ICAgIG1fbm9kZXMuYWRkKG5vZGUsIGZsYWdzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVz
cG9uZGluZ05vZGVTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2Y4Njg0YzZjNDExZTM5MjU0YWIyMTIwMGIx
ZDc2NGU5YmFlYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jlc3Bv
bmRpbmdOb2RlU2V0LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVzcG9uZGluZ05vZGVT
ZXRfaAorI2RlZmluZSBSZXNwb25kaW5nTm9kZVNldF9oCisKKyNpbmNsdWRlICJOb2RlLmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNwb25k
aW5nTm9kZVNldCB7CitwdWJsaWM6CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxSZXNwb25kaW5n
Tm9kZVNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFJlc3BvbmRpbmdOb2RlU2V0
KCkpOyB9CisKKyAgICB2b2lkIHNldEFjdGl2ZShOb2RlKiBub2RlKSB7IHNldEZsYWdzKG5vZGUs
IE5vZGU6OklzQWN0aXZlRmxhZyk7IH0KKyAgICB2b2lkIHNldEFjdGl2ZShOb2RlKiBub2RlLCBi
b29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUsIE5vZGU6OklzQWN0aXZlRmxhZyk7
IH0KKyAgICB2b2lkIGNsZWFyQWN0aXZlKE5vZGUqIG5vZGUpIHsgY2xlYXJGbGFncyhub2RlLCBO
b2RlOjpJc0FjdGl2ZUZsYWcpOyB9CisgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBOb2RlKiBub2Rl
KSBjb25zdCB7IHJldHVybiBoYXNGbGFncyhub2RlLCBOb2RlOjpJc0FjdGl2ZUZsYWcpOyB9CisK
KyAgICB2b2lkIHNldEluQWN0aXZlQ2hhaW4oTm9kZSogbm9kZSkgeyBzZXRGbGFncyhub2RlLCBO
b2RlOjpJbkFjdGl2ZUNoYWluRmxhZyk7IH0KKyAgICB2b2lkIGNsZWFySW5BY3RpdmVDaGFpbihO
b2RlKiBub2RlKSB7IGNsZWFyRmxhZ3Mobm9kZSwgTm9kZTo6SW5BY3RpdmVDaGFpbkZsYWcpOyB9
CisgICAgYm9vbCBpc0luQWN0aXZlQ2hhaW4oY29uc3QgTm9kZSogbm9kZSkgY29uc3QgeyByZXR1
cm4gaGFzRmxhZ3Mobm9kZSwgTm9kZTo6SW5BY3RpdmVDaGFpbkZsYWcpOyB9CisKKyAgICB2b2lk
IHNldEhvdmVyZWQoTm9kZSogbm9kZSkgeyBzZXRGbGFncyhub2RlLCBOb2RlOjpJc0hvdmVyZWRG
bGFnKTsgfQorICAgIHZvaWQgc2V0SG92ZXJlZChOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBz
ZXRGbGFncyhub2RlLCBlbmFibGUsIE5vZGU6OklzSG92ZXJlZEZsYWcpOyB9CisgICAgdm9pZCBj
bGVhckhvdmVyZWQoTm9kZSogbm9kZSkgeyBjbGVhckZsYWdzKG5vZGUsIE5vZGU6OklzSG92ZXJl
ZEZsYWcpOyB9CisgICAgYm9vbCBpc0hvdmVyZWQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QgeyBy
ZXR1cm4gaGFzRmxhZ3Mobm9kZSwgTm9kZTo6SXNIb3ZlcmVkRmxhZyk7IH0KKworICAgIHZvaWQg
c2V0Rm9jdXNlZChOb2RlKiBub2RlKSB7IHNldEZsYWdzKG5vZGUsIE5vZGU6OklzRm9jdXNlZEZs
YWcpOyB9CisgICAgdm9pZCBzZXRGb2N1c2VkKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNl
dEZsYWdzKG5vZGUsIGVuYWJsZSwgTm9kZTo6SXNGb2N1c2VkRmxhZyk7IH0KKyAgICB2b2lkIGNs
ZWFyRm9jdXNlZChOb2RlKiBub2RlKSB7IGNsZWFyRmxhZ3Mobm9kZSwgTm9kZTo6SXNGb2N1c2Vk
RmxhZyk7IH0KKyAgICBib29sIGlzRm9jdXNlZChjb25zdCBOb2RlKiBub2RlKSBjb25zdCB7IHJl
dHVybiBoYXNGbGFncyhub2RlLCBOb2RlOjpJc0ZvY3VzZWRGbGFnKTsgfQorCisgICAgYm9vbCBo
YXNGbGFncyhjb25zdCBOb2RlKiwgdW5zaWduZWQpIGNvbnN0OworICAgIHZvaWQgZGlkRGV0YWNo
KE5vZGUqKTsKKyAgICB2b2lkIGRvY3VtZW50UmVtb3ZlZExhc3RSZWYoKSB7IG1fbm9kZXMuY2xl
YXIoKTsgfQorcHJpdmF0ZToKKyAgICB2b2lkIHNldEZsYWdzKE5vZGUqIG5vZGUsIGJvb2wgZW5h
YmxlLCB1bnNpZ25lZCBmbGFncykgeyBlbmFibGUgPyBzZXRGbGFncyhub2RlLCBmbGFncykgOiBj
bGVhckZsYWdzKG5vZGUsIGZsYWdzKTsgfQorICAgIHZvaWQgc2V0RmxhZ3MoTm9kZSosIHVuc2ln
bmVkKTsKKyAgICB2b2lkIGNsZWFyRmxhZ3MoTm9kZSosIHVuc2lnbmVkKTsKKworICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkPiBOb2RlRmxhZ01hcDsKKyAgICBOb2Rl
RmxhZ01hcCBtX25vZGVzOworfTsKKworaW5saW5lIHZvaWQgUmVzcG9uZGluZ05vZGVTZXQ6OmRp
ZERldGFjaChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlLT5yZXNwb25kaW5nKCkpOwor
ICAgIG5vZGUtPnNldFJlc3BvbmRpbmcoZmFsc2UpOworICAgIG1fbm9kZXMucmVtb3ZlKG5vZGUp
OworfQorCitpbmxpbmUgYm9vbCBSZXNwb25kaW5nTm9kZVNldDo6aGFzRmxhZ3MoY29uc3QgTm9k
ZSogbm9kZSwgIHVuc2lnbmVkIGZsYWdzKSBjb25zdAoreworICAgIGlmICghbm9kZS0+cmVzcG9u
ZGluZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOb2RlRmxhZ01hcDo6Y29uc3Rf
aXRlcmF0b3IgZm91bmQgPSBtX25vZGVzLmZpbmQoY29uc3RfY2FzdDxOb2RlKj4obm9kZSkpOwor
ICAgIGlmIChmb3VuZCA9PSBtX25vZGVzLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gZm91bmQtPnZhbHVlICYgZmxhZ3M7Cit9CisKK30gLy8gbmFtZXNwYWNlCisK
KyNlbmRpZiAvLyBSZXNwb25kaW5nTm9kZVNldF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176930</attachid>
            <date>2012-11-30 02:18:11 -0800</date>
            <delta_ts>2012-12-05 16:50:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121130191543.patch</filename>
            <type>text/plain</type>
            <size>32702</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZiNTliYWQwYWVmNDMy
MWJkY2E1Mzc3NzVlZjU0NmUzNjFkMGFhYy4uZTU1NzMyMTI2NTY2MGM5MTI3Nzk0MDhlYzQxODI5
ODQwZDRhZDU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTExLTMwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb2RlRmxhZ3MgY2xl
YW51cDogSXNBY3RpdmVGbGFnLCBJc0hvdmVyRmxhZywgSW5BY3RpdmVDaGFpbkZsYWcgY2FuIGJl
IHVuaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUbyBzYXZlIHR3byBtb3JlIE5vZGVGbGFncyBiaXRzLCB0aGlzIHBhdGNoIGlucm9kdWNlcwor
ICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywg
SW5BY3RpdmVDaGFpbkZsYWcKKyAgICAgICAgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFn
cyBhcmUgcmVwbGFjZWQgYnkgSXNSZXNwb25kaW5nRmxhZworICAgICAgICBhbmQgbmV3bHkgaW5y
b2R1Y2VkIE5vZGU6OlJlc3BvbmRpbmdOb2RlRmxhZ3MgYW5kCisgICAgICAgIFJlc3BvbmRpbmdO
b2RlU2V0LgorCisgICAgICAgIFdoZW4gbWFya2luZyBhIG5vZGUgYXMgYWN0aXZlIGZvciBleGFt
cGxlLCBXZWJLaXQgc2V0cworICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnIHRvIHRoZSBub2RlIGFu
ZCBzdG9yZSBpdCBpbnRvIGNvcnJlc3BvbmRpbmcgbm9kZQorICAgICAgICBzZXQgb2YgdGhlIGRv
Y3VtZW50LiBUaGlzIHNldCBtYWludGFpbnMgbWFya2VkIG5vZGVzIGFuZAorICAgICAgICBjb3Jy
ZXNwb25kaW5nIGZsYWdzIGZvciBlYWNoIG5vZGUuCisKKyAgICAgICAgUmVzcG9uZGluZ05vZGVT
ZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhlciByYXJlIGRhdGEgZm9yIHRoZXNlCisgICAg
ICAgIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUgY2VydGFpbiBkaWZmZXJlbmNlcywgdGhhdCBh
cmUgd2h5IHN1Y2ggYQorICAgICAgICBkYXRhIHN0cnVjdHVyZSBpcyB3b3J0aCBhZGRpbmc6CisK
KyAgICAgICAgLSBSZXNwb25kaW5nTm9kZVNldCBpcyBtYWludGFpbmVkIGZvciBlYWNoIERvY3Vt
ZW50IGluc3RlYWQgb2YgYQorICAgICAgICAgIGdsb2JhbCBjb2xsZWN0b24uIFRoaXMgZml0cyBs
aWZldGltZSBvZiBub2RlcyBiZXR0ZXIuCisKKyAgICAgICAgLSBUaGUgbnVtYmVyIG9mIG5vZGVz
IHdoaWNoIGhhdmUgdGhlc2UgZmxhZ3MgaXMgZ2VuZXJhbGx5IHNtYWxsLCBhbmQgYSBncm91cCBv
ZiBub2RlcyBmb3IgZWFjaCBmbGFnIGlzCisgICAgICAgICAgbGFyZ2VseSBvdmVybGFwcGVkIGR1
ZSB0byBpdHMgbmF0dXJlLiBUaGlzIHByb3BlcnR5IGtlZXBzIHRoZSBzZXQgc21hbGwsIGFuZCBs
ZXRzIGZsYWcgcmV0cmlldmFsIGVmZmljaWVudC4KKyAgICAgICAgICBPbiBtYWpvcml0eSBvZiB0
aGUgbm9kZXMsIGFsbCB0aGVzZSBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMgZG9u
ZSBieSBqdXN0IGNoZWNraW5nIElzUmVzcG9uZGluZ0ZsYWcuCisKKyAgICAgICAgQXMgYSBib251
cywgaXNGb2N1c2VkIGZsYWcsIHdoaWNoIHdhcyBvbiBOb2RlUmFyZURhdGEsIGlzIGFsc28gbW92
ZWQgdG8gUmVzcG9uZGluZ05vZGVGbGFncy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVz
cG9uZGluZ05vZGVzKToKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBkb20vTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRGb2N1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpzZXRIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlc3BvbmRpbmdO
b2RlSXMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVzcG9uZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpzZXRSZXNwb25kaW5nKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6YWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmluQWN0aXZl
Q2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aG92ZXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpmb2N1c2VkKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6IFJlbW92
ZWQgbV9pc0ZvY3VzZWQKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6Tm9kZVJhcmVE
YXRhKToKKyAgICAgICAgKE5vZGVSYXJlRGF0YSk6CisgICAgICAgICogZG9tL1Jlc3BvbmRpbmdO
b2RlU2V0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc3BvbmRpbmdOb2RlU2V0OjpjbGVhckZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3Bv
bmRpbmdOb2RlU2V0OjpzZXRGbGFncyk6CisgICAgICAgICogZG9tL1Jlc3BvbmRpbmdOb2RlU2V0
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNwb25kaW5nTm9kZVNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmNsZWFyQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc3BvbmRpbmdOb2RlU2V0Ojppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25k
aW5nTm9kZVNldDo6c2V0SW5BY3RpdmVDaGFpbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25k
aW5nTm9kZVNldDo6Y2xlYXJJbkFjdGl2ZUNoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3Bv
bmRpbmdOb2RlU2V0Ojppc0luQWN0aXZlQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9u
ZGluZ05vZGVTZXQ6OnNldEhvdmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05v
ZGVTZXQ6OmNsZWFySG92ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNl
dDo6aXNIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpzZXRG
b2N1c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc3BvbmRpbmdOb2RlU2V0OjpjbGVhckZvY3Vz
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmlzRm9jdXNlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6ZG9jdW1lbnRSZW1vdmVkTGFzdFJl
Zik6CisgICAgICAgIChXZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6c2V0RmxhZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzcG9uZGluZ05vZGVTZXQ6OmRpZERldGFjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNwb25kaW5nTm9kZVNldDo6aGFzRmxhZ3MpOgorCiAyMDEyLTExLTMwICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggdHlwb3MgaW4gRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCBhbmQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTYxYzVkNTU5MzhjYzQ4MGI3ZTJhODUy
NTZlMGY1MjczMjAzOTZkYi4uZjZkZDYyODlmODUwNzdhOGRkZTIxOWVmYWY1NTMzYmQ0Mjg1Njcz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMDUsNiArMTIwNSw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vUmFuZ2UuY3BwCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmNwcAog
ICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAKKyAgICBkb20vUmVzcG9uZGluZ05v
ZGVTZXQuY3BwCiAgICAgZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwCiAgICAgZG9tL1NjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTUyYTE2OGZmNjc5ZWMxMGI3
ZmVlYWQ0OTkzZmI2YmRjYmNhMWIwNC4uYjEyMTk5NDcwYjJjZjI2ZmRiYjNiMDhkNGFkOTgzYmE3
MTBiNDkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yOTA5LDYgKzI5MDks
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmVuZGVyZWREb2N1bWVudE1h
cmtlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmggXAorCVNvdXJj
ZS9XZWJDb3JlL2RvbS9SZXNwb25kaW5nTm9kZVNldC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TY29wZWRFdmVudFF1ZXVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2ZW50
UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggNDhhMTAxNGQ0NjZmNTZhMjljOWQyNzA1NjNiNTM5NzA0MzBl
MDNkNC4uYTBhOTc4YzQxNmVhNDFkMWUzMjQ1MDViMTc1ZTBhN2VmYjQ4ZDIwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC00NDUsNiArNDQ1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1JhbmdlRXhjZXB0
aW9uLmNwcCBcCiAgICAgZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oIFwKICAgICBkb20vUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwIFwKKyAgICBkb20vUmVzcG9uZGluZ05vZGVTZXQuY3Bw
IFwKICAgICBkb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAgXAogICAgIGRvbS9TY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwIFwKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNw
cCBcCkBAIC0xNjE4LDYgKzE2MTksNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vUmFuZ2UuaCBc
CiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggXAogICAgIGRvbS9SZW5kZXJlZERv
Y3VtZW50TWFya2VyLmggXAorICAgIGRvbS9SZXNwb25kaW5nTm9kZVNldC5oIFwKICAgICBkb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggXAogICAgIGRvbS9TY3JpcHRFbGVtZW50Lmgg
XAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGUzZDYwMTM5YTRjN2M2ZjM3NmEzNDk3ZDBjYjgxODFhODI0OGNjZjcuLjZiZjg0ZTUzNTZmOWFj
YjJiMjlmYmFjZTk3YjY1YzZhOWZmODk2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM5MTQsNiAr
MzkxNCw4IEBACiAgICAgICAgICAgICAnZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oJywKICAg
ICAgICAgICAgICdkb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwJywKICAgICAgICAgICAg
ICdkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCcsCisgICAgICAgICAgICAnZG9t
L1Jlc3BvbmRpbmdOb2RlU2V0LmgnLAorICAgICAgICAgICAgJ2RvbS9SZXNwb25kaW5nTm9kZVNl
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TY29wZWRFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1Njb3BlZEV2ZW50UXVldWUuaCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzNDA0Y2MxNWVlYjVkYTczNzlhMjBjY2M4NWZlOWI3Njc4MWEwMTFl
Li5hNzg1YzQ0MWI3ZWQzZjcwZDc0MGYyMWVlZTM0MzMzNTAwMzdhOTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODgzLDYg
KzM4ODMsNyBAQAogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIy
QTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFn
Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAq
LzsgfTsKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzIzRjc3
QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzI3NjNCRjE2Njg5QkZCMDAy
RkNBQ0IgLyogUmVzcG9uZGluZ05vZGVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAvKiBSZXNwb25kaW5n
Tm9kZVNldC5oICovOyB9OwogCQlBNzJFQTNCQjE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRl
ZFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5NUZF
MTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91
bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRl
ZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTAxLDYgKzM5MDIsNyBAQAogCQlB
NzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJQTc1RThCOEUwRTFERTJE
NjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0
ZS5jcHAgKi87IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODcw
RTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07CisJCUE3NjlFOTZBMTY2ODlE
MEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9kZVNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogUmVz
cG9uZGluZ05vZGVTZXQuY3BwICovOyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyog
UmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5
NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEw
RDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0
YS5oICovOyB9OwpAQCAtMTEyMDUsNiArMTEyMDcsNyBAQAogCQlBNzE4Nzg4RjBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyNzYzQkUxNjY4
OUJGQjAwMkZDQUNCIC8qIFJlc3BvbmRpbmdOb2RlU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlc3BvbmRpbmdOb2RlU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZDb3VudGVkU3VwcGxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Um91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEy
Qzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
MjE5LDYgKzExMjIyLDcgQEAKIAkJQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb25l
bnRUcmFuc2Zlci5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNv
bXBvc2l0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUNvbXBv
c2l0ZS5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9zaXRlLmg7IHBhdGggPSBm
aWx0ZXJzL0ZFQ29tcG9zaXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjlF
OTY5MTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5nTm9kZVNldC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNwb25kaW5nTm9kZVNldC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5
MTMwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjIxMTMsNiArMjIxMTcsOCBAQAogCQkJCUE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgz
NyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi8sCiAJCQkJNDk5OEFFQzQxM0Y5RDBFQTAw
OTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggKi8sCiAJCQkJNDk5OEFF
QzUxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCAq
LywKKwkJCQlBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogUmVzcG9uZGluZ05vZGVTZXQuY3Bw
ICovLAorCQkJCUE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAvKiBSZXNwb25kaW5nTm9kZVNldC5o
ICovLAogCQkJCTlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmNw
cCAqLywKIAkJCQk5QkQwQkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5o
ICovLAogCQkJCUE4NEQ4MkMwMTFEMzQ3NDgwMDk3Mjk5MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIuY3BwICovLApAQCAtMjUwODQsNiArMjUwOTAsNyBAQAogCQkJCTdFRTY4NDZGMTJEMjZF
MzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0VFNjg0NzAxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNEM3NjdGMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcyNzYzQkYxNjY4OUJGQjAwMkZDQUNCIC8qIFJlc3Bv
bmRpbmdOb2RlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBNTEyQjAyNkY3MDBDMUEz
NTkgLyogUmV2ZXJiLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBNzEyQjAyNkY3MDBDMUEz
NTkgLyogUmV2ZXJiQWNjdW11bGF0aW9uQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NjBBOTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTI4MzE0LDYgKzI4MzIxLDcgQEAKIAkJCQk1MTRDNzY3RTBDRTkyM0ExMDA3RUYzQ0QgLyog
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0VFNjg0NzExMkQy
NkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTRDNzY1NTBDRTkyMzRGMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZU1hYy5tbSBp
biBTb3VyY2VzICovLAorCQkJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBSZXNwb25kaW5n
Tm9kZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBBNDEyQjAyNkY3MDBDMUEzNTkg
LyogUmV2ZXJiLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEE2MTJCMDI2RjcwMEMxQTM1
OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQz
MTYwQTgxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkNvbnZvbHZlci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDUwNmUyNjdlYWEyNDVkOWMxNDcw
MGMyZDNjZGE0MWM4Njc5YjIyNmEuLmNhYzgxYThhZDk1NTEzNmNhYmYwY2ZlY2E4NmQ4MTUxMmU2
N2YzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTE2LDYgKzExNiw3IEBA
CiAjaW5jbHVkZSAiUmFuZ2UuY3BwIgogI2luY2x1ZGUgIlJhbmdlRXhjZXB0aW9uLmNwcCIKICNp
bmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAiCisjaW5jbHVkZSAiUmVzcG9uZGlu
Z05vZGVTZXQuY3BwIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuY3BwIgogI2luY2x1ZGUg
IlNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzU2OTY3NDQxODBlZmZhZmRkZGY5NzFmZmM5
MzUyMWVmMjJhZWJlZC4uYmQ4YzEzMDE1ZDM5NTA5YjBkNmQ2MmFiNWE5ZDY4YTc4NTkwYmUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJSZXNwb25kaW5nTm9kZVNldC5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTQzOSw2ICs0NDAsNyBAQCBEb2N1bWVu
dDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwg
Ym9vbCBpc0hUTUwpCiAgICAgLCBtX2NvbnRleHRGZWF0dXJlcyhDb250ZXh0RmVhdHVyZXM6OmRl
ZmF1bHRTd2l0Y2goKSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGUoTm9RdWlya3NNb2RlKQog
ICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZUxvY2tlZChmYWxzZSkKKyAgICAsIG1fcmVzcG9uZGlu
Z05vZGVzKFJlc3BvbmRpbmdOb2RlU2V0OjpjcmVhdGUoKSkKICAgICAsIG1fZG9tVHJlZVZlcnNp
b24oKytzX2dsb2JhbFRyZWVWZXJzaW9uKQogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAgICAgLCBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcygwKQpAQCAtNjg3LDYgKzY4OSw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV90aXRsZUVsZW1lbnQgPSAw
OwogICAgICAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CiAgICAgICAgIG1fY29udGV4dEZlYXR1
cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCk7CisgICAgICAgIG1fcmVzcG9u
ZGluZ05vZGVzLT5kb2N1bWVudFJlbW92ZWRMYXN0UmVmKCk7CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50ID0gMDsKICAgICAgICAgbV9mdWxs
U2NyZWVuRWxlbWVudFN0YWNrLmNsZWFyKCk7CkBAIC01NzI4LDcgKzU3MzEsNyBAQCB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1
ZXN0LCBIaXRUZXN0UmVzdQogICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IG9sZEFj
dGl2ZU5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAg
ICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpIHsKICAgICAgICAg
ICAgICAgICBjdXJyLT5ub2RlKCktPnNldEFjdGl2ZShmYWxzZSk7Ci0gICAgICAgICAgICAgICAg
Y3Vyci0+bm9kZSgpLT5jbGVhckluQWN0aXZlQ2hhaW4oKTsKKyAgICAgICAgICAgICAgICBtX3Jl
c3BvbmRpbmdOb2Rlcy0+Y2xlYXJJbkFjdGl2ZUNoYWluKGN1cnItPm5vZGUoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgc2V0QWN0aXZlTm9kZSgwKTsKQEAgLTU3MzksNyAr
NTc0Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0
VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiAgICAgICAgICAgICAvLyB3aWxsIG5l
ZWQgdG8gcmVmZXJlbmNlIHRoaXMgY2hhaW4uCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVj
dCogY3VyciA9IG5ld0FjdGl2ZU5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5w
YXJlbnQoKSkgewogICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlz
VGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEluQWN0aXZlQ2hh
aW4oKTsKKyAgICAgICAgICAgICAgICAgICAgbV9yZXNwb25kaW5nTm9kZXMtPnNldEluQWN0aXZl
Q2hhaW4oY3Vyci0+bm9kZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNldEFjdGl2
ZU5vZGUobmV3QWN0aXZlTm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NGUyNjcxNjExMjIwZDNmYmY3NzIwYTA4ZGM0ZDc5NTNkYTFlNTBlZS4uM2VkODc3MjZmZTI3MDNk
ZTRmZDhmYzU1NDUxOTZmMTE5M2U4ZTliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyNCw2
ICsxMjQsNyBAQCBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIFJlbmRlckFy
ZW5hOwogY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47CitjbGFzcyBS
ZXNwb25kaW5nTm9kZVNldDsKIGNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKIGNsYXNz
IFNjcmlwdEVsZW1lbnREYXRhOwogY2xhc3MgU2NyaXB0UnVubmVyOwpAQCAtNjgzLDYgKzY4NCw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPik7
CiAgICAgTm9kZSogZm9jdXNlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWROb2RlLmdl
dCgpOyB9CisgICAgUmVzcG9uZGluZ05vZGVTZXQqIHJlc3BvbmRpbmdOb2RlcygpICB7IHJldHVy
biBtX3Jlc3BvbmRpbmdOb2Rlcy5nZXQoKTsgfQogCiAgICAgdm9pZCBnZXRGb2N1c2FibGVOb2Rl
cyhWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKTsKICAgICAKQEAgLTEzMTQsNiArMTMxNiw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1faG92ZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBt
X2FjdGl2ZU5vZGU7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZG9jdW1lbnRFbGVtZW50OworICAg
IE93blB0cjxSZXNwb25kaW5nTm9kZVNldD4gbV9yZXNwb25kaW5nTm9kZXM7CiAKICAgICB1aW50
NjRfdCBtX2RvbVRyZWVWZXJzaW9uOwogICAgIHN0YXRpYyB1aW50NjRfdCBzX2dsb2JhbFRyZWVW
ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDFkOWRmYzQ0ZDJlOTg5NTc1ZWFiNmRjNGZjNTJm
MWEzMGZmNmMxMjUuLjg2M2ZlMjdiNTBjZDM5ZjY2YTE1ZmY0NDVkOGViOTZkYzI5ZDc2MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
KyNpbmNsdWRlICJSZXNwb25kaW5nTm9kZVNldC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVl
dWUuaCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
QEAgLTg5MSwxNiArODkyLDMwIEBAIHZvaWQgTm9kZTo6bGF6eUF0dGFjaChTaG91bGRTZXRBdHRh
Y2hlZCBzaG91bGRTZXRBdHRhY2hlZCkKICAgICBtYXJrQW5jZXN0b3JzV2l0aENoaWxkTmVlZHNT
dHlsZVJlY2FsYygpOwogfQogCi12b2lkIE5vZGU6OnNldEZvY3VzKGJvb2wgYikKK3ZvaWQgTm9k
ZTo6c2V0Rm9jdXMoYm9vbCBmbGFnKQogeyAKLSAgICBpZiAoYiB8fCBoYXNSYXJlRGF0YSgpKQot
ICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRGb2N1c2VkKGIpOworICAgIGlmIChEb2N1bWVu
dCogZG9jID0gZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jLT5yZXNwb25kaW5nTm9kZXMoKS0+c2V0
Rm9jdXNlZCh0aGlzLCBmbGFnKTsKIH0KIAotYm9vbCBOb2RlOjpyYXJlRGF0YUZvY3VzZWQoKSBj
b25zdAordm9pZCBOb2RlOjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sKQogewotICAgIEFTU0VS
VChoYXNSYXJlRGF0YSgpKTsKLSAgICByZXR1cm4gcmFyZURhdGEoKS0+aXNGb2N1c2VkKCk7Cisg
ICAgaWYgKERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgpKQorICAgICAgICBkb2MtPnJlc3BvbmRp
bmdOb2RlcygpLT5zZXRBY3RpdmUodGhpcywgZmxhZyk7Cit9CisKK3ZvaWQgTm9kZTo6c2V0SG92
ZXJlZChib29sIGZsYWcpCit7CisgICAgaWYgKERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgpKQor
ICAgICAgICBkb2MtPnJlc3BvbmRpbmdOb2RlcygpLT5zZXRIb3ZlcmVkKHRoaXMsIGZsYWcpOwor
fQorCitib29sIE5vZGU6OnJlc3BvbmRpbmdOb2RlSXMoUmVzcG9uZGluZ05vZGVGbGFncyBmbGFn
cykgY29uc3QKK3sKKyAgICBBU1NFUlQocmVzcG9uZGluZygpKTsKKyAgICBpZiAoRG9jdW1lbnQq
IGRvYyA9IGRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2MtPnJlc3BvbmRpbmdOb2Rlcygp
LT5oYXNGbGFncyh0aGlzLCBmbGFncyk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIE5v
ZGU6OnN1cHBvcnRzRm9jdXMoKSBjb25zdApAQCAtMTI0NiwxNCArMTI2MSwxNCBAQCB2b2lkIE5v
ZGU6OmRldGFjaCgpCiAgICAgQVNTRVJUKCFyZW5kZXJlcigpKTsKIAogICAgIERvY3VtZW50KiBk
b2MgPSBkb2N1bWVudCgpOwotICAgIGlmIChob3ZlcmVkKCkpCi0gICAgICAgIGRvYy0+aG92ZXJl
ZE5vZGVEZXRhY2hlZCh0aGlzKTsKLSAgICBpZiAoaW5BY3RpdmVDaGFpbigpKQotICAgICAgICBk
b2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOwotCi0gICAgY2xlYXJGbGFnKElzQWN0
aXZlRmxhZyk7Ci0gICAgY2xlYXJGbGFnKElzSG92ZXJlZEZsYWcpOwotICAgIGNsZWFyRmxhZyhJ
bkFjdGl2ZUNoYWluRmxhZyk7CisgICAgaWYgKHJlc3BvbmRpbmcoKSkgeworICAgICAgICBpZiAo
aG92ZXJlZCgpKQorICAgICAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURldGFjaGVkKHRoaXMpOwor
ICAgICAgICBpZiAoaW5BY3RpdmVDaGFpbigpKQorICAgICAgICAgICAgZG9jLT5hY3RpdmVDaGFp
bk5vZGVEZXRhY2hlZCh0aGlzKTsKKyAgICAgICAgZG9jLT5yZXNwb25kaW5nTm9kZXMoKS0+ZGlk
RGV0YWNoKHRoaXMpOworICAgIH0KKwogICAgIGNsZWFyRmxhZyhJc0F0dGFjaGVkRmxhZyk7CiAK
ICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA2NTkzZjc4ZTIyYTVhZDIxM2FiMTI4MjZk
OTk3NWRmMjI1ODhiMWI0Li5kYTdmNDAwNjdlMGI0YjE5YjAyNDExN2Q2NjAxZTIyMTgwM2YwMDU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsK
IAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotY29uc3QgaW50IG5vZGVTdHlsZUNoYW5n
ZVNoaWZ0ID0gMTc7Citjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAxNTsKIAogLy8g
U3ludGhldGljU3R5bGVDaGFuZ2UgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGdvIHRocm91Z2ggdGhl
IGVudGlyZSBzdHlsZSBjaGFuZ2UgbG9naWMgZXZlbiB0aG91Z2gKIC8vIG5vIHN0eWxlIHByb3Bl
cnR5IGhhcyBhY3R1YWxseSBjaGFuZ2VkLiBJdCBpcyB1c2VkIHRvIHJlc3RydWN0dXJlIHRoZSB0
cmVlIHdoZW4sIGZvciBpbnN0YW5jZSwKQEAgLTMyMywxMCArMzIzLDIyIEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0lEKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0OwogCi0gICAg
Ym9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQWN0aXZlRmxhZyk7IH0KLSAg
ICBib29sIGluQWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEluQWN0aXZlQ2hh
aW5GbGFnKTsgfQotICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNI
b3ZlcmVkRmxhZyk7IH0KLSAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBoYXNSYXJl
RGF0YSgpID8gcmFyZURhdGFGb2N1c2VkKCkgOiBmYWxzZTsgfQorICAgIGJvb2wgcmVzcG9uZGlu
ZygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNSZXNwb25kaW5nRmxhZyk7IH0KKyAgICB2b2lk
IHNldFJlc3BvbmRpbmcoYm9vbCBmbGFnKSB7IHNldEZsYWcoZmxhZywgSXNSZXNwb25kaW5nRmxh
Zyk7IH0KKworICAgIGVudW0gUmVzcG9uZGluZ05vZGVGbGFncyB7CisgICAgICAgIElzQWN0aXZl
RmxhZyAgICAgID0gMSAsCisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxLAorICAg
ICAgICBJc0hvdmVyZWRGbGFnICAgICA9IDEgPDwgMiwKKyAgICAgICAgSXNGb2N1c2VkRmxhZyAg
ICAgPSAxIDw8IDMKKyAgICB9OworCisgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBy
ZXNwb25kaW5nKCkgJiYgcmVzcG9uZGluZ05vZGVJcyhJc0FjdGl2ZUZsYWcpOyB9CisgICAgYm9v
bCBpbkFjdGl2ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gcmVzcG9uZGluZygpICYmIHJlc3BvbmRp
bmdOb2RlSXMoSW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgYm9vbCBob3ZlcmVkKCkgY29uc3Qg
eyByZXR1cm4gcmVzcG9uZGluZygpICYmIHJlc3BvbmRpbmdOb2RlSXMoSXNIb3ZlcmVkRmxhZyk7
IH0KKyAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiByZXNwb25kaW5nKCkgJiYgcmVz
cG9uZGluZ05vZGVJcyhJc0ZvY3VzZWRGbGFnKTsgfQorICAgIGJvb2wgcmVzcG9uZGluZ05vZGVJ
cyhSZXNwb25kaW5nTm9kZUZsYWdzKSBjb25zdDsKKwogICAgIGJvb2wgYXR0YWNoZWQoKSBjb25z
dCB7IHJldHVybiBnZXRGbGFnKElzQXR0YWNoZWRGbGFnKTsgfQogICAgIHZvaWQgc2V0QXR0YWNo
ZWQoKSB7IHNldEZsYWcoSXNBdHRhY2hlZEZsYWcpOyB9CiAgICAgYm9vbCBuZWVkc1N0eWxlUmVj
YWxjKCkgY29uc3QgeyByZXR1cm4gc3R5bGVDaGFuZ2VUeXBlKCkgIT0gTm9TdHlsZUNoYW5nZTsg
fQpAQCAtMzM5LDkgKzM1MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENoaWxkTmVlZHNTdHls
ZVJlY2FsYygpIHsgc2V0RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQogICAgIHZv
aWQgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IGNsZWFyRmxhZyhDaGlsZE5lZWRzU3R5
bGVSZWNhbGNGbGFnKTsgfQogCi0gICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWluKCkgeyBzZXRGbGFn
KEluQWN0aXZlQ2hhaW5GbGFnKTsgfQotICAgIHZvaWQgY2xlYXJJbkFjdGl2ZUNoYWluKCkgeyBj
bGVhckZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0KICAgICB2b2lkIHNldE5lZWRzU3R5bGVS
ZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBGdWxsU3R5bGVDaGFuZ2UpOwogICAg
IHZvaWQgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCkgeyBtX25vZGVGbGFncyAmPSB+U3R5bGVDaGFu
Z2VNYXNrOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlU2V0TmVlZHNTdHlsZVJlY2FsYyhT
dHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSkgeyBzZXROZWVkc1N0
eWxlUmVjYWxjKGNoYW5nZVR5cGUpOyB9CkBAIC0zNzAsOCArMzc5LDggQEAgcHVibGljOgogICAg
IHZvaWQgbGF6eVJlYXR0YWNoKFNob3VsZFNldEF0dGFjaGVkID0gU2V0QXR0YWNoZWQpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgPSB0cnVlKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0QWN0aXZlKGJvb2wgZiA9IHRydWUsIGJvb2wgLypwYXVzZSovID0gZmFsc2UpIHsgc2V0Rmxh
ZyhmLCBJc0FjdGl2ZUZsYWcpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCBm
ID0gdHJ1ZSkgeyBzZXRGbGFnKGYsIElzSG92ZXJlZEZsYWcpOyB9CisgICAgdmlydHVhbCB2b2lk
IHNldEFjdGl2ZShib29sIGYgPSB0cnVlLCBib29sIC8qcGF1c2UqLyA9IGZhbHNlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGYgPSB0cnVlKTsKIAogICAgIHZpcnR1YWwgc2hv
cnQgdGFiSW5kZXgoKSBjb25zdDsKIApAQCAtNjkxLDM3ICs3MDAsMzUgQEAgcHJpdmF0ZToKICAg
ICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKICAgICAgICAgSW5Eb2N1
bWVudEZsYWcgPSAxIDw8IDgsCiAgICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCi0gICAgICAg
IElzQWN0aXZlRmxhZyA9IDEgPDwgMTAsCi0gICAgICAgIElzSG92ZXJlZEZsYWcgPSAxIDw8IDEx
LAotICAgICAgICBJbkFjdGl2ZUNoYWluRmxhZyA9IDEgPDwgMTIsCi0gICAgICAgIEhhc1JhcmVE
YXRhRmxhZyA9IDEgPDwgMTMsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAxIDw8
IDE0LAorICAgICAgICBJc1Jlc3BvbmRpbmdGbGFnID0gMSA8PCAxMCwKKyAgICAgICAgSGFzUmFy
ZURhdGFGbGFnID0gMSA8PCAxMSwKKyAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEg
PDwgMTIsCiAKICAgICAgICAgLy8gVGhlc2UgYml0cyBhcmUgdXNlZCBieSBkZXJpdmVkIGNsYXNz
ZXMsIHB1bGxlZCB1cCBoZXJlIHNvIHRoZXkgY2FuCiAgICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0
aGUgc2FtZSBtZW1vcnkgd29yZCBhcyB0aGUgTm9kZSBiaXRzIGFib3ZlLgotICAgICAgICBJc1Bh
cnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTUsIC8vIEVsZW1lbnQKKyAgICAgICAg
SXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50CiAjaWYg
RU5BQkxFKFNWRykKLSAgICAgICAgSGFzU1ZHUmFyZURhdGFGbGFnID0gMSA8PCAxNiwgLy8gU1ZH
RWxlbWVudAorICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE0LCAvLyBTVkdFbGVt
ZW50CiAjZW5kaWYKIAogICAgICAgICBTdHlsZUNoYW5nZU1hc2sgPSAxIDw8IG5vZGVTdHlsZUNo
YW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAxKSwKIAotICAgICAgICBT
ZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAxOSwKKyAgICAgICAgU2VsZk9yQW5j
ZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMTcsCiAKLSAgICAgICAgSGFzTmFtZU9ySXNFZGl0
aW5nVGV4dEZsYWcgPSAxIDw8IDIwLAorICAgICAgICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0Rmxh
ZyA9IDEgPDwgMTgsCiAKLSAgICAgICAgSW5OYW1lZEZsb3dGbGFnID0gMSA8PCAyMSwKLSAgICAg
ICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAyMiwKLSAgICAgICAgSGFz
Q3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjMsCi0gICAgICAgIEhhc1Njb3BlZEhUTUxTdHls
ZUNoaWxkRmxhZyA9IDEgPDwgMjQsCi0gICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAx
IDw8IDI1LAotICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlub3JHQ0ZsYWcgPSAxIDw8IDI2
LAotICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwgMjcsCisgICAgICAgIEluTmFt
ZWRGbG93RmxhZyA9IDEgPDwgMTksCisgICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVz
RmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0N1c3RvbUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDIx
LAorICAgICAgICBIYXNTY29wZWRIVE1MU3R5bGVDaGlsZEZsYWcgPSAxIDw8IDIyLAorICAgICAg
ICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyMywKKyAgICAgICAgVjhDb2xsZWN0YWJs
ZUR1cmluZ01pbm9yR0NGbGFnID0gMSA8PCAyNCwKKyAgICAgICAgSXNJbnNlcnRpb25Qb2ludEZs
YWcgPSAxIDw8IDI1LAogCiAgICAgICAgIERlZmF1bHROb2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGls
ZHJlbkZpbmlzaGVkRmxhZwogICAgIH07CiAKLSAgICAvLyA0IGJpdHMgcmVtYWluaW5nCisgICAg
Ly8gNiBiaXRzIHJlbWFpbmluZwogCiAgICAgYm9vbCBnZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBj
b25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2b2lkIHNldEZsYWcoYm9v
bCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9IChtX25vZGVGbGFncyAm
IH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IApAQCAtNzg3LDcgKzc5NCw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKTsKIAogICAgIHZpcnR1
YWwgT3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURhdGEoKTsKLSAgICBib29sIHJhcmVE
YXRhRm9jdXNlZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVy
ZXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
CmluZGV4IGFjNTUxYzNhMjJjYzE0MDFmY2I4OWM3YTA1ODYyYmUyY2NmMjNhODEuLjhlM2U3NWQz
MjY2ZTNiOTNjNmQ1YjgwYzZjOTM1NjI0YWU5ZGM5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVE
YXRhLmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV90YWJJbmRleCgw
KQogICAgICAgICAsIG1fY2hpbGRJbmRleCgwKQogICAgICAgICAsIG1fdGFiSW5kZXhXYXNTZXRF
eHBsaWNpdGx5KGZhbHNlKQotICAgICAgICAsIG1faXNGb2N1c2VkKGZhbHNlKQogICAgICAgICAs
IG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAg
ICAgICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkKICAgICAgICAgLCBtX2lzSW5DYW52
YXNTdWJ0cmVlKGZhbHNlKQpAQCAtMzI0LDkgKzMyMyw2IEBAIHB1YmxpYzoKICAgICB9CiAjZW5k
aWYKIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0K
LSAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2VkID0gZm9jdXNl
ZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtMzcyLDcgKzM2OCw2IEBAIHByaXZhdGU6CiAg
ICAgc2hvcnQgbV90YWJJbmRleDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXg7CiAg
ICAgYm9vbCBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseSA6IDE7Ci0gICAgYm9vbCBtX2lzRm9j
dXNlZCA6IDE7CiAgICAgYm9vbCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVy
QXR0YWNoIDogMTsKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkgOiAxOwogICAgIGJv
b2wgbV9pc0luQ2FudmFzU3VidHJlZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmVzcG9uZGluZ05vZGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdO
b2RlU2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmExOWVlYjliZWQ5NGExZWI1YTBiZTlkNjFlNGRlODYz
N2YxNmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jlc3BvbmRpbmdO
b2RlU2V0LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlc3BvbmRpbmdOb2RlU2V0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBS
ZXNwb25kaW5nTm9kZVNldDo6Y2xlYXJGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykK
K3sKKyAgICBpZiAoIW5vZGUtPnJlc3BvbmRpbmcoKSkgeworICAgICAgICBBU1NFUlQobV9ub2Rl
cy5lbmQoKSA9PSBtX25vZGVzLmZpbmQobm9kZSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgTm9kZUZsYWdNYXA6Oml0ZXJhdG9yIGZvdW5kID0gbV9ub2Rlcy5maW5kKG5vZGUpOwor
ICAgIGlmIChmb3VuZCA9PSBtX25vZGVzLmVuZCgpKSB7CisgICAgICAgIG5vZGUtPnNldFJlc3Bv
bmRpbmcoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdW5zaWduZWQgdXBk
YXRlZCA9IGZvdW5kLT52YWx1ZSAmIH5mbGFnczsKKyAgICBpZiAoIXVwZGF0ZWQpIHsKKyAgICAg
ICAgbm9kZS0+c2V0UmVzcG9uZGluZyhmYWxzZSk7CisgICAgICAgIG1fbm9kZXMucmVtb3ZlKGZv
dW5kKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvdW5kLT52YWx1ZSA9IHVwZGF0
ZWQ7Cit9CisKK3ZvaWQgUmVzcG9uZGluZ05vZGVTZXQ6OnNldEZsYWdzKE5vZGUqIG5vZGUsIHVu
c2lnbmVkIGZsYWdzKQoreworICAgIE5vZGVGbGFnTWFwOjppdGVyYXRvciByZXN1bHQgPSBtX25v
ZGVzLmZpbmQobm9kZSk7CisgICAgaWYgKHJlc3VsdCAhPSBtX25vZGVzLmVuZCgpKSB7CisgICAg
ICAgIEFTU0VSVChub2RlLT5yZXNwb25kaW5nKCkpOworICAgICAgICByZXN1bHQtPnZhbHVlIHw9
IGZsYWdzOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbm9kZS0+c2V0UmVzcG9uZGlu
Zyh0cnVlKTsKKyAgICBtX25vZGVzLmFkZChub2RlLCBmbGFncyk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXNwb25kaW5nTm9kZVNldC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Jlc3BvbmRpbmdOb2RlU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmYzODg1ZWJlZGVmYTZkMzE3
NmIyYjc0M2IwNGJhN2NjOWVkNjRjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SZXNwb25kaW5nTm9kZVNldC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlc3Bv
bmRpbmdOb2RlU2V0X2gKKyNkZWZpbmUgUmVzcG9uZGluZ05vZGVTZXRfaAorCisjaW5jbHVkZSAi
Tm9kZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVzcG9uZGluZ05vZGVTZXQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFJl
c3BvbmRpbmdOb2RlU2V0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgUmVzcG9uZGlu
Z05vZGVTZXQoKSk7IH0KKworICAgIHZvaWQgc2V0QWN0aXZlKE5vZGUqIG5vZGUpIHsgc2V0Rmxh
Z3Mobm9kZSwgTm9kZTo6SXNBY3RpdmVGbGFnKTsgfQorICAgIHZvaWQgc2V0QWN0aXZlKE5vZGUq
IG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgTm9kZTo6SXNBY3Rp
dmVGbGFnKTsgfQorICAgIHZvaWQgY2xlYXJBY3RpdmUoTm9kZSogbm9kZSkgeyBjbGVhckZsYWdz
KG5vZGUsIE5vZGU6OklzQWN0aXZlRmxhZyk7IH0KKyAgICBib29sIGlzQWN0aXZlKGNvbnN0IE5v
ZGUqIG5vZGUpIGNvbnN0IHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIE5vZGU6OklzQWN0aXZlRmxh
Zyk7IH0KKworICAgIHZvaWQgc2V0SW5BY3RpdmVDaGFpbihOb2RlKiBub2RlKSB7IHNldEZsYWdz
KG5vZGUsIE5vZGU6OkluQWN0aXZlQ2hhaW5GbGFnKTsgfQorICAgIHZvaWQgY2xlYXJJbkFjdGl2
ZUNoYWluKE5vZGUqIG5vZGUpIHsgY2xlYXJGbGFncyhub2RlLCBOb2RlOjpJbkFjdGl2ZUNoYWlu
RmxhZyk7IH0KKyAgICBib29sIGlzSW5BY3RpdmVDaGFpbihjb25zdCBOb2RlKiBub2RlKSBjb25z
dCB7IHJldHVybiBoYXNGbGFncyhub2RlLCBOb2RlOjpJbkFjdGl2ZUNoYWluRmxhZyk7IH0KKwor
ICAgIHZvaWQgc2V0SG92ZXJlZChOb2RlKiBub2RlKSB7IHNldEZsYWdzKG5vZGUsIE5vZGU6Oklz
SG92ZXJlZEZsYWcpOyB9CisgICAgdm9pZCBzZXRIb3ZlcmVkKE5vZGUqIG5vZGUsIGJvb2wgZW5h
YmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgTm9kZTo6SXNIb3ZlcmVkRmxhZyk7IH0KKyAg
ICB2b2lkIGNsZWFySG92ZXJlZChOb2RlKiBub2RlKSB7IGNsZWFyRmxhZ3Mobm9kZSwgTm9kZTo6
SXNIb3ZlcmVkRmxhZyk7IH0KKyAgICBib29sIGlzSG92ZXJlZChjb25zdCBOb2RlKiBub2RlKSBj
b25zdCB7IHJldHVybiBoYXNGbGFncyhub2RlLCBOb2RlOjpJc0hvdmVyZWRGbGFnKTsgfQorCisg
ICAgdm9pZCBzZXRGb2N1c2VkKE5vZGUqIG5vZGUpIHsgc2V0RmxhZ3Mobm9kZSwgTm9kZTo6SXNG
b2N1c2VkRmxhZyk7IH0KKyAgICB2b2lkIHNldEZvY3VzZWQoTm9kZSogbm9kZSwgYm9vbCBlbmFi
bGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBOb2RlOjpJc0ZvY3VzZWRGbGFnKTsgfQorICAg
IHZvaWQgY2xlYXJGb2N1c2VkKE5vZGUqIG5vZGUpIHsgY2xlYXJGbGFncyhub2RlLCBOb2RlOjpJ
c0ZvY3VzZWRGbGFnKTsgfQorICAgIGJvb2wgaXNGb2N1c2VkKGNvbnN0IE5vZGUqIG5vZGUpIGNv
bnN0IHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIE5vZGU6OklzRm9jdXNlZEZsYWcpOyB9CisKKyAg
ICBib29sIGhhc0ZsYWdzKGNvbnN0IE5vZGUqLCB1bnNpZ25lZCkgY29uc3Q7CisgICAgdm9pZCBk
aWREZXRhY2goTm9kZSopOworICAgIHZvaWQgZG9jdW1lbnRSZW1vdmVkTGFzdFJlZigpIHsgbV9u
b2Rlcy5jbGVhcigpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRGbGFncyhOb2RlKiBub2Rl
LCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0RmxhZ3Mobm9kZSwg
ZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBmbGFncyk7IH0KKyAgICB2b2lkIHNldEZsYWdzKE5v
ZGUqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBjbGVhckZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisK
KyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCB1bnNpZ25lZD4gTm9kZUZsYWdNYXA7
CisgICAgTm9kZUZsYWdNYXAgbV9ub2RlczsKK307CisKK2lubGluZSB2b2lkIFJlc3BvbmRpbmdO
b2RlU2V0OjpkaWREZXRhY2goTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZS0+cmVzcG9u
ZGluZygpKTsKKyAgICBub2RlLT5zZXRSZXNwb25kaW5nKGZhbHNlKTsKKyAgICBtX25vZGVzLnJl
bW92ZShub2RlKTsKK30KKworaW5saW5lIGJvb2wgUmVzcG9uZGluZ05vZGVTZXQ6Omhhc0ZsYWdz
KGNvbnN0IE5vZGUqIG5vZGUsICB1bnNpZ25lZCBmbGFncykgY29uc3QKK3sKKyAgICBpZiAoIW5v
ZGUtPnJlc3BvbmRpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZUZsYWdN
YXA6OmNvbnN0X2l0ZXJhdG9yIGZvdW5kID0gbV9ub2Rlcy5maW5kKGNvbnN0X2Nhc3Q8Tm9kZSo+
KG5vZGUpKTsKKyAgICBpZiAoZm91bmQgPT0gbV9ub2Rlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIGZvdW5kLT52YWx1ZSAmIGZsYWdzOworfQorCit9IC8vIG5h
bWVzcGFjZQorCisjZW5kaWYgLy8gUmVzcG9uZGluZ05vZGVTZXRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177178</attachid>
            <date>2012-12-02 22:11:31 -0800</date>
            <delta_ts>2012-12-05 16:50:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121203150858.patch</filename>
            <type>text/plain</type>
            <size>33347</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQxMTA4YTIwYzljNzFm
NmRmNjlkNTgyYmY1MzQzMTU4ODg5MmFiZi4uYjgyOTE4OGZhN2IwMDUzNGE0NjkxNzQwMTJkNTcx
OTQ5Y2QyYjJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEyLTEyLTAyICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb2RlRmxhZ3MgY2xl
YW51cDogSXNBY3RpdmVGbGFnLCBJc0hvdmVyRmxhZywgSW5BY3RpdmVDaGFpbkZsYWcgY2FuIGJl
IHVuaWZpZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUbyBzYXZlIHR3byBtb3JlIE5vZGVGbGFncyBiaXRzLCB0aGlzIHBhdGNoIGlucm9kdWNlcwor
ICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNldCB0byBnZXQgSXNMaW5rRmxhZywgSXNIb3ZlckZs
YWcsCisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnIHRvZ2V0aGVyLiBUaGVzZSB0aHJlZSBvbGQg
ZmxhZ3MgYXJlIHJlcGxhY2VkIGJ5CisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpFbGVt
ZW50RmxhZ3MgYW5kIFVzZXJBY3Rpb25FbGVtZW50U2V0CisgICAgICAgIGNvbGxlY3Rpb24gd2hp
Y2ggdHJhY2tzIGVsZW1lbnRzIHdoaWNoIGFyZSBmbGFnZ2VkIHdpdGggb25lIG9mCisgICAgICAg
IGFFbGVtZW50RmxhZ3MuCisKKyAgICAgICAgV2hlbiBtYXJraW5nIGFuIGVsZW1lbnQgYXMgYWN0
aXZlIGZvciBleGFtcGxlLCBXZWJLaXQgc2V0cworICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNl
dDo6SXNBY3RpdmVGbGFnIHRvIHRoZSBlbGVtZW50IGFuZCBzdG9yZSBpdAorICAgICAgICBpbnRv
IGNvcnJlc3BvbmRpbmcgZWxlbWVudCBzZXQgb2YgdGhlIGRvY3VtZW50LiBUaGlzIHNldCBtYWlu
dGFpbnMKKyAgICAgICAgbWFya2VkIGVsZW1lbnRzIGFuZCBjb3JyZXNwb25kaW5nIGZsYWdzIGZv
ciBlYWNoIGVsZW1lbnRzLgorCisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0IGNhbiBiZSBz
ZWVuIGFzIGEgeWV0IGFub3RoZXIgcmFyZSBkYXRhIGZvciB0aGVzZQorICAgICAgICBmbGFncy4g
SG93ZXZlciwgdGhlcmUgYXJlIGNlcnRhaW4gZGlmZmVyZW5jZXMsIHRoYXQgYXJlIHdoeSBzdWNo
IGEKKyAgICAgICAgZGF0YSBzdHJ1Y3R1cmUgaXMgd29ydGggYWRkaW5nOgorCisgICAgICAgIC0g
VXNlckFjdGlvbkVsZW1lbnRTZXQgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBEb2N1bWVudCBpbnN0
ZWFkIG9mIGEKKyAgICAgICAgICBnbG9iYWwgY29sbGVjdG9uLiBUaGlzIGZpdHMgZWxlbWVudCBs
aWZldGltZSBiZXR0ZXIuCisKKyAgICAgICAgLSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHdoaWNo
IGhhdmUgdGhlc2UgZmxhZ3MgaXMgZ2VuZXJhbGx5CisgICAgICAgICAgc21hbGwsIGFuZCBhIGdy
b3VwIG9mIGVsZW1lbnRzIGZvciBlYWNoIGZsYWcgaXMgbGFyZ2VseSBvdmVybGFwcGVkCisgICAg
ICAgICAgZHVlIHRvIGl0cyBuYXR1cmUuIFRoaXMgcHJvcGVydHkga2VlcHMgdGhlIHNldCBzbWFs
bCwgYW5kIGxldHMKKyAgICAgICAgICBmbGFnIHJldHJpZXZhbCBlZmZpY2llbnQuIE9uIG1ham9y
aXR5IG9mIHRoZSBlbGVtZW50cywgYWxsIHRoZXNlCisgICAgICAgICAgZmxhZ3MgYXJlIGZhbHNl
IHRodXMgdGhlIGNoZWNrIGlzIGRvbmUgYnkganVzdCBjaGVja2luZworICAgICAgICAgIElzUmVz
cG9uZGluZ0ZsYWcuCisKKyAgICAgICAgQXMgYSBib251cywgaXNGb2N1c2VkIGZsYWcsIHdoaWNo
IHdhcyBvbiBOb2RlUmFyZURhdGEsIGlzIGFsc28gbW92ZWQgdG8gdGhpcyBtb2RlbC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5j
cHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRl
SG92ZXJBY3RpdmVTdGF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6dXNlckFjdGlvbkVsZW1lbnRzKTogQWRkZWQuCisgICAgICAgIChE
b2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1Jlc3BvbmRpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnNldFJlc3BvbmRpbmcpOiBBZGRlZC4KKyAgICAgICAgKE5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6YWN0aXZlKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1l
bnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbkFjdGl2ZUNoYWluKTogU3dpdGNoZWQg
dG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpob3ZlcmVk
KTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpmb2N1c2VkKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpzZXRGb2N1cyk6IFN3aXRjaGVkIHRvIFVzZXJBY3Rpb25FbGVtZW50
U2V0LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0QWN0aXZlKTogU3dpdGNoZWQgdG8gVXNl
ckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRIb3ZlcmVkKTog
U3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgICogZG9tL05vZGVSYXJl
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpOb2RlUmFyZURhdGEpOgor
ICAgICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vVXNlckFjdGlvbkVsZW1lbnRT
ZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNl
ckFjdGlvbkVsZW1lbnRTZXQ6Omhhc0ZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rp
b25FbGVtZW50U2V0OjpzZXRGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxl
bWVudFNldDo6Y2xlYXJGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVu
dFNldDo6VXNlckFjdGlvbkVsZW1lbnRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlv
bkVsZW1lbnRTZXQ6On5Vc2VyQWN0aW9uRWxlbWVudFNldCk6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyQWN0aW9uRWxlbWVudFNldDo6ZGlkRGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJB
Y3Rpb25FbGVtZW50U2V0Ojpkb2N1bWVudERpZFJlbW92ZUxhc3RSZWYpOgorICAgICAgICAoV2Vi
Q29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6Omhhc0ZsYWdzSW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3NJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3NJbnRlcm5hbCk6Cisg
ICAgICAgICogZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChVc2VyQWN0aW9uRWxlbWVudFNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyQWN0aW9uRWxlbWVudFNldDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJB
Y3Rpb25FbGVtZW50U2V0Ojppc0ZvY3VzZWQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlv
bkVsZW1lbnRTZXQ6OnNldEZvY3VzZWQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVs
ZW1lbnRTZXQ6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50
U2V0OjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OmlzSW5BY3RpdmVDaGFpbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNl
dDo6c2V0SW5BY3RpdmVDaGFpbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVu
dFNldDo6aXNIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0
OjpzZXRIb3ZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojpz
ZXRGbGFncyk6CisKIDIwMTItMTItMDIgIE1hcnkgV3UgIDxtYXJ5Lnd1QHRvcmNobW9iaWxlLmNv
bS5jbj4KIAogICAgICAgICBzaG91bGQgc25pZmYgaXQgaWYgbWltZXR5cGUgZG9uJ3QgY29udGFp
biBhIHNsYXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDEwZGM0M2IxNmIwMDIyNjBkZTQy
NWRlYWIzNTkyNDM0Y2EwZjk3Li5kYjI2NmM3YWYzMDkwMWY5Yjg4Yzk0OGYzYzFkYjRkZmU3Y2Rm
YzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIzNCw2ICsxMjM0LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9UcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9VSUV2ZW50LmNwcAog
ICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcAorICAgIGRvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5jcHAKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCiAgICAgZG9tL1VzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGYxN2Y4NDY5M2E1ZGIxYWY0MjNkNGEy
MmQ5ZTc5NzA5NGQwOTAyMmMuLjNiMTRiZTQxYjBlZGEwN2ZlNWFjYWVmMzY2YWUzNDNjOTBhYjM3
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjk2NSw2ICsyOTY1LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Vc2Vy
QWN0aW9uRWxlbWVudFNldC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1l
bnRTZXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA4YWJmYzdhMzE5ZjZiMjk3MTgyMTA2ZmU3ZGYwY2QyMzU0NjdkNmY5Li5lZWFhMzZjYWVk
MDg1NzkyZGFhNzk0OWNkMmRmMTA5NGIzNTUzYzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ3MSw2ICs0
NzEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vVHJlZVdhbGtlci5jcHAgXAogICAgIGRvbS9V
SUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKKyAgICBkb20v
VXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIFwKICAgICBkb20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20v
Vmlld3BvcnRBcmd1bWVudHMuY3BwIFwKQEAgLTE2MjAsNiArMTYyMSw3IEBAIEhFQURFUlMgKz0g
XAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBc
CiAgICAgZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBcCisgICAgZG9tL1VzZXJBY3Rpb25F
bGVtZW50U2V0LmggXAogICAgIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCBcCiAg
ICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDNiMDU3YjY1ZWQxMGU2YjI4NDA2ZmM2NTQzYjJhNjg0
YWIwNDg2MC4uM2FkODgwOTM3MmUwN2ZjM2JlMTc3M2UwM2EwNDA1MWRmZDQ2NmIzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMzk2Nyw2ICszOTY3LDggQEAKICAgICAgICAgICAgICdkb20vVHJlZVdh
bGtlci5oJywKICAgICAgICAgICAgICdkb20vVUlFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCcsCisgICAgICAgICAgICAnZG9tL1VzZXJBY3Rpb25F
bGVtZW50U2V0LmgnLAorICAgICAgICAgICAgJ2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkYzQ2MjQ2OTg3MjgyZGY4NzhkMTEwODNh
NGRmNGRmOTdkOThmYWQuLmZjM2Y0MDM1NjFlYWIxZjg2ZTExYjlmNjc1MWM1YzI2MzYzYjcyOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM4ODMsNiArMzg4Myw3IEBACiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBE
cmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAw
QTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250
cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZv
cm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3Mjc2
M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyNzYzQkUxNjY4OUJGQjAwMkZD
QUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmggKi87IH07CiAJCUE3MkVBM0JCMTU4NUNGNTUw
MDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRUEzQkExNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNv
dW50ZWRTdXBwbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZDMTJD
OTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi87IH07CiAJCUE3M0Y5NUZGMTJDOTdC
RkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5
MDEsNiArMzkwMiw3IEBACiAJCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVu
dFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oICovOyB9
OwogCQlBNzVFOEI4RTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODYwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLzsgfTsKIAkJQTc1RThCOEYwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsg
fTsKKwkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5IC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NjlFOTY5
MTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgKi87IH07CiAJCUE3
NkU1RjdGMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZFNUY3RTEzNUUwRENG
MDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovOyB9OwogCQlBNzc5NzkxOTBE
NkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTEzMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURh
dGEuY3BwICovOyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxNDBE
NkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IH07CkBAIC0xMTIwNyw2ICsxMTIwOSw3
IEBACiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlE
NkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1l
dGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4
NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNzI3NjNCRTE2Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1l
bnRTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckFjdGlvbkVsZW1l
bnRTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyRUEzQkExNTg1Q0Y1NTAw
NEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlZkNvdW50ZWRTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVk
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMjEsNiArMTEyMjQsNyBAQAogCQlBNzVF
OEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvbmVudFRyYW5zZmVyLmg7IHBhdGggPSBmaWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQ29tcG9zaXRlLmNwcDsgcGF0aCA9IGZpbHRlcnMv
RkVDb21wb3NpdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFOEI4NzBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRkVDb21wb3NpdGUuaDsgcGF0aCA9IGZpbHRlcnMvRkVDb21wb3NpdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc2OUU5NjkxNjY4OUQwQzAwNUQ0NTI5IC8qIFVz
ZXJBY3Rpb25FbGVtZW50U2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVzZXJBY3Rpb25FbGVtZW50U2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyZWREb2N1bWVudE1hcmtlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxMzBENkI5RDBDMDAzODUxQjkg
LyogSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElt
YWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTE0MEQ2QjlE
MEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjE3Niw2ICsy
MjE4MCw4IEBACiAJCQkJMTQxQjk0RUUwOUVDNDI1QTAwMEU5NDEzIC8qIFVJRXZlbnQuaWRsICov
LAogCQkJCTkzMzU0QTNCMEIyNEY4QzkwMDNGNkRFQSAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmNw
cCAqLywKIAkJCQk4NTAzMUIzOTBBNDRFRkM3MDBGOTkyRTAgLyogVUlFdmVudFdpdGhLZXlTdGF0
ZS5oICovLAorCQkJCUE3NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVu
dFNldC5jcHAgKi8sCisJCQkJQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25F
bGVtZW50U2V0LmggKi8sCiAJCQkJMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcCAqLywKIAkJCQkyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCAqLywKIAkJCQlCQ0RGMzE3OTExRjhENjgzMDAzQzVCRjggLyog
VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwICovLApAQCAtMjU2NDksNiArMjU2NTUsNyBA
QAogCQkJCUU0QUZDRkE1MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEMDg2RkU5ODA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcyNzYzQkYxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJB
Y3Rpb25FbGVtZW50U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODFCMjA5RDE0RUU2MDAw
RTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwM0Yx
RkVBMTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0FDRjNCRDEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4NzgwLDYgKzI4Nzg3LDcgQEAKIAkJCQlCMkMzREE0QzBEMDA2
QzFEMDBFRjZGMjYgLyogVW5pY29kZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQwODZG
RTk5MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY1NUIzREREMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTc2OUU5NkExNjY4OUQwQzAwNUQ0NTI5IC8qIFVzZXJBY3Rpb25FbGVtZW50
U2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjYxMDlEMUUxOTkwMDBCRTMyNSAvKiBV
c2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBQ0YzQkMx
MDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAyNTkz
ZTU5NWFjZmNkN2ZiODU3OTg0MWYzNjFlOTI5ZTdlOGVjYmFhLi4wMzVhZGQyMjBiMjEwNjQ5MmM0
NTA4ZjI4YTQ5MDhlOWU5YzdmZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAg
LTE0Myw2ICsxNDMsNyBAQAogI2luY2x1ZGUgIlRyZWVXYWxrZXIuY3BwIgogI2luY2x1ZGUgIlVJ
RXZlbnQuY3BwIgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIgorI2luY2x1ZGUg
IlVzZXJBY3Rpb25FbGVtZW50U2V0LmNwcCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5jcHAiCiAjaW5jbHVkZSAiVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIgogI2luY2x1
ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDI2
MDQyNzY5N2YxZTk0NzE0N2UyZmU1NmI1NjQyYWY4MDFhNWVhYWIuLmM2NDM4ZDE0MjY5NzUzYzg5
ZDViY2FiYmZhNDUzOGJhOTc5YjdjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTU4
LDYgKzE1OCw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3Vy
Y2UuaCIKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmgiCisjaW5jbHVkZSAiVXNlckFjdGlvbkVsZW1l
bnRTZXQuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93
LmgiCkBAIC02ODksNiArNjkwLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQog
ICAgICAgICBtX3RpdGxlRWxlbWVudCA9IDA7CiAgICAgICAgIG1fZG9jdW1lbnRFbGVtZW50ID0g
MDsKICAgICAgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRT
d2l0Y2goKTsKKyAgICAgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuZG9jdW1lbnREaWRSZW1vdmVM
YXN0UmVmKCk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICBtX2Z1bGxTY3Jl
ZW5FbGVtZW50ID0gMDsKICAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVudFN0YWNrLmNsZWFyKCk7
CkBAIC01NzQyLDcgKzU3NDQsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0
YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdQogICAgICAgICBm
b3IgKFJlbmRlck9iamVjdCogY3VyciA9IG9sZEFjdGl2ZU5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7
IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAm
JiAhY3Vyci0+aXNUZXh0KCkpIHsKICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEFj
dGl2ZShmYWxzZSk7Ci0gICAgICAgICAgICAgICAgY3Vyci0+bm9kZSgpLT5jbGVhckluQWN0aXZl
Q2hhaW4oKTsKKyAgICAgICAgICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0SW5BY3Rp
dmVDaGFpbihjdXJyLT5ub2RlKCksIGZhbHNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBzZXRBY3RpdmVOb2RlKDApOwpAQCAtNTc1Myw3ICs1NzU1LDcgQEAgdm9pZCBEb2N1
bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3UKICAgICAgICAgICAgIC8vIHdpbGwgbmVlZCB0byByZWZlcmVuY2UgdGhp
cyBjaGFpbi4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gbmV3QWN0aXZl
Tm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpCi0gICAgICAgICAg
ICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFpbigpOworICAgICAgICAgICAg
ICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0SW5BY3RpdmVDaGFpbihjdXJyLT5ub2Rl
KCksIHRydWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0QWN0aXZlTm9kZShuZXdB
Y3RpdmVOb2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5NWUyNWM1Yzky
NGMwY2Y3ZDQyMGVmZmM3NmY0ODliNzhhNGE4ZWM3Li4zZTgxZmM2MTFlY2UzOTQyNjY4NmQwY2Ex
OGFmMDE3OGU0ODJjMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjgwLDYgKzY4MCw4IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPik7CiAg
ICAgTm9kZSogZm9jdXNlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWROb2RlLmdldCgp
OyB9CisgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25FbGVtZW50cygpICB7IHJl
dHVybiBtX3VzZXJBY3Rpb25FbGVtZW50czsgfQorICAgIGNvbnN0IFVzZXJBY3Rpb25FbGVtZW50
U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVt
ZW50czsgfQogCiAgICAgdm9pZCBnZXRGb2N1c2FibGVOb2RlcyhWZWN0b3I8UmVmUHRyPE5vZGU+
ID4mKTsKICAgICAKQEAgLTEzMTEsNiArMTMxMyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5v
ZGU+IG1faG92ZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2FjdGl2ZU5vZGU7CiAgICAgUmVm
UHRyPEVsZW1lbnQ+IG1fZG9jdW1lbnRFbGVtZW50OworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0
IG1fdXNlckFjdGlvbkVsZW1lbnRzOwogCiAgICAgdWludDY0X3QgbV9kb21UcmVlVmVyc2lvbjsK
ICAgICBzdGF0aWMgdWludDY0X3Qgc19nbG9iYWxUcmVlVmVyc2lvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCBkMmZiYjE2YzhmNDU4OWZmNDIwNGI5NGU3YTU5NmFkYzkwMDUxYmRkLi43MDM4NzJjYjBl
ZGM2N2RhY2M3YWQ3MDZkNDA4NGI5MWJlYTA1NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC05OSw2
ICs5OSw3IEBACiAjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgogI2luY2x1ZGUgIlVJRXZl
bnQuaCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmgiCisjaW5jbHVkZSAiVXNlckFj
dGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50Q29udGV4
dC5oIgpAQCAtODczLDE4ICs4NzQsNiBAQCB2b2lkIE5vZGU6OmxhenlBdHRhY2goU2hvdWxkU2V0
QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQpCiAgICAgbWFya0FuY2VzdG9yc1dpdGhDaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotdm9pZCBOb2RlOjpzZXRGb2N1cyhib29sIGIpCi17IAot
ICAgIGlmIChiIHx8IGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVuc3VyZVJhcmVEYXRhKCktPnNl
dEZvY3VzZWQoYik7Ci19Ci0KLWJvb2wgTm9kZTo6cmFyZURhdGFGb2N1c2VkKCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPmlzRm9j
dXNlZCgpOwotfQotCiBib29sIE5vZGU6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogewogICAgIHJl
dHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPnRhYkluZGV4U2V0RXhwbGljaXRseSgp
OwpAQCAtMTIyOCwxNCArMTIxNywxNCBAQCB2b2lkIE5vZGU6OmRldGFjaCgpCiAgICAgQVNTRVJU
KCFyZW5kZXJlcigpKTsKIAogICAgIERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgpOwotICAgIGlm
IChob3ZlcmVkKCkpCi0gICAgICAgIGRvYy0+aG92ZXJlZE5vZGVEZXRhY2hlZCh0aGlzKTsKLSAg
ICBpZiAoaW5BY3RpdmVDaGFpbigpKQotICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFj
aGVkKHRoaXMpOwotCi0gICAgY2xlYXJGbGFnKElzQWN0aXZlRmxhZyk7Ci0gICAgY2xlYXJGbGFn
KElzSG92ZXJlZEZsYWcpOwotICAgIGNsZWFyRmxhZyhJbkFjdGl2ZUNoYWluRmxhZyk7CisgICAg
aWYgKGlzUmVzcG9uZGluZygpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkpCisgICAgICAgICAg
ICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlmIChpbkFjdGl2ZUNo
YWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOwor
ICAgICAgICBkb2MtPnVzZXJBY3Rpb25FbGVtZW50cygpLmRpZERldGFjaCh0aGlzKTsKKyAgICB9
CisKICAgICBjbGVhckZsYWcoSXNBdHRhY2hlZEZsYWcpOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggNWJkZmJlYWUwNmJiOGY0MzQ1MDQxODQyM2M0ZmFkMTlkNWFiYTZhZC4uYzI2
ZjRjNzMwYmE4NTA3NzRiODk4ZDFmNGNiZGQ4ZmQyOTRjMjFhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU2lt
dWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5oIgorI2luY2x1ZGUg
IlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KQEAgLTk4LDcgKzk5LDcgQEAgY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKIAotY29uc3QgaW50IG5vZGVTdHlsZUNoYW5nZVNoaWZ0ID0gMTc7
Citjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAxNTsKIAogLy8gU3ludGhldGljU3R5
bGVDaGFuZ2UgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGVudGlyZSBzdHls
ZSBjaGFuZ2UgbG9naWMgZXZlbiB0aG91Z2gKIC8vIG5vIHN0eWxlIHByb3BlcnR5IGhhcyBhY3R1
YWxseSBjaGFuZ2VkLiBJdCBpcyB1c2VkIHRvIHJlc3RydWN0dXJlIHRoZSB0cmVlIHdoZW4sIGZv
ciBpbnN0YW5jZSwKQEAgLTMzMSwxMCArMzMyLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lE
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0OwogCi0gICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQWN0aXZlRmxhZyk7IH0KLSAgICBib29sIGluQWN0
aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsgfQot
ICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNIb3ZlcmVkRmxhZyk7
IH0KLSAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFy
ZURhdGFGb2N1c2VkKCkgOiBmYWxzZTsgfQorICAgIGJvb2wgaXNSZXNwb25kaW5nKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxhZyhJc1Jlc3BvbmRpbmdGbGFnKTsgfQorICAgIHZvaWQgc2V0UmVzcG9u
ZGluZyhib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBJc1Jlc3BvbmRpbmdGbGFnKTsgfQorCisg
ICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBpc1Jlc3BvbmRpbmcoKSAmJiBVc2VyQWN0
aW9uRWxlbWVudFNldDo6aXNBY3RpdmUodGhpcyk7IH0KKyAgICBib29sIGluQWN0aXZlQ2hhaW4o
KSBjb25zdCB7IHJldHVybiBpc1Jlc3BvbmRpbmcoKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6
aXNJbkFjdGl2ZUNoYWluKHRoaXMpOyB9CisgICAgYm9vbCBob3ZlcmVkKCkgY29uc3QgeyByZXR1
cm4gaXNSZXNwb25kaW5nKCkgJiYgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmlzSG92ZXJlZCh0aGlz
KTsgfQorICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVzcG9uZGluZygpICYm
IFVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0ZvY3VzZWQodGhpcyk7IH0KKwogICAgIGJvb2wgYXR0
YWNoZWQoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQXR0YWNoZWRGbGFnKTsgfQogICAgIHZv
aWQgc2V0QXR0YWNoZWQoKSB7IHNldEZsYWcoSXNBdHRhY2hlZEZsYWcpOyB9CiAgICAgYm9vbCBu
ZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QgeyByZXR1cm4gc3R5bGVDaGFuZ2VUeXBlKCkgIT0gTm9T
dHlsZUNoYW5nZTsgfQpAQCAtMzQ3LDkgKzM1Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENo
aWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgc2V0RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFn
KTsgfQogICAgIHZvaWQgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IGNsZWFyRmxhZyhD
aGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQogCi0gICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWlu
KCkgeyBzZXRGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsgfQotICAgIHZvaWQgY2xlYXJJbkFjdGl2
ZUNoYWluKCkgeyBjbGVhckZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0KICAgICB2b2lkIHNl
dE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBGdWxsU3R5bGVD
aGFuZ2UpOwogICAgIHZvaWQgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCkgeyBtX25vZGVGbGFncyAm
PSB+U3R5bGVDaGFuZ2VNYXNrOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlU2V0TmVlZHNT
dHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSkg
eyBzZXROZWVkc1N0eWxlUmVjYWxjKGNoYW5nZVR5cGUpOyB9CkBAIC0zNzcsOSArMzc5LDkgQEAg
cHVibGljOgogICAgIHZvaWQgbGF6eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFj
aGVkKTsKICAgICB2b2lkIGxhenlSZWF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFj
aGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sID0gdHJ1ZSk7Ci0gICAgdmly
dHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGYgPSB0cnVlLCBib29sIC8qcGF1c2UqLyA9IGZhbHNl
KSB7IHNldEZsYWcoZiwgSXNBY3RpdmVGbGFnKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRIb3Zl
cmVkKGJvb2wgZiA9IHRydWUpIHsgc2V0RmxhZyhmLCBJc0hvdmVyZWRGbGFnKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGZsYWcgPSB0cnVlKSB7IFVzZXJBY3Rpb25FbGVtZW50
U2V0OjpzZXRGb2N1c2VkKHRoaXMsIGZsYWcpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2
ZShib29sIGZsYWcgPSB0cnVlLCBib29sIC8qcGF1c2UqLyA9IGZhbHNlKSB7IFVzZXJBY3Rpb25F
bGVtZW50U2V0OjpzZXRBY3RpdmUodGhpcywgZmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SG92ZXJlZChib29sIGZsYWcgPSB0cnVlKSB7IHJldHVybiBVc2VyQWN0aW9uRWxlbWVudFNldDo6
c2V0SG92ZXJlZCh0aGlzLCBmbGFnKTsgfQogCiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgp
IGNvbnN0OwogCkBAIC02OTksMzcgKzcwMSwzNSBAQCBwcml2YXRlOgogICAgICAgICBDaGlsZE5l
ZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAogICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEg
PDwgOCwKICAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNBY3RpdmVGbGFn
ID0gMSA8PCAxMCwKLSAgICAgICAgSXNIb3ZlcmVkRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIElu
QWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxMiwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8
PCAxMywKLSAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTQsCisgICAgICAg
IElzUmVzcG9uZGluZ0ZsYWcgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAx
IDw8IDExLAorICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKIAogICAg
ICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVw
IGhlcmUgc28gdGhleSBjYW4KICAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9y
eSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxkcmVu
RmluaXNoZWRGbGFnID0gMSA8PCAxNSwgLy8gRWxlbWVudAorICAgICAgICBJc1BhcnNpbmdDaGls
ZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKICNpZiBFTkFCTEUoU1ZHKQot
ICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE2LCAvLyBTVkdFbGVtZW50CisgICAg
ICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEgPDwgMTQsIC8vIFNWR0VsZW1lbnQKICNlbmRpZgog
CiAgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAx
IDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpLAogCi0gICAgICAgIFNlbGZPckFuY2VzdG9y
SGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE5LAorICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1
dG9GbGFnID0gMSA8PCAxNywKIAotICAgICAgICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0RmxhZyA9
IDEgPDwgMjAsCisgICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1RleHRGbGFnID0gMSA8PCAxOCwK
IAotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDIxLAotICAgICAgICBIYXNTeW50aGV0
aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8IDIyLAotICAgICAgICBIYXNDdXN0b21DYWxsYmFj
a3NGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRGbGFnID0g
MSA8PCAyNCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjUsCi0gICAg
ICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEgPDwgMjYsCi0gICAgICAgIElz
SW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAyNywKKyAgICAgICAgSW5OYW1lZEZsb3dGbGFnID0g
MSA8PCAxOSwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAy
MCwKKyAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjEsCisgICAgICAgIEhh
c1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjIsCisgICAgICAgIEhhc0V2ZW50VGFy
Z2V0RGF0YUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlub3JH
Q0ZsYWcgPSAxIDw8IDI0LAorICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwgMjUs
CiAKICAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRG
bGFnCiAgICAgfTsKIAotICAgIC8vIDQgYml0cyByZW1haW5pbmcKKyAgICAvLyA2IGJpdHMgcmVt
YWluaW5nCiAKICAgICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0dXJu
IG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVGbGFn
cyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwgKC0o
aW50MzJfdClmICYgbWFzayk7IH0gCkBAIC03OTQsNyArNzk0LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpOwogCiAgICAgdmlydHVhbCBPd25QdHI8Tm9k
ZVJhcmVEYXRhPiBjcmVhdGVSYXJlRGF0YSgpOwotICAgIGJvb2wgcmFyZURhdGFGb2N1c2VkKCkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZjhmODU4
Y2JhMmE3MzU2Y2ZiZGFjMjcyMDk5MDY5Y2YyOWE3MDFjZC4uMTk5YzY4YzBjYTk5MjQ2OTQ2NTE1
NGEyYmM3Mjc4MWE0ZTliNThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMjA1
LDcgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3RhYkluZGV4KDApCiAgICAgICAgICwg
bV9jaGlsZEluZGV4KDApCiAgICAgICAgICwgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkoZmFs
c2UpCi0gICAgICAgICwgbV9pc0ZvY3VzZWQoZmFsc2UpCiAgICAgICAgICwgbV9uZWVkc0ZvY3Vz
QXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBtX3N0eWxl
QWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRyZWUoZmFs
c2UpCkBAIC0zMjEsOSArMzIwLDYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCi0gICAgYm9v
bCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQotICAgIHZvaWQgc2V0
Rm9jdXNlZChib29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2VkOyB9Ci0KICAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0Owog
CiBwcm90ZWN0ZWQ6CkBAIC0zNjgsNyArMzY0LDYgQEAgcHJpdmF0ZToKICAgICBzaG9ydCBtX3Rh
YkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKICAgICBib29sIG1fdGFi
SW5kZXhXYXNTZXRFeHBsaWNpdGx5IDogMTsKLSAgICBib29sIG1faXNGb2N1c2VkIDogMTsKICAg
ICBib29sIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2ggOiAxOwog
ICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eSA6IDE7CiAgICAgYm9vbCBtX2lzSW5DYW52
YXNTdWJ0cmVlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9u
RWxlbWVudFNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQzNTVkOTcwNTk3MTg5OTRmMjIyZDFjMGYzOWJkYTIxMDU0MTNlOTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRT
ZXQuY3BwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MoY29uc3QgTm9kZSogbm9kZSwg
dW5zaWduZWQgZmxhZ3MpCit7CisgICAgQVNTRVJUKG5vZGUtPmlzUmVzcG9uZGluZygpICYmIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCktPnVzZXJB
Y3Rpb25FbGVtZW50cygpLmhhc0ZsYWdzSW50ZXJuYWwodG9FbGVtZW50KG5vZGUpLCBmbGFncyk7
Cit9CisKK3ZvaWQgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKE5vZGUqIG5vZGUsIHVu
c2lnbmVkIGZsYWdzKQoreworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAg
ICByZXR1cm47CisgICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCktPnVzZXJBY3Rpb25FbGVtZW50
cygpLnNldEZsYWdzSW50ZXJuYWwodG9FbGVtZW50KG5vZGUpLCBmbGFncyk7Cit9CisKK3ZvaWQg
VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MoTm9kZSogbm9kZSwgdW5zaWduZWQgZmxh
Z3MpCit7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybjsK
KyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+dXNlckFjdGlvbkVsZW1lbnRzKCkuY2xlYXJG
bGFnc0ludGVybmFsKHRvRWxlbWVudChub2RlKSwgZmxhZ3MpOworfQorCitVc2VyQWN0aW9uRWxl
bWVudFNldDo6VXNlckFjdGlvbkVsZW1lbnRTZXQoKQoreworfQorCitVc2VyQWN0aW9uRWxlbWVu
dFNldDo6flVzZXJBY3Rpb25FbGVtZW50U2V0KCkKK3sKK30KKwordm9pZCBVc2VyQWN0aW9uRWxl
bWVudFNldDo6ZGlkRGV0YWNoKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUtPmlzUmVz
cG9uZGluZygpKTsKKyAgICBub2RlLT5zZXRSZXNwb25kaW5nKGZhbHNlKTsKKyAgICBtX2VsZW1l
bnRzLnJlbW92ZSh0b0VsZW1lbnQobm9kZSkpOworfQorCit2b2lkIFVzZXJBY3Rpb25FbGVtZW50
U2V0Ojpkb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKQoreworICAgIG1fZWxlbWVudHMuY2xlYXIo
KTsKK30KKworaW5saW5lIGJvb2wgVXNlckFjdGlvbkVsZW1lbnRTZXQ6Omhhc0ZsYWdzSW50ZXJu
YWwoY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGVsZW1lbnQtPmlzUmVzcG9uZGluZygpKTsKKyAgICBFbGVtZW50RmxhZ01hcDo6Y29u
c3RfaXRlcmF0b3IgZm91bmQgPSBtX2VsZW1lbnRzLmZpbmQoY29uc3RfY2FzdDxFbGVtZW50Kj4o
ZWxlbWVudCkpOworICAgIGlmIChmb3VuZCA9PSBtX2VsZW1lbnRzLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGZvdW5kLT52YWx1ZSAmIGZsYWdzOworfQorCitpbmxp
bmUgdm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFnc0ludGVybmFsKEVsZW1lbnQq
IGVsZW1lbnQsIHVuc2lnbmVkIGZsYWdzKQoreworICAgIGlmICghZWxlbWVudC0+aXNSZXNwb25k
aW5nKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudHMuZW5kKCkgPT0gbV9lbGVtZW50cy5m
aW5kKGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVsZW1lbnRGbGFn
TWFwOjppdGVyYXRvciBmb3VuZCA9IG1fZWxlbWVudHMuZmluZChlbGVtZW50KTsKKyAgICBpZiAo
Zm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBlbGVtZW50LT5zZXRSZXNwb25k
aW5nKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVuc2lnbmVkIHVwZGF0
ZWQgPSBmb3VuZC0+dmFsdWUgJiB+ZmxhZ3M7CisgICAgaWYgKCF1cGRhdGVkKSB7CisgICAgICAg
IGVsZW1lbnQtPnNldFJlc3BvbmRpbmcoZmFsc2UpOworICAgICAgICBtX2VsZW1lbnRzLnJlbW92
ZShmb3VuZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3VuZC0+dmFsdWUgPSB1
cGRhdGVkOworfQorCitpbmxpbmUgdm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3NJ
bnRlcm5hbChFbGVtZW50KiBlbGVtZW50LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBFbGVtZW50
RmxhZ01hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpOworICAg
IGlmIChyZXN1bHQgIT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBBU1NFUlQoZWxlbWVu
dC0+aXNSZXNwb25kaW5nKCkpOworICAgICAgICByZXN1bHQtPnZhbHVlIHw9IGZsYWdzOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+c2V0UmVzcG9uZGluZyh0cnVlKTsK
KyAgICBtX2VsZW1lbnRzLmFkZChlbGVtZW50LCBmbGFncyk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk4NWY4MzYyYzdlNmY1
NWU0ZmY2Zjc4OWJlZjQ0ZmJmZDNhZDY3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFVzZXJBY3Rpb25FbGVtZW50U2V0X2gKKyNkZWZpbmUgVXNlckFjdGlvbkVsZW1lbnRTZXRfaAor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2Rl
OworY2xhc3MgRWxlbWVudDsKKworY2xhc3MgVXNlckFjdGlvbkVsZW1lbnRTZXQgeworcHVibGlj
OgorICAgIGVudW0gRWxlbWVudEZsYWdzIHsKKyAgICAgICAgSXNBY3RpdmVGbGFnICAgICAgPSAx
ICwKKyAgICAgICAgSW5BY3RpdmVDaGFpbkZsYWcgPSAxIDw8IDEsCisgICAgICAgIElzSG92ZXJl
ZEZsYWcgICAgID0gMSA8PCAyLAorICAgICAgICBJc0ZvY3VzZWRGbGFnICAgICA9IDEgPDwgMwor
ICAgIH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxVc2VyQWN0aW9uRWxlbWVudFNldD4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFVzZXJBY3Rpb25FbGVtZW50U2V0KCkpOyB9Cisg
ICAgc3RhdGljIGJvb2wgaXNGb2N1c2VkKGNvbnN0IE5vZGUqIG5vZGUpIHsgcmV0dXJuIGhhc0Zs
YWdzKG5vZGUsIElzRm9jdXNlZEZsYWcpOyB9CisgICAgc3RhdGljIHZvaWQgc2V0Rm9jdXNlZChO
b2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUsIElzRm9jdXNl
ZEZsYWcpOyB9CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmUoY29uc3QgTm9kZSogbm9kZSkgeyBy
ZXR1cm4gaGFzRmxhZ3Mobm9kZSwgSXNBY3RpdmVGbGFnKTsgfQorICAgIHN0YXRpYyB2b2lkIHNl
dEFjdGl2ZShOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUs
IElzQWN0aXZlRmxhZyk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0luQWN0aXZlQ2hhaW4oY29uc3Qg
Tm9kZSogbm9kZSkgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwgSW5BY3RpdmVDaGFpbkZsYWcpOyB9
CisgICAgc3RhdGljIHZvaWQgc2V0SW5BY3RpdmVDaGFpbihOb2RlKiBub2RlLCBib29sIGVuYWJs
ZSkgeyBzZXRGbGFncyhub2RlLCBJbkFjdGl2ZUNoYWluRmxhZywgZW5hYmxlKTsgfQorICAgIHN0
YXRpYyBib29sIGlzSG92ZXJlZChjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNGbGFncyhu
b2RlLCBJc0hvdmVyZWRGbGFnKTsgfQorICAgIHN0YXRpYyB2b2lkIHNldEhvdmVyZWQoTm9kZSog
bm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0hvdmVyZWRGbGFn
KTsgfQorCisgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQoKTsKKyAgICB+VXNlckFjdGlvbkVsZW1l
bnRTZXQoKTsKKworICAgIHZvaWQgZGlkRGV0YWNoKE5vZGUqKTsKKyAgICB2b2lkIGRvY3VtZW50
RGlkUmVtb3ZlTGFzdFJlZigpOworCitwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIHNldEZsYWdz
KE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlLCB1bnNpZ25lZCBmbGFncykgeyBlbmFibGUgPyBzZXRG
bGFncyhub2RlLCBmbGFncykgOiBjbGVhckZsYWdzKG5vZGUsIGZsYWdzKTsgfQorICAgIHN0YXRp
YyB2b2lkIHNldEZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgc3RhdGljIHZvaWQgY2xlYXJG
bGFncyhOb2RlKiwgdW5zaWduZWQpOworICAgIHN0YXRpYyBib29sIGhhc0ZsYWdzKGNvbnN0IE5v
ZGUqLCB1bnNpZ25lZCBmbGFncyk7CisKKyAgICBib29sIGhhc0ZsYWdzSW50ZXJuYWwoY29uc3Qg
RWxlbWVudCosIHVuc2lnbmVkIGZsYWdzKSBjb25zdDsKKyAgICB2b2lkIHNldEZsYWdzSW50ZXJu
YWwoRWxlbWVudCosIHVuc2lnbmVkKTsKKyAgICB2b2lkIGNsZWFyRmxhZ3NJbnRlcm5hbChFbGVt
ZW50KiwgdW5zaWduZWQpOworCisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxFbGVtZW50Piwg
dW5zaWduZWQ+IEVsZW1lbnRGbGFnTWFwOworICAgIEVsZW1lbnRGbGFnTWFwIG1fZWxlbWVudHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gVXNlckFjdGlvbkVsZW1lbnRTZXRf
aAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177868</attachid>
            <date>2012-12-05 16:50:23 -0800</date>
            <delta_ts>2012-12-05 20:51:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121206094748.patch</filename>
            <type>text/plain</type>
            <size>33405</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVkMjEwNjg0ZDA4Yzc4
ZmVjZTY4MjgxYmQ1YjBjNjNkNDc2YzVjNi4uNmU4ODczN2JjZDkyNzMzMWRhMDMxNmU3NDBhZmU0
MmJkNmE5ZWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEyLTEyLTA2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJc0FjdGl2ZUZsYWcs
IElzSG92ZXJGbGFnLCBJbkFjdGl2ZUNoYWluRmxhZyBjYW4gYmUgdW5pZmllZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNhdmUgdHdvIG1vcmUg
Tm9kZUZsYWdzIGJpdHMsIHRoaXMgcGF0Y2ggaW5yb2R1Y2VzCisgICAgICAgIFVzZXJBY3Rpb25F
bGVtZW50U2V0IHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbkZsYWcgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFncyBhcmUgcmVwbGFjZWQg
YnkKKyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OkVsZW1lbnRGbGFncyBhbmQgVXNlckFj
dGlvbkVsZW1lbnRTZXQKKyAgICAgICAgY29sbGVjdGlvbiB3aGljaCB0cmFja3MgZWxlbWVudHMg
d2hpY2ggYXJlIGZsYWdnZWQgd2l0aCBvbmUgb2YKKyAgICAgICAgYUVsZW1lbnRGbGFncy4KKwor
ICAgICAgICBXaGVuIG1hcmtpbmcgYW4gZWxlbWVudCBhcyBhY3RpdmUgZm9yIGV4YW1wbGUsIFdl
YktpdCBzZXRzCisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpJc0FjdGl2ZUZsYWcgdG8g
dGhlIGVsZW1lbnQgYW5kIHN0b3JlIGl0CisgICAgICAgIGludG8gY29ycmVzcG9uZGluZyBlbGVt
ZW50IHNldCBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgc2V0IG1haW50YWlucworICAgICAgICBtYXJr
ZWQgZWxlbWVudHMgYW5kIGNvcnJlc3BvbmRpbmcgZmxhZ3MgZm9yIGVhY2ggZWxlbWVudHMuCisK
KyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhl
ciByYXJlIGRhdGEgZm9yIHRoZXNlCisgICAgICAgIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUg
Y2VydGFpbiBkaWZmZXJlbmNlcywgdGhhdCBhcmUgd2h5IHN1Y2ggYQorICAgICAgICBkYXRhIHN0
cnVjdHVyZSBpcyB3b3J0aCBhZGRpbmc6CisKKyAgICAgICAgLSBVc2VyQWN0aW9uRWxlbWVudFNl
dCBpcyBtYWludGFpbmVkIGZvciBlYWNoIERvY3VtZW50IGluc3RlYWQgb2YgYQorICAgICAgICAg
IGdsb2JhbCBjb2xsZWN0b24uIFRoaXMgZml0cyBlbGVtZW50IGxpZmV0aW1lIGJldHRlci4KKwor
ICAgICAgICAtIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2hpY2ggaGF2ZSB0aGVzZSBmbGFncyBp
cyBnZW5lcmFsbHkKKyAgICAgICAgICBzbWFsbCwgYW5kIGEgZ3JvdXAgb2YgZWxlbWVudHMgZm9y
IGVhY2ggZmxhZyBpcyBsYXJnZWx5IG92ZXJsYXBwZWQKKyAgICAgICAgICBkdWUgdG8gaXRzIG5h
dHVyZS4gVGhpcyBwcm9wZXJ0eSBrZWVwcyB0aGUgc2V0IHNtYWxsLCBhbmQgbGV0cworICAgICAg
ICAgIGZsYWcgcmV0cmlldmFsIGVmZmljaWVudC4gT24gbWFqb3JpdHkgb2YgdGhlIGVsZW1lbnRz
LCBhbGwgdGhlc2UKKyAgICAgICAgICBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMg
ZG9uZSBieSBqdXN0IGNoZWNraW5nCisgICAgICAgICAgSXNJblVzZXJBY3Rpb25GbGFnLgorCisg
ICAgICAgIEFzIGEgYm9udXMsIGlzRm9jdXNlZCBmbGFnLCB3aGljaCB3YXMgb24gTm9kZVJhcmVE
YXRhLCBpcyBhbHNvIG1vdmVkIHRvIHRoaXMgbW9kZWwuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RS
ZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnVzZXJBY3Rpb25FbGVtZW50cyk6IEFkZGVkLgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRldGFjaCk6CisgICAg
ICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6aXNJblVzZXJBY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dEluVXNlckFjdGlvbik6IEFkZGVkLgorICAgICAgICAoTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjphY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmluQWN0aXZlQ2hhaW4pOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9u
RWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmhvdmVyZWQpOiBTd2l0Y2hlZCB0
byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmZvY3VzZWQp
OiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnNldEZvY3VzKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpzZXRBY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVu
dFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldEhvdmVyZWQpOiBTd2l0Y2hlZCB0byBV
c2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChOb2Rl
UmFyZURhdGEpOgorICAgICAgICAqIGRvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVu
dFNldDo6aGFzRmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OnNldEZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpjbGVh
ckZsYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpVc2VyQWN0
aW9uRWxlbWVudFNldCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6
flVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVt
ZW50U2V0OjpkaWREZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRT
ZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0
aW9uRWxlbWVudFNldDo6aGFzRmxhZ3NJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpVc2Vy
QWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFnc0ludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGbGFnc0ludGVybmFsKToKKyAgICAgICAgKiBkb20v
VXNlckFjdGlvbkVsZW1lbnRTZXQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25F
bGVtZW50U2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRT
ZXQ6OmlzRm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6
c2V0Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNB
Y3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEFjdGl2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNJbkFjdGl2ZUNo
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRJbkFjdGl2
ZUNoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0hvdmVy
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEhvdmVyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKToKKwog
MjAxMi0xMi0wNSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgSW5kZXhlZERCOiBBYm9ydCB0cmFuc2FjdGlvbnMgYmVjYXVzZSBvZiBsZXZlbGRiIGVycm9y
cyBwYXJ0IDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWUxMGE5MTY5YWRiYWNkNDk0YmJmMzNi
NzU5YTU5Nzc2MjZlNTA1NS4uMTg1ZGU3MDM4MjY1ZDAzMzRlOGU0YzAzM2FhNTdiYWE0ZDJkZjRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMzgsNiArMTIzOCw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vVHJlZVdhbGtlci5jcHAKICAgICBkb20vVUlFdmVudC5jcHAKICAg
ICBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAKKyAgICBkb20vVXNlckFjdGlvbkVsZW1lbnRT
ZXQuY3BwCiAgICAgZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAogICAgIGRvbS9Vc2VyVHlw
aW5nR2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkMWM4NjBhZDU5NTNiYmRiNmM1NDUwM2Vm
ZTUwMmMxZjRlZjAyNDUyLi5mODg4NTIwYzdiNzVmNDViNGY4ODQ5MzFkNTA1NzAyMzdiZjVhODA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI5NzUsNiArMjk3NSw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckFj
dGlvbkVsZW1lbnRTZXQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50
U2V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggZDRiNTBjYjliYTgzOTU4NjI3NTE5ODY0Mzc1YjA3YTdkNTAwM2M3MC4uYzVkYjc4MDllYmQ1
MzE2MGZmY2NlN2RkMTA3YTA0YTgxMWVmNDhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00NzIsNiArNDcy
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwIFwKICAgICBkb20vVUlF
dmVudC5jcHAgXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCBcCisgICAgZG9tL1Vz
ZXJBY3Rpb25FbGVtZW50U2V0LmNwcCBcCiAgICAgZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cCBcCiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCiAgICAgZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcCBcCkBAIC0xNjI0LDYgKzE2MjUsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBkb20vUmFuZ2UuaCBcCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggXAog
ICAgIGRvbS9SZW5kZXJlZERvY3VtZW50TWFya2VyLmggXAorICAgIGRvbS9Vc2VyQWN0aW9uRWxl
bWVudFNldC5oIFwKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggXAogICAg
IGRvbS9TY3JpcHRFbGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDAwYmQxNWZkNTcyYjVhYTEwNDEwMzEzNGVjZWE0ODBlMmQz
MmYxNDMuLjMxYTc4YjcxYTljNTkzMTRjMGZjNGIxZGFmMGMzNDM5MjlhYjJhOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTM5NzQsNiArMzk3NCw4IEBACiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxr
ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1VJRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20v
VUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Vc2VyQWN0aW9uRWxl
bWVudFNldC5oJywKKyAgICAgICAgICAgICdkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwJywK
ICAgICAgICAgICAgICdkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwJywKICAgICAgICAgICAg
ICdkb20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwJywKICAgICAgICAgICAgICdkb20v
Vmlld3BvcnRBcmd1bWVudHMuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4NTVhOGIyZmRkMmIwZTVkMWI4ZmFjMGIyZjAx
MDQ2YzJmNjIzZmFjLi5mNzk5ZTFiNDc2YjRlYmI3ODUxYWEzYjAxYWMyZDhiMGM2MmQxNGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zODgzLDYgKzM4ODMsNyBAQAogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJh
Z0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEEx
NkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJv
bGxlck1hYy5tbSAqLzsgfTsKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3Jt
RXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzI3NjNC
RjE2Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FD
QiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oICovOyB9OwogCQlBNzJFQTNCQjE1ODVDRjU1MDA0
RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3Vu
dGVkU3VwcGxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTAx
LDYgKzM5MDIsNyBAQAogCQlBNzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRU
cmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsK
IAkJQTc1RThCOEUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdG
MjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07
CisJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY5RTk2OTE2
Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwICovOyB9OwogCQlBNzZF
NUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAw
QTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZC
OUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZC
OUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovOyB9OwpAQCAtMTEyMTMsNiArMTEyMTUsNyBA
QAogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZE
IC8qIEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRl
ckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRD
QTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50
U2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBY3Rpb25FbGVtZW50
U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MkVBM0JBMTU4NUNGNTUwMDRG
QUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWZDb3VudGVkU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjI3LDYgKzExMjMwLDcgQEAKIAkJQTc1RThC
ODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb25lbnRUcmFuc2Zlci5oOyBwYXRoID0gZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUNvbXBvc2l0ZS5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RThCODcwRTFE
RTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEZFQ29tcG9zaXRlLmg7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBVc2Vy
QWN0aW9uRWxlbWVudFNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTMwRDZCOUQwQzAwMzg1MUI5IC8q
IEltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFn
ZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxNDBENkI5RDBD
MDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIyMDAsNiArMjIy
MDQsOCBAQAogCQkJCTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLywK
IAkJCQk5MzM1NEEzQjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAg
Ki8sCiAJCQkJODUwMzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUu
aCAqLywKKwkJCQlBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRT
ZXQuY3BwICovLAorCQkJCUE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxl
bWVudFNldC5oICovLAogCQkJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVy
ZUluZGljYXRvci5jcHAgKi8sCiAJCQkJMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJH
ZXN0dXJlSW5kaWNhdG9yLmggKi8sCiAJCQkJQkNERjMxNzkxMUY4RDY4MzAwM0M1QkY4IC8qIFVz
ZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLywKQEAgLTI1Njc1LDYgKzI1NjgxLDcgQEAK
IAkJCQlFNEFGQ0ZBNTBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRDA4NkZFOTgwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0
aW9uRWxlbWVudFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxQjIwOUQxNEVFNjAwMEU2
MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDNGMUZF
QTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNBQ0YzQkQxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODgxMCw2ICsyODgxNyw3IEBACiAJCQkJQjJDM0RBNEMwRDAwNkMx
RDAwRUY2RjI2IC8qIFVuaWNvZGVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMDg2RkU5
OTA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNTVCM0RERDEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNl
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzI2MTA5RDFFMTk5MDAwQkUzMjUgLyogVXNl
ckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQUNGM0JDMTA3
MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMWRiNDIy
ZDQyMTc5MDRkNWVlOTQ5MWIxNTMwYjExNjVmYjRmNDQzNC4uOTI5NmExOWExY2I5ZTRhNDgwNmYz
NDM5Yjc4MmMyNTc0YjFjYTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0x
NDQsNiArMTQ0LDcgQEAKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNwcCIKICNpbmNsdWRlICJVSUV2
ZW50LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCIKKyNpbmNsdWRlICJV
c2VyQWN0aW9uRWxlbWVudFNldC5jcHAiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3Iu
Y3BwIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5ZmQ0
MWYxMDhkYzA2N2M5MTAxYmIyOGQyMjAyZTgyNTE5NzJhOTYzLi5hNGIzZDk4NGQzY2VhMjAxMjU1
ZDIwNmFkNDFlZmY2MDkzMWYzMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE1OCw2
ICsxNTgsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNl
LmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50
U2V0LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5o
IgpAQCAtNjg5LDYgKzY5MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAg
ICAgICAgbV90aXRsZUVsZW1lbnQgPSAwOwogICAgICAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7
CiAgICAgICAgIG1fY29udGV4dEZlYXR1cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dp
dGNoKCk7CisgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLmRvY3VtZW50RGlkUmVtb3ZlTGFz
dFJlZigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgbV9mdWxsU2NyZWVu
RWxlbWVudCA9IDA7CiAgICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnRTdGFjay5jbGVhcigpOwpA
QCAtNTc1OCw3ICs1NzYwLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0
ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgZm9y
IChSZW5kZXJPYmplY3QqIGN1cnIgPSBvbGRBY3RpdmVOb2RlLT5yZW5kZXJlcigpOyBjdXJyOyBj
dXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYg
IWN1cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgY3Vyci0+bm9kZSgpLT5zZXRBY3Rp
dmUoZmFsc2UpOwotICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+Y2xlYXJJbkFjdGl2ZUNo
YWluKCk7CisgICAgICAgICAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEluQWN0aXZl
Q2hhaW4oY3Vyci0+bm9kZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgc2V0QWN0aXZlTm9kZSgwKTsKQEAgLTU3NjksNyArNTc3MSw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1CiAgICAgICAgICAgICAvLyB3aWxsIG5lZWQgdG8gcmVmZXJlbmNlIHRoaXMg
Y2hhaW4uCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IG5ld0FjdGl2ZU5v
ZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAgICAg
ICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgpKQotICAgICAgICAgICAg
ICAgICAgICBjdXJyLT5ub2RlKCktPnNldEluQWN0aXZlQ2hhaW4oKTsKKyAgICAgICAgICAgICAg
ICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEluQWN0aXZlQ2hhaW4oY3Vyci0+bm9kZSgp
LCB0cnVlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNldEFjdGl2ZU5vZGUobmV3QWN0
aXZlTm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzEzZDllNWNkZGMw
YzYzODdkNzYyNGIxODVmYWNhMzAyMzAwMzVkZS4uNDU4Y2I0MzRiYTJlYTM5OTY3NGE2OWNjMGFh
ZjEwMjRmYTk5MmNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY4MCw2ICs2ODAsOCBAQCBw
dWJsaWM6CiAKICAgICBib29sIHNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4pOwogICAg
IE5vZGUqIGZvY3VzZWROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkTm9kZS5nZXQoKTsg
fQorICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMoKSAgeyByZXR1
cm4gbV91c2VyQWN0aW9uRWxlbWVudHM7IH0KKyAgICBjb25zdCBVc2VyQWN0aW9uRWxlbWVudFNl
dCYgdXNlckFjdGlvbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VyQWN0aW9uRWxlbWVu
dHM7IH0KIAogICAgIHZvaWQgZ2V0Rm9jdXNhYmxlTm9kZXMoVmVjdG9yPFJlZlB0cjxOb2RlPiA+
Jik7CiAgICAgCkBAIC0xMzIxLDYgKzEzMjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2Rl
PiBtX2hvdmVyTm9kZTsKICAgICBSZWZQdHI8Tm9kZT4gbV9hY3RpdmVOb2RlOwogICAgIFJlZlB0
cjxFbGVtZW50PiBtX2RvY3VtZW50RWxlbWVudDsKKyAgICBVc2VyQWN0aW9uRWxlbWVudFNldCBt
X3VzZXJBY3Rpb25FbGVtZW50czsKIAogICAgIHVpbnQ2NF90IG1fZG9tVHJlZVZlcnNpb247CiAg
ICAgc3RhdGljIHVpbnQ2NF90IHNfZ2xvYmFsVHJlZVZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5k
ZXggNTg0ZGJlOWZlMjRkNWM5N2FjODk4NTVhMjY4ZTU0OTA0NzMwM2RiOC4uNmE0N2MwYmVjMjg1
YTNmMWU2YzAzNzNiOGY3ZGQxZTYxNWY1YzY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtOTksNiAr
OTksNyBAQAogI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKICNpbmNsdWRlICJVSUV2ZW50
LmgiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5oIgorI2luY2x1ZGUgIlVzZXJBY3Rp
b25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJXaW5kb3dFdmVudENvbnRleHQu
aCIKQEAgLTkwNCwxOCArOTA1LDYgQEAgdm9pZCBOb2RlOjpsYXp5QXR0YWNoKFNob3VsZFNldEF0
dGFjaGVkIHNob3VsZFNldEF0dGFjaGVkKQogICAgIG1hcmtBbmNlc3RvcnNXaXRoQ2hpbGROZWVk
c1N0eWxlUmVjYWxjKCk7CiB9CiAKLXZvaWQgTm9kZTo6c2V0Rm9jdXMoYm9vbCBiKQoteyAKLSAg
ICBpZiAoYiB8fCBoYXNSYXJlRGF0YSgpKQotICAgICAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRG
b2N1c2VkKGIpOwotfQotCi1ib29sIE5vZGU6OnJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOwotICAgIHJldHVybiByYXJlRGF0YSgpLT5pc0ZvY3Vz
ZWQoKTsKLX0KLQogYm9vbCBOb2RlOjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIHsKICAgICByZXR1
cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLT50YWJJbmRleFNldEV4cGxpY2l0bHkoKTsK
QEAgLTEyNTksMTQgKzEyNDgsMTQgQEAgdm9pZCBOb2RlOjpkZXRhY2goKQogICAgIEFTU0VSVCgh
cmVuZGVyZXIoKSk7CiAKICAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKTsKLSAgICBpZiAo
aG92ZXJlZCgpKQotICAgICAgICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7Ci0gICAg
aWYgKGluQWN0aXZlQ2hhaW4oKSkKLSAgICAgICAgZG9jLT5hY3RpdmVDaGFpbk5vZGVEZXRhY2hl
ZCh0aGlzKTsKLQotICAgIGNsZWFyRmxhZyhJc0FjdGl2ZUZsYWcpOwotICAgIGNsZWFyRmxhZyhJ
c0hvdmVyZWRGbGFnKTsKLSAgICBjbGVhckZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOworICAgIGlm
IChpc0luVXNlckFjdGlvbigpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkpCisgICAgICAgICAg
ICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlmIChpbkFjdGl2ZUNo
YWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOwor
ICAgICAgICBkb2MtPnVzZXJBY3Rpb25FbGVtZW50cygpLmRpZERldGFjaCh0aGlzKTsKKyAgICB9
CisKICAgICBjbGVhckZsYWcoSXNBdHRhY2hlZEZsYWcpOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggN2E0NzBlZWMwNjliYTYyNzNiMTY1NTYwZDZlNzY5Yzg4NDZiMzBmOC4uMTJj
NTk2ZDFjMzA1ZTFjYjkzNzhjOWNiMWZjYzE4YWJmOTM3YTk0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU2lt
dWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5oIgorI2luY2x1ZGUg
IlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KQEAgLTk4LDcgKzk5LDcgQEAgY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKIAotY29uc3QgaW50IG5vZGVTdHlsZUNoYW5nZVNoaWZ0ID0gMTc7
Citjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAxNTsKIAogLy8gU3ludGhldGljU3R5
bGVDaGFuZ2UgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGVudGlyZSBzdHls
ZSBjaGFuZ2UgbG9naWMgZXZlbiB0aG91Z2gKIC8vIG5vIHN0eWxlIHByb3BlcnR5IGhhcyBhY3R1
YWxseSBjaGFuZ2VkLiBJdCBpcyB1c2VkIHRvIHJlc3RydWN0dXJlIHRoZSB0cmVlIHdoZW4sIGZv
ciBpbnN0YW5jZSwKQEAgLTMzOSwxMCArMzQwLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lE
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0OwogCi0gICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQWN0aXZlRmxhZyk7IH0KLSAgICBib29sIGluQWN0
aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsgfQot
ICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNIb3ZlcmVkRmxhZyk7
IH0KLSAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFy
ZURhdGFGb2N1c2VkKCkgOiBmYWxzZTsgfQorICAgIGJvb2wgaXNJblVzZXJBY3Rpb24oKSBjb25z
dCB7IHJldHVybiBnZXRGbGFnKElzSW5Vc2VyQWN0aW9uRmxhZyk7IH0KKyAgICB2b2lkIHNldElu
VXNlckFjdGlvbihib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBJc0luVXNlckFjdGlvbkZsYWcp
OyB9CisKKyAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGlzSW5Vc2VyQWN0aW9uKCkg
JiYgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmlzQWN0aXZlKHRoaXMpOyB9CisgICAgYm9vbCBpbkFj
dGl2ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gaXNJblVzZXJBY3Rpb24oKSAmJiBVc2VyQWN0aW9u
RWxlbWVudFNldDo6aXNJbkFjdGl2ZUNoYWluKHRoaXMpOyB9CisgICAgYm9vbCBob3ZlcmVkKCkg
Y29uc3QgeyByZXR1cm4gaXNJblVzZXJBY3Rpb24oKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6
aXNIb3ZlcmVkKHRoaXMpOyB9CisgICAgYm9vbCBmb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gaXNJ
blVzZXJBY3Rpb24oKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNGb2N1c2VkKHRoaXMpOyB9
CisKICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0F0dGFjaGVk
RmxhZyk7IH0KICAgICB2b2lkIHNldEF0dGFjaGVkKCkgeyBzZXRGbGFnKElzQXR0YWNoZWRGbGFn
KTsgfQogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuIHN0eWxlQ2hh
bmdlVHlwZSgpICE9IE5vU3R5bGVDaGFuZ2U7IH0KQEAgLTM1NSw5ICszNjAsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IHNldEZsYWcoQ2hpbGROZWVk
c1N0eWxlUmVjYWxjRmxhZyk7IH0KICAgICB2b2lkIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxj
KCkgeyBjbGVhckZsYWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyk7IH0KIAotICAgIHZvaWQg
c2V0SW5BY3RpdmVDaGFpbigpIHsgc2V0RmxhZyhJbkFjdGl2ZUNoYWluRmxhZyk7IH0KLSAgICB2
b2lkIGNsZWFySW5BY3RpdmVDaGFpbigpIHsgY2xlYXJGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsg
fQotCiAgICAgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VU
eXBlID0gRnVsbFN0eWxlQ2hhbmdlKTsKICAgICB2b2lkIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygp
IHsgbV9ub2RlRmxhZ3MgJj0gflN0eWxlQ2hhbmdlTWFzazsgfQogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZVNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBG
dWxsU3R5bGVDaGFuZ2UpIHsgc2V0TmVlZHNTdHlsZVJlY2FsYyhjaGFuZ2VUeXBlKTsgfQpAQCAt
Mzg1LDkgKzM4Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGxhenlBdHRhY2goU2hvdWxkU2V0QXR0
YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAgICAgdm9pZCBsYXp5UmVhdHRhY2goU2hvdWxkU2V0QXR0
YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCA9
IHRydWUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0gdHJ1ZSwgYm9vbCAv
KnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0aXZlRmxhZyk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGYgPSB0cnVlKSB7IHNldEZsYWcoZiwgSXNIb3ZlcmVk
RmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBmbGFnID0gdHJ1ZSkgeyBV
c2VyQWN0aW9uRWxlbWVudFNldDo6c2V0Rm9jdXNlZCh0aGlzLCBmbGFnKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmbGFnID0gdHJ1ZSwgYm9vbCAvKnBhdXNlKi8gPSBmYWxz
ZSkgeyBVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0QWN0aXZlKHRoaXMsIGZsYWcpOyB9CisgICAg
dmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCBmbGFnID0gdHJ1ZSkgeyByZXR1cm4gVXNlckFj
dGlvbkVsZW1lbnRTZXQ6OnNldEhvdmVyZWQodGhpcywgZmxhZyk7IH0KIAogICAgIHZpcnR1YWwg
c2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIApAQCAtNzA3LDM3ICs3MDksMzUgQEAgcHJpdmF0ZToK
ICAgICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKICAgICAgICAgSW5E
b2N1bWVudEZsYWcgPSAxIDw8IDgsCiAgICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCi0gICAg
ICAgIElzQWN0aXZlRmxhZyA9IDEgPDwgMTAsCi0gICAgICAgIElzSG92ZXJlZEZsYWcgPSAxIDw8
IDExLAotICAgICAgICBJbkFjdGl2ZUNoYWluRmxhZyA9IDEgPDwgMTIsCi0gICAgICAgIEhhc1Jh
cmVEYXRhRmxhZyA9IDEgPDwgMTMsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAx
IDw8IDE0LAorICAgICAgICBJc0luVXNlckFjdGlvbkZsYWcgPSAxIDw8IDEwLAorICAgICAgICBI
YXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAorICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFn
ID0gMSA8PCAxMiwKIAogICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQg
Y2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28gdGhleSBjYW4KICAgICAgICAgLy8gYmUgc3RvcmVk
IGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAg
IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnID0gMSA8PCAxNSwgLy8gRWxlbWVudAorICAg
ICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQK
ICNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE2LCAv
LyBTVkdFbGVtZW50CisgICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEgPDwgMTQsIC8vIFNW
R0VsZW1lbnQKICNlbmRpZgogCiAgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0
eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpLAogCi0gICAg
ICAgIFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE5LAorICAgICAgICBTZWxm
T3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAxNywKIAotICAgICAgICBIYXNOYW1lT3JJ
c0VkaXRpbmdUZXh0RmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1Rl
eHRGbGFnID0gMSA8PCAxOCwKIAotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDIxLAot
ICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8IDIyLAotICAgICAg
ICBIYXNDdXN0b21DYWxsYmFja3NGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSGFzU2NvcGVkSFRN
TFN0eWxlQ2hpbGRGbGFnID0gMSA8PCAyNCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxh
ZyA9IDEgPDwgMjUsCi0gICAgICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEg
PDwgMjYsCi0gICAgICAgIElzSW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAyNywKKyAgICAgICAg
SW5OYW1lZEZsb3dGbGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxk
Tm9kZXNGbGFnID0gMSA8PCAyMCwKKyAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEg
PDwgMjEsCisgICAgICAgIEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjIsCisg
ICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBWOENvbGxl
Y3RhYmxlRHVyaW5nTWlub3JHQ0ZsYWcgPSAxIDw8IDI0LAorICAgICAgICBJc0luc2VydGlvblBv
aW50RmxhZyA9IDEgPDwgMjUsCiAKICAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2lu
Z0NoaWxkcmVuRmluaXNoZWRGbGFnCiAgICAgfTsKIAotICAgIC8vIDQgYml0cyByZW1haW5pbmcK
KyAgICAvLyA2IGJpdHMgcmVtYWluaW5nCiAKICAgICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1h
c2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAgIHZvaWQgc2V0Rmxh
Zyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZs
YWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYgbWFzayk7IH0gCkBAIC04MDksNyArODA5LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpOwogCiAgICAg
dmlydHVhbCBQYXNzT3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURhdGEoKTsKLSAgICBi
b29sIHJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBSZW5kZXJTdHlsZSog
bm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oCmluZGV4IDI0ZWYyMzM0YmRkMGMxNWU3Y2UwNDQyMGQ0YzBlMGZkODBmNDc4NTcu
LjZkYzQ2YmM0ODdhZmE0ZDc3MzQwNDBjYmM2MzI2YjE1NzczOGE2OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV90
YWJJbmRleCgwKQogICAgICAgICAsIG1fY2hpbGRJbmRleCgwKQogICAgICAgICAsIG1fdGFiSW5k
ZXhXYXNTZXRFeHBsaWNpdGx5KGZhbHNlKQotICAgICAgICAsIG1faXNGb2N1c2VkKGZhbHNlKQog
ICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFs
c2UpCiAgICAgICAgICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkKICAgICAgICAgLCBt
X2lzSW5DYW52YXNTdWJ0cmVlKGZhbHNlKQpAQCAtMzIxLDkgKzMyMCw2IEBAIHB1YmxpYzoKICAg
ICB9CiAjZW5kaWYKIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Zv
Y3VzZWQ7IH0KLSAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2Vk
ID0gZm9jdXNlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtMzMyLDcgKzMyOCw2IEBAIHBy
b3RlY3RlZDoKICAgICBzaG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hp
bGRJbmRleDsKICAgICBib29sIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5IDogMTsKLSAgICBi
b29sIG1faXNGb2N1c2VkIDogMTsKICAgICBib29sIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRh
dGVTb29uQWZ0ZXJBdHRhY2ggOiAxOwogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eSA6
IDE7CiAgICAgYm9vbCBtX2lzSW5DYW52YXNTdWJ0cmVlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3MzdhMTQxNzQzMTk1M2Jm
ZTgyZmI2MjNmNTk0NmRlNGJlMmMwZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFz
RmxhZ3MoY29uc3QgTm9kZSogbm9kZSwgdW5zaWduZWQgZmxhZ3MpCit7CisgICAgQVNTRVJUKG5v
ZGUtPmlzSW5Vc2VyQWN0aW9uKCkgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICByZXR1
cm4gbm9kZS0+ZG9jdW1lbnQoKS0+dXNlckFjdGlvbkVsZW1lbnRzKCkuaGFzRmxhZ3NJbnRlcm5h
bCh0b0VsZW1lbnQobm9kZSksIGZsYWdzKTsKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNl
dDo6c2V0RmxhZ3MoTm9kZSogbm9kZSwgdW5zaWduZWQgZmxhZ3MpCit7CisgICAgaWYgKCFub2Rl
LT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybjsKKyAgICByZXR1cm4gbm9kZS0+ZG9j
dW1lbnQoKS0+dXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0RmxhZ3NJbnRlcm5hbCh0b0VsZW1lbnQo
bm9kZSksIGZsYWdzKTsKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFn
cyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgpLT51
c2VyQWN0aW9uRWxlbWVudHMoKS5jbGVhckZsYWdzSW50ZXJuYWwodG9FbGVtZW50KG5vZGUpLCBm
bGFncyk7Cit9CisKK1VzZXJBY3Rpb25FbGVtZW50U2V0OjpVc2VyQWN0aW9uRWxlbWVudFNldCgp
Cit7Cit9CisKK1VzZXJBY3Rpb25FbGVtZW50U2V0Ojp+VXNlckFjdGlvbkVsZW1lbnRTZXQoKQor
eworfQorCit2b2lkIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpkaWREZXRhY2goTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQobm9kZS0+aXNJblVzZXJBY3Rpb24oKSk7CisgICAgY2xlYXJGbGFnc0lu
dGVybmFsKHRvRWxlbWVudChub2RlKSwgSXNBY3RpdmVGbGFnIHwgSW5BY3RpdmVDaGFpbkZsYWcg
fCBJc0hvdmVyZWRGbGFnKTsKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6ZG9jdW1l
bnREaWRSZW1vdmVMYXN0UmVmKCkKK3sKKyAgICBtX2VsZW1lbnRzLmNsZWFyKCk7Cit9CisKK2lu
bGluZSBib29sIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFnc0ludGVybmFsKGNvbnN0IEVs
ZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIGZsYWdzKSBjb25zdAoreworICAgIEFTU0VSVChlbGVt
ZW50LT5pc0luVXNlckFjdGlvbigpKTsKKyAgICBFbGVtZW50RmxhZ01hcDo6Y29uc3RfaXRlcmF0
b3IgZm91bmQgPSBtX2VsZW1lbnRzLmZpbmQoY29uc3RfY2FzdDxFbGVtZW50Kj4oZWxlbWVudCkp
OworICAgIGlmIChmb3VuZCA9PSBtX2VsZW1lbnRzLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGZvdW5kLT52YWx1ZSAmIGZsYWdzOworfQorCitpbmxpbmUgdm9pZCBV
c2VyQWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFnc0ludGVybmFsKEVsZW1lbnQqIGVsZW1lbnQs
IHVuc2lnbmVkIGZsYWdzKQoreworICAgIGlmICghZWxlbWVudC0+aXNJblVzZXJBY3Rpb24oKSkg
eworICAgICAgICBBU1NFUlQobV9lbGVtZW50cy5lbmQoKSA9PSBtX2VsZW1lbnRzLmZpbmQoZWxl
bWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRWxlbWVudEZsYWdNYXA6Oml0
ZXJhdG9yIGZvdW5kID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpOworICAgIGlmIChmb3VuZCA9
PSBtX2VsZW1lbnRzLmVuZCgpKSB7CisgICAgICAgIGVsZW1lbnQtPnNldEluVXNlckFjdGlvbihm
YWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1cGRhdGVkID0g
Zm91bmQtPnZhbHVlICYgfmZsYWdzOworICAgIGlmICghdXBkYXRlZCkgeworICAgICAgICBlbGVt
ZW50LT5zZXRJblVzZXJBY3Rpb24oZmFsc2UpOworICAgICAgICBtX2VsZW1lbnRzLnJlbW92ZShm
b3VuZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3VuZC0+dmFsdWUgPSB1cGRh
dGVkOworfQorCitpbmxpbmUgdm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3NJbnRl
cm5hbChFbGVtZW50KiBlbGVtZW50LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBFbGVtZW50Rmxh
Z01hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpOworICAgIGlm
IChyZXN1bHQgIT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBBU1NFUlQoZWxlbWVudC0+
aXNJblVzZXJBY3Rpb24oKSk7CisgICAgICAgIHJlc3VsdC0+dmFsdWUgfD0gZmxhZ3M7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5zZXRJblVzZXJBY3Rpb24odHJ1ZSk7
CisgICAgbV9lbGVtZW50cy5hZGQoZWxlbWVudCwgZmxhZ3MpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ODVmODM2MmM3ZTZm
NTVlNGZmNmY3ODliZWY0NGZiZmQzYWQ2N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaApAQCAtMCwwICsxLDgyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBVc2VyQWN0aW9uRWxlbWVudFNldF9oCisjZGVmaW5lIFVzZXJBY3Rpb25FbGVtZW50U2V0X2gK
KworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9k
ZTsKK2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNzIFVzZXJBY3Rpb25FbGVtZW50U2V0IHsKK3B1Ymxp
YzoKKyAgICBlbnVtIEVsZW1lbnRGbGFncyB7CisgICAgICAgIElzQWN0aXZlRmxhZyAgICAgID0g
MSAsCisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVy
ZWRGbGFnICAgICA9IDEgPDwgMiwKKyAgICAgICAgSXNGb2N1c2VkRmxhZyAgICAgPSAxIDw8IDMK
KyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8VXNlckFjdGlvbkVsZW1lbnRTZXQ+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBVc2VyQWN0aW9uRWxlbWVudFNldCgpKTsgfQor
ICAgIHN0YXRpYyBib29sIGlzRm9jdXNlZChjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNG
bGFncyhub2RlLCBJc0ZvY3VzZWRGbGFnKTsgfQorICAgIHN0YXRpYyB2b2lkIHNldEZvY3VzZWQo
Tm9kZSogbm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0ZvY3Vz
ZWRGbGFnKTsgfQorICAgIHN0YXRpYyBib29sIGlzQWN0aXZlKGNvbnN0IE5vZGUqIG5vZGUpIHsg
cmV0dXJuIGhhc0ZsYWdzKG5vZGUsIElzQWN0aXZlRmxhZyk7IH0KKyAgICBzdGF0aWMgdm9pZCBz
ZXRBY3RpdmUoTm9kZSogbm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxl
LCBJc0FjdGl2ZUZsYWcpOyB9CisgICAgc3RhdGljIGJvb2wgaXNJbkFjdGl2ZUNoYWluKGNvbnN0
IE5vZGUqIG5vZGUpIHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIEluQWN0aXZlQ2hhaW5GbGFnKTsg
fQorICAgIHN0YXRpYyB2b2lkIHNldEluQWN0aXZlQ2hhaW4oTm9kZSogbm9kZSwgYm9vbCBlbmFi
bGUpIHsgc2V0RmxhZ3Mobm9kZSwgSW5BY3RpdmVDaGFpbkZsYWcsIGVuYWJsZSk7IH0KKyAgICBz
dGF0aWMgYm9vbCBpc0hvdmVyZWQoY29uc3QgTm9kZSogbm9kZSkgeyByZXR1cm4gaGFzRmxhZ3Mo
bm9kZSwgSXNIb3ZlcmVkRmxhZyk7IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRIb3ZlcmVkKE5vZGUq
IG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgSXNIb3ZlcmVkRmxh
Zyk7IH0KKworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0KCk7CisgICAgflVzZXJBY3Rpb25FbGVt
ZW50U2V0KCk7CisKKyAgICB2b2lkIGRpZERldGFjaChOb2RlKik7CisgICAgdm9pZCBkb2N1bWVu
dERpZFJlbW92ZUxhc3RSZWYoKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBzZXRGbGFn
cyhOb2RlKiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0
RmxhZ3Mobm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBmbGFncyk7IH0KKyAgICBzdGF0
aWMgdm9pZCBzZXRGbGFncyhOb2RlKiwgdW5zaWduZWQpOworICAgIHN0YXRpYyB2b2lkIGNsZWFy
RmxhZ3MoTm9kZSosIHVuc2lnbmVkKTsKKyAgICBzdGF0aWMgYm9vbCBoYXNGbGFncyhjb25zdCBO
b2RlKiwgdW5zaWduZWQgZmxhZ3MpOworCisgICAgYm9vbCBoYXNGbGFnc0ludGVybmFsKGNvbnN0
IEVsZW1lbnQqLCB1bnNpZ25lZCBmbGFncykgY29uc3Q7CisgICAgdm9pZCBzZXRGbGFnc0ludGVy
bmFsKEVsZW1lbnQqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBjbGVhckZsYWdzSW50ZXJuYWwoRWxl
bWVudCosIHVuc2lnbmVkKTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RWxlbWVudD4s
IHVuc2lnbmVkPiBFbGVtZW50RmxhZ01hcDsKKyAgICBFbGVtZW50RmxhZ01hcCBtX2VsZW1lbnRz
OworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFVzZXJBY3Rpb25FbGVtZW50U2V0
X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177918</attachid>
            <date>2012-12-05 20:51:30 -0800</date>
            <delta_ts>2012-12-06 17:56:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121206134854.patch</filename>
            <type>text/plain</type>
            <size>33759</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVkMjEwNjg0ZDA4Yzc4
ZmVjZTY4MjgxYmQ1YjBjNjNkNDc2YzVjNi4uMzRkMjI0OGJlNzA0YTJmYmY3NjNmMDUwMDY4MmVh
NGIwNzY1NjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTEyLTA1ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJc0FjdGl2ZUZsYWcs
IElzSG92ZXJGbGFnLCBJbkFjdGl2ZUNoYWluRmxhZyBjYW4gYmUgdW5pZmllZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNhdmUgdHdvIG1vcmUg
Tm9kZUZsYWdzIGJpdHMsIHRoaXMgcGF0Y2ggaW5yb2R1Y2VzCisgICAgICAgIFVzZXJBY3Rpb25F
bGVtZW50U2V0IHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbkZsYWcgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFncyBhcmUgcmVwbGFjZWQg
YnkKKyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OkVsZW1lbnRGbGFncyBhbmQgVXNlckFj
dGlvbkVsZW1lbnRTZXQKKyAgICAgICAgY29sbGVjdGlvbiB3aGljaCB0cmFja3MgZWxlbWVudHMg
d2hpY2ggYXJlIGZsYWdnZWQgd2l0aCBvbmUgb2YKKyAgICAgICAgYUVsZW1lbnRGbGFncy4KKwor
ICAgICAgICBXaGVuIG1hcmtpbmcgYW4gZWxlbWVudCBhcyBhY3RpdmUgZm9yIGV4YW1wbGUsIFdl
YktpdCBzZXRzCisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpJc0FjdGl2ZUZsYWcgdG8g
dGhlIGVsZW1lbnQgYW5kIHN0b3JlIGl0CisgICAgICAgIGludG8gY29ycmVzcG9uZGluZyBlbGVt
ZW50IHNldCBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgc2V0IG1haW50YWlucworICAgICAgICBtYXJr
ZWQgZWxlbWVudHMgYW5kIGNvcnJlc3BvbmRpbmcgZmxhZ3MgZm9yIGVhY2ggZWxlbWVudHMuCisK
KyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhl
ciByYXJlIGRhdGEgZm9yIHRoZXNlCisgICAgICAgIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUg
Y2VydGFpbiBkaWZmZXJlbmNlcywgdGhhdCBhcmUgd2h5IHN1Y2ggYQorICAgICAgICBkYXRhIHN0
cnVjdHVyZSBpcyB3b3J0aCBhZGRpbmc6CisKKyAgICAgICAgLSBVc2VyQWN0aW9uRWxlbWVudFNl
dCBpcyBtYWludGFpbmVkIGZvciBlYWNoIERvY3VtZW50IGluc3RlYWQgb2YgYQorICAgICAgICAg
IGdsb2JhbCBjb2xsZWN0b24uIFRoaXMgZml0cyBlbGVtZW50IGxpZmV0aW1lIGJldHRlci4KKwor
ICAgICAgICAtIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2hpY2ggaGF2ZSB0aGVzZSBmbGFncyBp
cyBnZW5lcmFsbHkKKyAgICAgICAgICBzbWFsbCwgYW5kIGEgZ3JvdXAgb2YgZWxlbWVudHMgZm9y
IGVhY2ggZmxhZyBpcyBsYXJnZWx5IG92ZXJsYXBwZWQKKyAgICAgICAgICBkdWUgdG8gaXRzIG5h
dHVyZS4gVGhpcyBwcm9wZXJ0eSBrZWVwcyB0aGUgc2V0IHNtYWxsLCBhbmQgbGV0cworICAgICAg
ICAgIGZsYWcgcmV0cmlldmFsIGVmZmljaWVudC4gT24gbWFqb3JpdHkgb2YgdGhlIGVsZW1lbnRz
LCBhbGwgdGhlc2UKKyAgICAgICAgICBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMg
ZG9uZSBieSBqdXN0IGNoZWNraW5nCisgICAgICAgICAgSXNJblVzZXJBY3Rpb25GbGFnLgorCisg
ICAgICAgIEFzIGEgYm9udXMsIGlzRm9jdXNlZCBmbGFnLCB3aGljaCB3YXMgb24gTm9kZVJhcmVE
YXRhLCBpcyBhbHNvIG1vdmVkIHRvIHRoaXMgbW9kZWwuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RS
ZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnVzZXJBY3Rpb25FbGVtZW50cyk6IEFkZGVkLgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRldGFjaCk6CisgICAg
ICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6aXNVc2VyQWN0aW9uRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0VXNlckFjdGlvbkVsZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6YWN0aXZlKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRT
ZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbkFjdGl2ZUNoYWluKTogU3dpdGNoZWQgdG8g
VXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpob3ZlcmVkKTog
U3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpmb2N1c2VkKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpzZXRGb2N1cyk6IFN3aXRjaGVkIHRvIFVzZXJBY3Rpb25FbGVtZW50U2V0
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0QWN0aXZlKTogU3dpdGNoZWQgdG8gVXNlckFj
dGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRIb3ZlcmVkKTogU3dp
dGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgICogZG9tL05vZGVSYXJlRGF0
YS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpOb2RlUmFyZURhdGEpOgorICAg
ICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFj
dGlvbkVsZW1lbnRTZXQ6Omluc3RhbmNlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rp
b25FbGVtZW50U2V0OjpVc2VyQWN0aW9uRWxlbWVudFNldCk6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyQWN0aW9uRWxlbWVudFNldDo6flVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpkaWREZXRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZik6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKToKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpjbGVhckZsYWdzKToKKyAgICAgICAgKiBkb20vVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVt
ZW50U2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OmlzRm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0
Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNBY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEFjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNJbkFjdGl2ZUNoYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRJbkFjdGl2ZUNo
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0hvdmVyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEhvdmVyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKToKKwogMjAx
Mi0xMi0wNSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
SW5kZXhlZERCOiBBYm9ydCB0cmFuc2FjdGlvbnMgYmVjYXVzZSBvZiBsZXZlbGRiIGVycm9ycyBw
YXJ0IDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWUxMGE5MTY5YWRiYWNkNDk0YmJmMzNiNzU5
YTU5Nzc2MjZlNTA1NS4uMTg1ZGU3MDM4MjY1ZDAzMzRlOGU0YzAzM2FhNTdiYWE0ZDJkZjRjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMzgsNiArMTIzOCw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBkb20vVHJlZVdhbGtlci5jcHAKICAgICBkb20vVUlFdmVudC5jcHAKICAgICBk
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAKKyAgICBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQu
Y3BwCiAgICAgZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAogICAgIGRvbS9Vc2VyVHlwaW5n
R2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkMWM4NjBhZDU5NTNiYmRiNmM1NDUwM2VmZTUw
MmMxZjRlZjAyNDUyLi5mODg4NTIwYzdiNzVmNDViNGY4ODQ5MzFkNTA1NzAyMzdiZjVhODA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI5NzUsNiArMjk3NSw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlv
bkVsZW1lbnRTZXQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
ZDRiNTBjYjliYTgzOTU4NjI3NTE5ODY0Mzc1YjA3YTdkNTAwM2M3MC4uYzVkYjc4MDllYmQ1MzE2
MGZmY2NlN2RkMTA3YTA0YTgxMWVmNDhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00NzIsNiArNDcyLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwIFwKICAgICBkb20vVUlFdmVu
dC5jcHAgXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCBcCisgICAgZG9tL1VzZXJB
Y3Rpb25FbGVtZW50U2V0LmNwcCBcCiAgICAgZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBc
CiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCiAgICAgZG9tL1ZpZXdw
b3J0QXJndW1lbnRzLmNwcCBcCkBAIC0xNjI0LDYgKzE2MjUsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBkb20vUmFuZ2UuaCBcCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggXAogICAg
IGRvbS9SZW5kZXJlZERvY3VtZW50TWFya2VyLmggXAorICAgIGRvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5oIFwKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggXAogICAgIGRv
bS9TY3JpcHRFbGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDAwYmQxNWZkNTcyYjVhYTEwNDEwMzEzNGVjZWE0ODBlMmQzMmYx
NDMuLjMxYTc4YjcxYTljNTkzMTRjMGZjNGIxZGFmMGMzNDM5MjlhYjJhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTM5NzQsNiArMzk3NCw4IEBACiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIu
aCcsCiAgICAgICAgICAgICAnZG9tL1VJRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vVUlF
dmVudFdpdGhLZXlTdGF0ZS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5oJywKKyAgICAgICAgICAgICdkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwJywKICAg
ICAgICAgICAgICdkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwJywKICAgICAgICAgICAgICdk
b20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwJywKICAgICAgICAgICAgICdkb20vVmll
d3BvcnRBcmd1bWVudHMuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4NTVhOGIyZmRkMmIwZTVkMWI4ZmFjMGIyZjAxMDQ2
YzJmNjIzZmFjLi5mNzk5ZTFiNDc2YjRlYmI3ODUxYWEzYjAxYWMyZDhiMGM2MmQxNGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zODgzLDYgKzM4ODMsNyBAQAogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0Fj
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEExNkVD
RSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxl
ck1hYy5tbSAqLzsgfTsKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhw
b3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzI3NjNCRjE2
Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAv
KiBVc2VyQWN0aW9uRWxlbWVudFNldC5oICovOyB9OwogCQlBNzJFQTNCQjE1ODVDRjU1MDA0RkFB
MjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVk
U3VwcGxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTAxLDYg
KzM5MDIsNyBAQAogCQlBNzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFu
c2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1
RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJ
QTc1RThCOEUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07CisJ
CUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY5RTk2OTE2Njg5
RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwICovOyB9OwogCQlBNzZFNUY3
RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5
ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQw
QzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNw
cCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZCOUQw
QzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovOyB9OwpAQCAtMTEyMTMsNiArMTEyMTUsNyBAQAog
CQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8q
IEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRD
MDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBY3Rpb25FbGVtZW50U2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEy
NiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZWZDb3VudGVkU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjI3LDYgKzExMjMwLDcgQEAKIAkJQTc1RThCODUw
RTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb25lbnRUcmFuc2Zlci5oOyBwYXRoID0gZmlsdGVycy9G
RUNvbXBvbmVudFRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4
Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGRUNvbXBvc2l0ZS5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZFQ29t
cG9zaXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RThCODcwRTFERTJE
NjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZFQ29tcG9zaXRlLmg7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjlFOTY5MTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0
aW9uRWxlbWVudFNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
c2VyQWN0aW9uRWxlbWVudFNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTMwRDZCOUQwQzAwMzg1MUI5IC8qIElt
YWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZURh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxNDBENkI5RDBDMDAz
ODUxQjkgLyogSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElt
YWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIyMDAsNiArMjIyMDQs
OCBAQAogCQkJCTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJ
CQk5MzM1NEEzQjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8s
CiAJCQkJODUwMzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAq
LywKKwkJCQlBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQu
Y3BwICovLAorCQkJCUE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVu
dFNldC5oICovLAogCQkJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAgKi8sCiAJCQkJMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmggKi8sCiAJCQkJQkNERjMxNzkxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLywKQEAgLTI1Njc1LDYgKzI1NjgxLDcgQEAKIAkJ
CQlFNEFGQ0ZBNTBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRDA4NkZFOTgwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9u
RWxlbWVudFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxQjIwOUQxNEVFNjAwMEU2MUQ3
IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDNGMUZFQTEx
RTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNBQ0YzQkQxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yODgxMCw2ICsyODgxNyw3IEBACiAJCQkJQjJDM0RBNEMwRDAwNkMxRDAw
RUY2RjI2IC8qIFVuaWNvZGVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMDg2RkU5OTA5
RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RERDEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzI2MTA5RDFFMTk5MDAwQkUzMjUgLyogVXNlckFn
ZW50U3R5bGVTaGVldHNEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQUNGM0JDMTA3Mjky
MUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMWRiNDIyZDQy
MTc5MDRkNWVlOTQ5MWIxNTMwYjExNjVmYjRmNDQzNC4uOTI5NmExOWExY2I5ZTRhNDgwNmYzNDM5
Yjc4MmMyNTc0YjFjYTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xNDQs
NiArMTQ0LDcgQEAKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNwcCIKICNpbmNsdWRlICJVSUV2ZW50
LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCIKKyNpbmNsdWRlICJVc2Vy
QWN0aW9uRWxlbWVudFNldC5jcHAiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuY3Bw
IgogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5ZmQ0MWYx
MDhkYzA2N2M5MTAxYmIyOGQyMjAyZTgyNTE5NzJhOTYzLi4zMzQyNDcyYzRiZDU2YjBmZjlmZjlj
M2RkNzI2MDI2NjIyNzA4YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE1OCw2ICsx
NTgsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgi
CiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0
LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5oIgpA
QCAtNjg5LDYgKzY5MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAg
ICAgbV90aXRsZUVsZW1lbnQgPSAwOwogICAgICAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CiAg
ICAgICAgIG1fY29udGV4dEZlYXR1cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNo
KCk7CisgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJl
ZigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgbV9mdWxsU2NyZWVuRWxl
bWVudCA9IDA7CiAgICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnRTdGFjay5jbGVhcigpOwpAQCAt
NTc1OCw3ICs1NzYwLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgZm9yIChS
ZW5kZXJPYmplY3QqIGN1cnIgPSBvbGRBY3RpdmVOb2RlLT5yZW5kZXJlcigpOyBjdXJyOyBjdXJy
ID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1
cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgY3Vyci0+bm9kZSgpLT5zZXRBY3RpdmUo
ZmFsc2UpOwotICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+Y2xlYXJJbkFjdGl2ZUNoYWlu
KCk7CisgICAgICAgICAgICAgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuc2V0SW5BY3RpdmVDaGFp
bihjdXJyLT5ub2RlKCksIGZhbHNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAg
ICBzZXRBY3RpdmVOb2RlKDApOwpAQCAtNTc2OSw3ICs1NzcxLDcgQEAgdm9pZCBEb2N1bWVudDo6
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0
VGVzdFJlc3UKICAgICAgICAgICAgIC8vIHdpbGwgbmVlZCB0byByZWZlcmVuY2UgdGhpcyBjaGFp
bi4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gbmV3QWN0aXZlTm9kZS0+
cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpCi0gICAgICAgICAgICAgICAg
ICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFpbigpOworICAgICAgICAgICAgICAgICAg
ICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnItPm5vZGUoKSwgdHJ1
ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzZXRBY3RpdmVOb2RlKG5ld0FjdGl2ZU5v
ZGUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDcxM2Q5ZTVjZGRjMGM2Mzg3
ZDc2MjRiMTg1ZmFjYTMwMjMwMDM1ZGUuLjQ1OGNiNDM0YmEyZWEzOTk2NzRhNjljYzBhYWYxMDI0
ZmE5OTJjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02ODAsNiArNjgwLDggQEAgcHVibGlj
OgogCiAgICAgYm9vbCBzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsKICAgICBOb2Rl
KiBmb2N1c2VkTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZE5vZGUuZ2V0KCk7IH0KKyAg
ICBVc2VyQWN0aW9uRWxlbWVudFNldCYgdXNlckFjdGlvbkVsZW1lbnRzKCkgIHsgcmV0dXJuIG1f
dXNlckFjdGlvbkVsZW1lbnRzOyB9CisgICAgY29uc3QgVXNlckFjdGlvbkVsZW1lbnRTZXQmIHVz
ZXJBY3Rpb25FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlckFjdGlvbkVsZW1lbnRzOyB9
CiAKICAgICB2b2lkIGdldEZvY3VzYWJsZU5vZGVzKFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYpOwog
ICAgIApAQCAtMTMyMSw2ICsxMzIzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9o
b3Zlck5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fYWN0aXZlTm9kZTsKICAgICBSZWZQdHI8RWxl
bWVudD4gbV9kb2N1bWVudEVsZW1lbnQ7CisgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQgbV91c2Vy
QWN0aW9uRWxlbWVudHM7CiAKICAgICB1aW50NjRfdCBtX2RvbVRyZWVWZXJzaW9uOwogICAgIHN0
YXRpYyB1aW50NjRfdCBzX2dsb2JhbFRyZWVWZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDU4
NGRiZTlmZTI0ZDVjOTdhYzg5ODU1YTI2OGU1NDkwNDczMDNkYjguLjNhZTFiZjFhNTU5ZDZlMTE3
ODg1OGYyZmQwNmU4ODdjNDUyZjczYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTk5LDYgKzk5LDcg
QEAKICNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgog
I2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuaCIKKyNpbmNsdWRlICJVc2VyQWN0aW9uRWxl
bWVudFNldC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRDb250ZXh0LmgiCkBA
IC05MDQsMTggKzkwNSw2IEBAIHZvaWQgTm9kZTo6bGF6eUF0dGFjaChTaG91bGRTZXRBdHRhY2hl
ZCBzaG91bGRTZXRBdHRhY2hlZCkKICAgICBtYXJrQW5jZXN0b3JzV2l0aENoaWxkTmVlZHNTdHls
ZVJlY2FsYygpOwogfQogCi12b2lkIE5vZGU6OnNldEZvY3VzKGJvb2wgYikKLXsgCi0gICAgaWYg
KGIgfHwgaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEoKS0+c2V0Rm9jdXNl
ZChiKTsKLX0KLQotYm9vbCBOb2RlOjpyYXJlRGF0YUZvY3VzZWQoKSBjb25zdAotewotICAgIEFT
U0VSVChoYXNSYXJlRGF0YSgpKTsKLSAgICByZXR1cm4gcmFyZURhdGEoKS0+aXNGb2N1c2VkKCk7
Ci19Ci0KIGJvb2wgTm9kZTo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS0+dGFiSW5kZXhTZXRFeHBsaWNpdGx5KCk7CkBAIC0x
MjU5LDE0ICsxMjQ4LDE0IEBAIHZvaWQgTm9kZTo6ZGV0YWNoKCkKICAgICBBU1NFUlQoIXJlbmRl
cmVyKCkpOwogCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7Ci0gICAgaWYgKGhvdmVy
ZWQoKSkKLSAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURldGFjaGVkKHRoaXMpOwotICAgIGlmIChp
bkFjdGl2ZUNoYWluKCkpCi0gICAgICAgIGRvYy0+YWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWQodGhp
cyk7Ci0KLSAgICBjbGVhckZsYWcoSXNBY3RpdmVGbGFnKTsKLSAgICBjbGVhckZsYWcoSXNIb3Zl
cmVkRmxhZyk7Ci0gICAgY2xlYXJGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsKKyAgICBpZiAoaXNV
c2VyQWN0aW9uRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkpCisgICAgICAgICAg
ICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlmIChpbkFjdGl2ZUNo
YWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOwor
ICAgICAgICBkb2MtPnVzZXJBY3Rpb25FbGVtZW50cygpLmRpZERldGFjaCh0aGlzKTsKKyAgICB9
CisKICAgICBjbGVhckZsYWcoSXNBdHRhY2hlZEZsYWcpOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggN2E0NzBlZWMwNjliYTYyNzNiMTY1NTYwZDZlNzY5Yzg4NDZiMzBmOC4uMTgy
ODQ0ODYxMTBhOWY1NWE3NTViNDBkYzE3ZGE2MDMyZWI1NjdiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU2lt
dWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5oIgorI2luY2x1ZGUg
IlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KQEAgLTk4LDcgKzk5LDcgQEAgY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogdHlwZWRlZiBp
bnQgRXhjZXB0aW9uQ29kZTsKIAotY29uc3QgaW50IG5vZGVTdHlsZUNoYW5nZVNoaWZ0ID0gMTc7
Citjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAxNTsKIAogLy8gU3ludGhldGljU3R5
bGVDaGFuZ2UgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGVudGlyZSBzdHls
ZSBjaGFuZ2UgbG9naWMgZXZlbiB0aG91Z2gKIC8vIG5vIHN0eWxlIHByb3BlcnR5IGhhcyBhY3R1
YWxseSBjaGFuZ2VkLiBJdCBpcyB1c2VkIHRvIHJlc3RydWN0dXJlIHRoZSB0cmVlIHdoZW4sIGZv
ciBpbnN0YW5jZSwKQEAgLTMzOSwxMCArMzQwLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lE
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0OwogCi0gICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQWN0aXZlRmxhZyk7IH0KLSAgICBib29sIGluQWN0
aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsgfQot
ICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNIb3ZlcmVkRmxhZyk7
IH0KLSAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFy
ZURhdGFGb2N1c2VkKCkgOiBmYWxzZTsgfQorICAgIGJvb2wgaXNVc2VyQWN0aW9uRWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNVc2VyQWN0aW9uRWxlbWVudCk7IH0KKyAgICB2b2lk
IHNldFVzZXJBY3Rpb25FbGVtZW50KGJvb2wgZmxhZykgeyBzZXRGbGFnKGZsYWcsIElzVXNlckFj
dGlvbkVsZW1lbnQpOyB9CisKKyAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGlzVXNl
ckFjdGlvbkVsZW1lbnQoKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6aW5zdGFuY2VGb3IodGhp
cykuaXNBY3RpdmUodGhpcyk7IH0KKyAgICBib29sIGluQWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJl
dHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgVXNlckFjdGlvbkVsZW1lbnRTZXQ6Omluc3Rh
bmNlRm9yKHRoaXMpLmlzSW5BY3RpdmVDaGFpbih0aGlzKTsgfQorICAgIGJvb2wgaG92ZXJlZCgp
IGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVsZW1lbnQoKSAmJiBVc2VyQWN0aW9uRWxlbWVu
dFNldDo6aW5zdGFuY2VGb3IodGhpcykuaXNIb3ZlcmVkKHRoaXMpOyB9CisgICAgYm9vbCBmb2N1
c2VkKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIFVzZXJBY3Rpb25F
bGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5pc0ZvY3VzZWQodGhpcyk7IH0KKwogICAgIGJv
b2wgYXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQXR0YWNoZWRGbGFnKTsgfQog
ICAgIHZvaWQgc2V0QXR0YWNoZWQoKSB7IHNldEZsYWcoSXNBdHRhY2hlZEZsYWcpOyB9CiAgICAg
Ym9vbCBuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QgeyByZXR1cm4gc3R5bGVDaGFuZ2VUeXBlKCkg
IT0gTm9TdHlsZUNoYW5nZTsgfQpAQCAtMzU1LDkgKzM2MCw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgc2V0RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNh
bGNGbGFnKTsgfQogICAgIHZvaWQgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IGNsZWFy
RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQogCi0gICAgdm9pZCBzZXRJbkFjdGl2
ZUNoYWluKCkgeyBzZXRGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsgfQotICAgIHZvaWQgY2xlYXJJ
bkFjdGl2ZUNoYWluKCkgeyBjbGVhckZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0KICAgICB2
b2lkIHNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBGdWxs
U3R5bGVDaGFuZ2UpOwogICAgIHZvaWQgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCkgeyBtX25vZGVG
bGFncyAmPSB+U3R5bGVDaGFuZ2VNYXNrOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlU2V0
TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNo
YW5nZSkgeyBzZXROZWVkc1N0eWxlUmVjYWxjKGNoYW5nZVR5cGUpOyB9CkBAIC0zODUsOSArMzg3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGF6eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNl
dEF0dGFjaGVkKTsKICAgICB2b2lkIGxhenlSZWF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNl
dEF0dGFjaGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sID0gdHJ1ZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGYgPSB0cnVlLCBib29sIC8qcGF1c2UqLyA9
IGZhbHNlKSB7IHNldEZsYWcoZiwgSXNBY3RpdmVGbGFnKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRIb3ZlcmVkKGJvb2wgZiA9IHRydWUpIHsgc2V0RmxhZyhmLCBJc0hvdmVyZWRGbGFnKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGZsYWcgPSB0cnVlKSB7IFVzZXJBY3Rpb25F
bGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5zZXRGb2N1c2VkKHRoaXMsIGZsYWcpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGZsYWcgPSB0cnVlLCBib29sIC8qcGF1c2Uq
LyA9IGZhbHNlKSB7IFVzZXJBY3Rpb25FbGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5zZXRB
Y3RpdmUodGhpcywgZmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGZs
YWcgPSB0cnVlKSB7IHJldHVybiBVc2VyQWN0aW9uRWxlbWVudFNldDo6aW5zdGFuY2VGb3IodGhp
cykuc2V0SG92ZXJlZCh0aGlzLCBmbGFnKTsgfQogCiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRl
eCgpIGNvbnN0OwogCkBAIC03MDcsMzcgKzcwOSwzNSBAQCBwcml2YXRlOgogICAgICAgICBDaGls
ZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAogICAgICAgICBJbkRvY3VtZW50RmxhZyA9
IDEgPDwgOCwKICAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNBY3RpdmVG
bGFnID0gMSA8PCAxMCwKLSAgICAgICAgSXNIb3ZlcmVkRmxhZyA9IDEgPDwgMTEsCi0gICAgICAg
IEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxMiwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0g
MSA8PCAxMywKLSAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTQsCisgICAg
ICAgIElzVXNlckFjdGlvbkVsZW1lbnQgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZs
YWcgPSAxIDw8IDExLAorICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwK
IAogICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVs
bGVkIHVwIGhlcmUgc28gdGhleSBjYW4KICAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1l
IG1lbW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0No
aWxkcmVuRmluaXNoZWRGbGFnID0gMSA8PCAxNSwgLy8gRWxlbWVudAorICAgICAgICBJc1BhcnNp
bmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKICNpZiBFTkFCTEUo
U1ZHKQotICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8IDE2LCAvLyBTVkdFbGVtZW50
CisgICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEgPDwgMTQsIC8vIFNWR0VsZW1lbnQKICNl
bmRpZgogCiAgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hp
ZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpLAogCi0gICAgICAgIFNlbGZPckFu
Y2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE5LAorICAgICAgICBTZWxmT3JBbmNlc3Rvckhh
c0RpckF1dG9GbGFnID0gMSA8PCAxNywKIAotICAgICAgICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0
RmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc05hbWVPcklzRWRpdGluZ1RleHRGbGFnID0gMSA8
PCAxOCwKIAotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcgPSAxIDw8IDIxLAotICAgICAgICBIYXNT
eW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8IDIyLAotICAgICAgICBIYXNDdXN0b21D
YWxsYmFja3NGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRG
bGFnID0gMSA8PCAyNCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjUs
Ci0gICAgICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5vckdDRmxhZyA9IDEgPDwgMjYsCi0gICAg
ICAgIElzSW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAyNywKKyAgICAgICAgSW5OYW1lZEZsb3dG
bGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0g
MSA8PCAyMCwKKyAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjEsCisgICAg
ICAgIEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjIsCisgICAgICAgIEhhc0V2
ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5n
TWlub3JHQ0ZsYWcgPSAxIDw8IDI0LAorICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEg
PDwgMjUsCiAKICAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmlu
aXNoZWRGbGFnCiAgICAgfTsKIAotICAgIC8vIDQgYml0cyByZW1haW5pbmcKKyAgICAvLyA2IGJp
dHMgcmVtYWluaW5nCiAKICAgICBib29sIGdldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsg
cmV0dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5v
ZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2sp
IHwgKC0oaW50MzJfdClmICYgbWFzayk7IH0gCkBAIC04MDksNyArODA5LDYgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpOwogCiAgICAgdmlydHVhbCBQYXNz
T3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURhdGEoKTsKLSAgICBib29sIHJhcmVEYXRh
Rm9jdXNlZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJT
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmlu
ZGV4IDI0ZWYyMzM0YmRkMGMxNWU3Y2UwNDQyMGQ0YzBlMGZkODBmNDc4NTcuLjZkYzQ2YmM0ODdh
ZmE0ZDc3MzQwNDBjYmM2MzI2YjE1NzczOGE2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV90YWJJbmRleCgwKQog
ICAgICAgICAsIG1fY2hpbGRJbmRleCgwKQogICAgICAgICAsIG1fdGFiSW5kZXhXYXNTZXRFeHBs
aWNpdGx5KGZhbHNlKQotICAgICAgICAsIG1faXNGb2N1c2VkKGZhbHNlKQogICAgICAgICAsIG1f
bmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAgICAg
ICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkKICAgICAgICAgLCBtX2lzSW5DYW52YXNT
dWJ0cmVlKGZhbHNlKQpAQCAtMzIxLDkgKzMyMCw2IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYK
IAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KLSAg
ICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2VkID0gZm9jdXNlZDsg
fQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtMzMyLDcgKzMyOCw2IEBAIHByb3RlY3RlZDoKICAg
ICBzaG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKICAg
ICBib29sIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5IDogMTsKLSAgICBib29sIG1faXNGb2N1
c2VkIDogMTsKICAgICBib29sIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJB
dHRhY2ggOiAxOwogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eSA6IDE7CiAgICAgYm9v
bCBtX2lzSW5DYW52YXNTdWJ0cmVlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlv
bkVsZW1lbnRTZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmN2Y0M2U5M2JmNmE2OWFlYWI4ZWU5YWY1ODdl
Y2I0ZjY4NzAyODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFj
dGlvbkVsZW1lbnRTZXQuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworVXNlckFjdGlvbkVsZW1lbnRTZXQmIFVzZXJBY3Rpb25FbGVtZW50U2V0
OjppbnN0YW5jZUZvcihjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChEb2N1bWVudCogZG9j
ID0gbm9kZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvYy0+dXNlckFjdGlvbkVsZW1l
bnRzKCk7CisgICAgLy8gT25seSBEb2N1bWVudFR5cGUgbm9kZSBjYW4gYmUgb3JwaGFuLCBhbmQg
dGhleSBkb24ndCBsZWFrIGJ5IHRoaXMgc2V0CisgICAgLy8gc2luY2UgVXNlckFjdGlvbkVsZW1l
bnRTZXQgbmV2ZXIgc3RvcmVzIERvY3VtZW50VHlwZSBub2Rlcy4KKyAgICBBU1NFUlQobm9kZS0+
bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREUpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoVXNlckFjdGlvbkVsZW1lbnRTZXQsIHNldEZvck9ycGhhbk5vZGVzLCAoKSk7Cisg
ICAgcmV0dXJuIHNldEZvck9ycGhhbk5vZGVzOworfQorCitVc2VyQWN0aW9uRWxlbWVudFNldDo6
VXNlckFjdGlvbkVsZW1lbnRTZXQoKQoreworfQorCitVc2VyQWN0aW9uRWxlbWVudFNldDo6flVz
ZXJBY3Rpb25FbGVtZW50U2V0KCkKK3sKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6
ZGlkRGV0YWNoKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUtPmlzVXNlckFjdGlvbkVs
ZW1lbnQoKSk7CisgICAgY2xlYXJGbGFncyh0b0VsZW1lbnQobm9kZSksIElzQWN0aXZlRmxhZyB8
IEluQWN0aXZlQ2hhaW5GbGFnIHwgSXNIb3ZlcmVkRmxhZyk7Cit9CisKK3ZvaWQgVXNlckFjdGlv
bkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZigpCit7CisgICAgbV9lbGVtZW50
cy5jbGVhcigpOworfQorCitib29sIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFncyhjb25z
dCBOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZS0+
aXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAgcmV0
dXJuIGhhc0ZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxhZ3MpOworfQorCit2b2lkIFVzZXJBY3Rp
b25FbGVtZW50U2V0OjpzZXRGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJldHVy
biBzZXRGbGFncyh0b0VsZW1lbnQobm9kZSksIGZsYWdzKTsKK30KKwordm9pZCBVc2VyQWN0aW9u
RWxlbWVudFNldDo6Y2xlYXJGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJldHVy
biBjbGVhckZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxhZ3MpOworfQorCitpbmxpbmUgYm9vbCBV
c2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5z
aWduZWQgZmxhZ3MpIGNvbnN0Cit7CisgICAgQVNTRVJUKGVsZW1lbnQtPmlzVXNlckFjdGlvbkVs
ZW1lbnQoKSk7CisgICAgRWxlbWVudEZsYWdNYXA6OmNvbnN0X2l0ZXJhdG9yIGZvdW5kID0gbV9l
bGVtZW50cy5maW5kKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBpZiAoZm91
bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBmb3VuZC0+dmFsdWUgJiBmbGFnczsKK30KKworaW5saW5lIHZvaWQgVXNlckFjdGlvbkVsZW1l
bnRTZXQ6OmNsZWFyRmxhZ3MoRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpCit7Cisg
ICAgaWYgKCFlbGVtZW50LT5pc1VzZXJBY3Rpb25FbGVtZW50KCkpIHsKKyAgICAgICAgQVNTRVJU
KG1fZWxlbWVudHMuZW5kKCkgPT0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEVsZW1lbnRGbGFnTWFwOjppdGVyYXRvciBmb3VuZCA9IG1f
ZWxlbWVudHMuZmluZChlbGVtZW50KTsKKyAgICBpZiAoZm91bmQgPT0gbV9lbGVtZW50cy5lbmQo
KSkgeworICAgICAgICBlbGVtZW50LT5zZXRVc2VyQWN0aW9uRWxlbWVudChmYWxzZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1cGRhdGVkID0gZm91bmQtPnZhbHVl
ICYgfmZsYWdzOworICAgIGlmICghdXBkYXRlZCkgeworICAgICAgICBlbGVtZW50LT5zZXRVc2Vy
QWN0aW9uRWxlbWVudChmYWxzZSk7CisgICAgICAgIG1fZWxlbWVudHMucmVtb3ZlKGZvdW5kKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvdW5kLT52YWx1ZSA9IHVwZGF0ZWQ7Cit9
CisKK2lubGluZSB2b2lkIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGbGFncyhFbGVtZW50KiBl
bGVtZW50LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBFbGVtZW50RmxhZ01hcDo6aXRlcmF0b3Ig
cmVzdWx0ID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpOworICAgIGlmIChyZXN1bHQgIT0gbV9l
bGVtZW50cy5lbmQoKSkgeworICAgICAgICBBU1NFUlQoZWxlbWVudC0+aXNVc2VyQWN0aW9uRWxl
bWVudCgpKTsKKyAgICAgICAgcmVzdWx0LT52YWx1ZSB8PSBmbGFnczsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGVsZW1lbnQtPnNldFVzZXJBY3Rpb25FbGVtZW50KHRydWUpOworICAg
IG1fZWxlbWVudHMuYWRkKGVsZW1lbnQsIGZsYWdzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTIyNmM3YTc1NTU1NWY2MWU0
MTVlYjI1NjQwNDU1YzUzMTQxZWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNl
ckFjdGlvbkVsZW1lbnRTZXRfaAorI2RlZmluZSBVc2VyQWN0aW9uRWxlbWVudFNldF9oCisKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7Citj
bGFzcyBFbGVtZW50OworCitjbGFzcyBVc2VyQWN0aW9uRWxlbWVudFNldCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8VXNlckFjdGlvbkVsZW1lbnRTZXQ+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UHRyKG5ldyBVc2VyQWN0aW9uRWxlbWVudFNldCgpKTsgfQorICAgIHN0YXRpYyBV
c2VyQWN0aW9uRWxlbWVudFNldCYgaW5zdGFuY2VGb3IoY29uc3QgTm9kZSopOworCisgICAgYm9v
bCBpc0ZvY3VzZWQoY29uc3QgTm9kZSogbm9kZSkgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwgSXNG
b2N1c2VkRmxhZyk7IH0KKyAgICBib29sIGlzQWN0aXZlKGNvbnN0IE5vZGUqIG5vZGUpIHsgcmV0
dXJuIGhhc0ZsYWdzKG5vZGUsIElzQWN0aXZlRmxhZyk7IH0KKyAgICBib29sIGlzSW5BY3RpdmVD
aGFpbihjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNGbGFncyhub2RlLCBJbkFjdGl2ZUNo
YWluRmxhZyk7IH0KKyAgICBib29sIGlzSG92ZXJlZChjb25zdCBOb2RlKiBub2RlKSB7IHJldHVy
biBoYXNGbGFncyhub2RlLCBJc0hvdmVyZWRGbGFnKTsgfQorICAgIHZvaWQgc2V0Rm9jdXNlZChO
b2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUsIElzRm9jdXNl
ZEZsYWcpOyB9CisgICAgdm9pZCBzZXRBY3RpdmUoTm9kZSogbm9kZSwgYm9vbCBlbmFibGUpIHsg
c2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0FjdGl2ZUZsYWcpOyB9CisgICAgdm9pZCBzZXRJbkFj
dGl2ZUNoYWluKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJs
ZSwgSW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgdm9pZCBzZXRIb3ZlcmVkKE5vZGUqIG5vZGUs
IGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgSXNIb3ZlcmVkRmxhZyk7IH0K
KworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0KCk7CisgICAgflVzZXJBY3Rpb25FbGVtZW50U2V0
KCk7CisKKyAgICB2b2lkIGRpZERldGFjaChOb2RlKik7CisgICAgdm9pZCBkb2N1bWVudERpZFJl
bW92ZUxhc3RSZWYoKTsKKworcHJpdmF0ZToKKyAgICBlbnVtIEVsZW1lbnRGbGFncyB7CisgICAg
ICAgIElzQWN0aXZlRmxhZyAgICAgID0gMSAsCisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnID0g
MSA8PCAxLAorICAgICAgICBJc0hvdmVyZWRGbGFnICAgICA9IDEgPDwgMiwKKyAgICAgICAgSXNG
b2N1c2VkRmxhZyAgICAgPSAxIDw8IDMKKyAgICB9OworCisgICAgdm9pZCBzZXRGbGFncyhOb2Rl
KiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0RmxhZ3Mo
bm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBmbGFncyk7IH0KKyAgICB2b2lkIHNldEZs
YWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBjbGVhckZsYWdzKE5vZGUqLCB1bnNpZ25l
ZCk7CisgICAgYm9vbCBoYXNGbGFncyhjb25zdCBOb2RlKiwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0
OworCisgICAgdm9pZCBzZXRGbGFncyhFbGVtZW50KiwgdW5zaWduZWQpOworICAgIHZvaWQgY2xl
YXJGbGFncyhFbGVtZW50KiwgdW5zaWduZWQpOworICAgIGJvb2wgaGFzRmxhZ3MoY29uc3QgRWxl
bWVudCosIHVuc2lnbmVkIGZsYWdzKSBjb25zdDsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQ
dHI8RWxlbWVudD4sIHVuc2lnbmVkPiBFbGVtZW50RmxhZ01hcDsKKyAgICBFbGVtZW50RmxhZ01h
cCBtX2VsZW1lbnRzOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFVzZXJBY3Rp
b25FbGVtZW50U2V0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178126</attachid>
            <date>2012-12-06 17:56:22 -0800</date>
            <delta_ts>2012-12-09 16:40:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121207105346.patch</filename>
            <type>text/plain</type>
            <size>33783</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uOTNmNThmMDNjYWRhNGFlY2UxYjY5NGE0MmFmNDRm
Y2ViMTUwMDEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTEyLTA2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJc0FjdGl2ZUZsYWcs
IElzSG92ZXJGbGFnLCBJbkFjdGl2ZUNoYWluRmxhZyBjYW4gYmUgdW5pZmllZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNhdmUgdHdvIG1vcmUg
Tm9kZUZsYWdzIGJpdHMsIHRoaXMgcGF0Y2ggaW5yb2R1Y2VzCisgICAgICAgIFVzZXJBY3Rpb25F
bGVtZW50U2V0IHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbkZsYWcgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFncyBhcmUgcmVwbGFjZWQg
YnkKKyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OkVsZW1lbnRGbGFncyBhbmQgVXNlckFj
dGlvbkVsZW1lbnRTZXQKKyAgICAgICAgY29sbGVjdGlvbiB3aGljaCB0cmFja3MgZWxlbWVudHMg
d2hpY2ggYXJlIGZsYWdnZWQgd2l0aCBvbmUgb2YKKyAgICAgICAgYUVsZW1lbnRGbGFncy4KKwor
ICAgICAgICBXaGVuIG1hcmtpbmcgYW4gZWxlbWVudCBhcyBhY3RpdmUgZm9yIGV4YW1wbGUsIFdl
YktpdCBzZXRzCisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpJc0FjdGl2ZUZsYWcgdG8g
dGhlIGVsZW1lbnQgYW5kIHN0b3JlIGl0CisgICAgICAgIGludG8gY29ycmVzcG9uZGluZyBlbGVt
ZW50IHNldCBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgc2V0IG1haW50YWlucworICAgICAgICBtYXJr
ZWQgZWxlbWVudHMgYW5kIGNvcnJlc3BvbmRpbmcgZmxhZ3MgZm9yIGVhY2ggZWxlbWVudHMuCisK
KyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQgY2FuIGJlIHNlZW4gYXMgYSB5ZXQgYW5vdGhl
ciByYXJlIGRhdGEgZm9yIHRoZXNlCisgICAgICAgIGZsYWdzLiBIb3dldmVyLCB0aGVyZSBhcmUg
Y2VydGFpbiBkaWZmZXJlbmNlcywgdGhhdCBhcmUgd2h5IHN1Y2ggYQorICAgICAgICBkYXRhIHN0
cnVjdHVyZSBpcyB3b3J0aCBhZGRpbmc6CisKKyAgICAgICAgLSBVc2VyQWN0aW9uRWxlbWVudFNl
dCBpcyBtYWludGFpbmVkIGZvciBlYWNoIERvY3VtZW50IGluc3RlYWQgb2YgYQorICAgICAgICAg
IGdsb2JhbCBjb2xsZWN0b24uIFRoaXMgZml0cyBlbGVtZW50IGxpZmV0aW1lIGJldHRlci4KKwor
ICAgICAgICAtIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2hpY2ggaGF2ZSB0aGVzZSBmbGFncyBp
cyBnZW5lcmFsbHkKKyAgICAgICAgICBzbWFsbCwgYW5kIGEgZ3JvdXAgb2YgZWxlbWVudHMgZm9y
IGVhY2ggZmxhZyBpcyBsYXJnZWx5IG92ZXJsYXBwZWQKKyAgICAgICAgICBkdWUgdG8gaXRzIG5h
dHVyZS4gVGhpcyBwcm9wZXJ0eSBrZWVwcyB0aGUgc2V0IHNtYWxsLCBhbmQgbGV0cworICAgICAg
ICAgIGZsYWcgcmV0cmlldmFsIGVmZmljaWVudC4gT24gbWFqb3JpdHkgb2YgdGhlIGVsZW1lbnRz
LCBhbGwgdGhlc2UKKyAgICAgICAgICBmbGFncyBhcmUgZmFsc2UgdGh1cyB0aGUgY2hlY2sgaXMg
ZG9uZSBieSBqdXN0IGNoZWNraW5nCisgICAgICAgICAgSXNJblVzZXJBY3Rpb25GbGFnLgorCisg
ICAgICAgIEFzIGEgYm9udXMsIGlzRm9jdXNlZCBmbGFnLCB3aGljaCB3YXMgb24gTm9kZVJhcmVE
YXRhLCBpcyBhbHNvIG1vdmVkIHRvIHRoaXMgbW9kZWwuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RS
ZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnVzZXJBY3Rpb25FbGVtZW50cyk6IEFkZGVkLgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRldGFjaCk6CisgICAg
ICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6aXNVc2VyQWN0aW9uRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0VXNlckFjdGlvbkVsZW1lbnQpOiBBZGRlZC4KKyAgICAgICAgKE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6YWN0aXZlKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRT
ZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbkFjdGl2ZUNoYWluKTogU3dpdGNoZWQgdG8g
VXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpob3ZlcmVkKTog
U3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpmb2N1c2VkKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpzZXRGb2N1cyk6IFN3aXRjaGVkIHRvIFVzZXJBY3Rpb25FbGVtZW50U2V0
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0QWN0aXZlKTogU3dpdGNoZWQgdG8gVXNlckFj
dGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRIb3ZlcmVkKTogU3dp
dGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgICogZG9tL05vZGVSYXJlRGF0
YS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpOb2RlUmFyZURhdGEpOgorICAg
ICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFj
dGlvbkVsZW1lbnRTZXQ6Omluc3RhbmNlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rp
b25FbGVtZW50U2V0OjpVc2VyQWN0aW9uRWxlbWVudFNldCk6CisgICAgICAgIChXZWJDb3JlOjpV
c2VyQWN0aW9uRWxlbWVudFNldDo6flVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpkaWREZXRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZik6CisgICAg
ICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKToKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpjbGVhckZsYWdzKToKKyAgICAgICAgKiBkb20vVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVt
ZW50U2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OmlzRm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0
Rm9jdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNBY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEFjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNJbkFjdGl2ZUNoYWlu
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRJbkFjdGl2ZUNo
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0hvdmVyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEhvdmVyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEZsYWdzKToKKwogMjAx
Mi0xMi0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgRWxlbWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGEyMDI5ZmZmM2Q1OWQ2NzlkMmQ5YWRhNzRmNmE1MWQyZTNmNjAxOGQuLmE0
NjUwODFlYjhkYTZlMmQ0NGFlYjUwZTIxMzhmZDZjYjAzNzk1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMjM3LDYgKzEyMzcsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1Ry
ZWVXYWxrZXIuY3BwCiAgICAgZG9tL1VJRXZlbnQuY3BwCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuY3BwCisgICAgZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmNwcAogICAgIGRvbS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5jcHAKICAgICBkb20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3Iu
Y3BwCiAgICAgZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggMjBmNWFjYjU5YzI3YjBhNDdmMjgyNjdhOTNjZTc2NzI5MTc4N2JlYS4uZDg5
ZTE1MzI0NTUwZDkyMzU4ODQxYWU2YTRlMDNmNjMwZTk5MmQ5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0yOTcxLDYgKzI5NzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9VSUV2
ZW50V2l0aEtleVN0YXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmggXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVXNlclR5cGlu
Z0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDljYjA4NjYyZTYxNDViOWU2
Yjg1MTZjMzdmYjgxZmFkMzdiYjZjNjYuLmFjNThjZjUwODY4OWNjOGUzZDY0OTYzOGRkZmRhMWFk
Yjg2OWEwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDczLDYgKzQ3Myw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9UcmVlV2Fsa2VyLmNwcCBcCiAgICAgZG9tL1VJRXZlbnQuY3BwIFwKICAgICBkb20v
VUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgXAorICAgIGRvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5j
cHAgXAogICAgIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAgXAogICAgIGRvbS9Vc2VyVHlw
aW5nR2VzdHVyZUluZGljYXRvci5jcHAgXAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAg
XApAQCAtMTYyNSw2ICsxNjI2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1JhbmdlLmggXAog
ICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIFwKICAgICBkb20vUmVuZGVyZWREb2N1
bWVudE1hcmtlci5oIFwKKyAgICBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBcCiAgICAgZG9t
L1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIFwKICAgICBkb20vU2NyaXB0RWxlbWVudC5o
IFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBhNTVkNTRmMTU4NWUzYjFkYjMzYzViZTY0NzEzZTk0YzkxN2VlYzc3Li5iZDJjZWJmMTA0YzUy
ZjM3MTExMzdlMWU3ZTJmZTFmY2MxNGU0YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yOTIyLDYg
KzI5MjIsOCBAQAogICAgICAgICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAg
J2RvbS9VSUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUu
Y3BwJywKKyAgICAgICAgICAgICdkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaCcsCisgICAgICAg
ICAgICAnZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1Vz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1VzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYzE3OGU2YWRiYTNmMTI1ZWUyNTNkMTk0NDJmMWM5YWMyNDRlMWViYi4uMmFiMzk1
NzhkZmVmZWM2NzhhMTBkMTJkMmE4YTBmOGIyMDU1OTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzg4Myw2ICszODgzLDcg
QEAKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBB
MTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJ
CUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyM0Y3N0ExNDg0Q0E0
QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTcyNzYzQkYxNjY4OUJGQjAwMkZDQUNCIC8q
IFVzZXJBY3Rpb25FbGVtZW50U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzI3NjNCRTE2Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1l
bnRTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzJFQTNCQjE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkVBM0JBMTU4NUNG
NTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9
OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMx
QUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0zOTAxLDYgKzM5MDIsNyBAQAogCQlBNzVFOEI4RDBFMURFMkQ2MDA3
RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJQTc1RThCOEUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29t
cG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87IH07CiAJCUE3
NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9zaXRlLmggKi87IH07CisJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAvKiBVc2Vy
QWN0aW9uRWxlbWVudFNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRT
ZXQuY3BwICovOyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1
bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAq
LzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxMzBENkI5RDBD
MDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1
MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovOyB9OwpA
QCAtMTEyMTQsNiArMTEyMTYsNyBAQAogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJh
Z0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcx
QTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNC
IC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVzZXJBY3Rpb25FbGVtZW50U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZDb3VudGVkU3VwcGxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91
bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRl
ZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjI4LDYg
KzExMjMxLDcgQEAKIAkJQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJh
bnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb25lbnRUcmFu
c2Zlci5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUNvbXBvc2l0ZS5j
cHA7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9zaXRlLmg7IHBhdGggPSBmaWx0ZXJz
L0ZFQ29tcG9zaXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NjlFOTY5MTY2
ODlEMEMwMDVENDUyOSAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5
MTMwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjIyMDAsNiArMjIyMDQsOCBAQAogCQkJCTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQx
MyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJCQk5MzM1NEEzQjBCMjRGOEM5MDAzRjZERUEgLyogVUlF
dmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8sCiAJCQkJODUwMzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8q
IFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAqLywKKwkJCQlBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1Mjkg
LyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwICovLAorCQkJCUE3Mjc2M0JFMTY2ODlCRkIwMDJG
Q0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oICovLAogCQkJCTI1NDJGNEQ4MTE2NkMyNUEw
MEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi8sCiAJCQkJMjU0MkY0RDkxMTY2
QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi8sCiAJCQkJQkNERjMxNzkx
MUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLywKQEAg
LTI1NjczLDYgKzI1Njc5LDcgQEAKIAkJCQlFNEFGQ0ZBNTBEQUYyOUEzMDBGNUY1NUMgLyogVW5p
dEJlemllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA4NkZFOTgwOUQ1M0FBQjAwNUJDNzREIC8q
IFVubGlua0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzRERFMTI1MUYxMkQwMDNF
RjI2OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3Mjc2M0JGMTY2ODlC
RkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2NTgxQjIwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwMDNGMUZFQTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQ0YzQkQxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJD
b250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODgwOSw2ICsyODgxNiw3IEBA
CiAJCQkJQjJDM0RBNEMwRDAwNkMxRDAwRUY2RjI2IC8qIFVuaWNvZGVSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlEMDg2RkU5OTA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RERDEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3NjlFOTZBMTY2ODlEMEMwMDVENDUyOSAv
KiBVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzI2MTA5
RDFFMTk5MDAwQkUzMjUgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQUNGM0JDMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKaW5kZXggMWRiNDIyZDQyMTc5MDRkNWVlOTQ5MWIxNTMwYjExNjVmYjRmNDQzNC4u
OTI5NmExOWExY2I5ZTRhNDgwNmYzNDM5Yjc4MmMyNTc0YjFjYTU2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCkBAIC0xNDQsNiArMTQ0LDcgQEAKICNpbmNsdWRlICJUcmVlV2Fsa2Vy
LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0
YXRlLmNwcCIKKyNpbmNsdWRlICJVc2VyQWN0aW9uRWxlbWVudFNldC5jcHAiCiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5k
aWNhdG9yLmNwcCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5ZmQ0MWYxMDhkYzA2N2M5MTAxYmIyOGQyMjAyZTgyNTE5NzJhOTYz
Li4zMzQyNDcyYzRiZDU2YjBmZjlmZjljM2RkNzI2MDI2NjIyNzA4YmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTE1OCw2ICsxNTgsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgorI2luY2x1
ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIldlYktpdE5hbWVkRmxvdy5oIgpAQCAtNjg5LDYgKzY5MCw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAgbV90aXRsZUVsZW1lbnQgPSAwOwogICAgICAgICBt
X2RvY3VtZW50RWxlbWVudCA9IDA7CiAgICAgICAgIG1fY29udGV4dEZlYXR1cmVzID0gQ29udGV4
dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCk7CisgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRz
LmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVudCA9IDA7CiAgICAgICAgIG1fZnVsbFNjcmVlbkVs
ZW1lbnRTdGFjay5jbGVhcigpOwpAQCAtNTc1OCw3ICs1NzYwLDcgQEAgdm9pZCBEb2N1bWVudDo6
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0
VGVzdFJlc3UKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBvbGRBY3RpdmVOb2Rl
LT5yZW5kZXJlcigpOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgICAg
IGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAg
Y3Vyci0+bm9kZSgpLT5zZXRBY3RpdmUoZmFsc2UpOwotICAgICAgICAgICAgICAgIGN1cnItPm5v
ZGUoKS0+Y2xlYXJJbkFjdGl2ZUNoYWluKCk7CisgICAgICAgICAgICAgICAgbV91c2VyQWN0aW9u
RWxlbWVudHMuc2V0SW5BY3RpdmVDaGFpbihjdXJyLT5ub2RlKCksIGZhbHNlKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICBzZXRBY3RpdmVOb2RlKDApOwpAQCAtNTc2OSw3ICs1
NzcxLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgICAgIC8vIHdpbGwgbmVl
ZCB0byByZWZlcmVuY2UgdGhpcyBjaGFpbi4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBjdXJyID0gbmV3QWN0aXZlTm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBh
cmVudCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNU
ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFp
bigpOworICAgICAgICAgICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2
ZUNoYWluKGN1cnItPm5vZGUoKSwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBz
ZXRBY3RpdmVOb2RlKG5ld0FjdGl2ZU5vZGUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDcxM2Q5ZTVjZGRjMGM2Mzg3ZDc2MjRiMTg1ZmFjYTMwMjMwMDM1ZGUuLjQ1OGNiNDM0
YmEyZWEzOTk2NzRhNjljYzBhYWYxMDI0ZmE5OTJjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC02ODAsNiArNjgwLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzZXRGb2N1c2VkTm9kZShQYXNz
UmVmUHRyPE5vZGU+KTsKICAgICBOb2RlKiBmb2N1c2VkTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9jdXNlZE5vZGUuZ2V0KCk7IH0KKyAgICBVc2VyQWN0aW9uRWxlbWVudFNldCYgdXNlckFjdGlv
bkVsZW1lbnRzKCkgIHsgcmV0dXJuIG1fdXNlckFjdGlvbkVsZW1lbnRzOyB9CisgICAgY29uc3Qg
VXNlckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlckFjdGlvbkVsZW1lbnRzOyB9CiAKICAgICB2b2lkIGdldEZvY3VzYWJsZU5vZGVzKFZl
Y3RvcjxSZWZQdHI8Tm9kZT4gPiYpOwogICAgIApAQCAtMTMyMSw2ICsxMzIzLDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9ob3Zlck5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1fYWN0
aXZlTm9kZTsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9kb2N1bWVudEVsZW1lbnQ7CisgICAgVXNl
ckFjdGlvbkVsZW1lbnRTZXQgbV91c2VyQWN0aW9uRWxlbWVudHM7CiAKICAgICB1aW50NjRfdCBt
X2RvbVRyZWVWZXJzaW9uOwogICAgIHN0YXRpYyB1aW50NjRfdCBzX2dsb2JhbFRyZWVWZXJzaW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDU4NGRiZTlmZTI0ZDVjOTdhYzg5ODU1YTI2OGU1NDkwNDcz
MDNkYjguLjNhZTFiZjFhNTU5ZDZlMTE3ODg1OGYyZmQwNmU4ODdjNDUyZjczYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgi
CiAjaW5jbHVkZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuaCIK
KyNpbmNsdWRlICJVc2VyQWN0aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRDb250ZXh0LmgiCkBAIC05MDQsMTggKzkwNSw2IEBAIHZvaWQgTm9kZTo6bGF6
eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCBzaG91bGRTZXRBdHRhY2hlZCkKICAgICBtYXJrQW5j
ZXN0b3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi12b2lkIE5vZGU6OnNldEZv
Y3VzKGJvb2wgYikKLXsgCi0gICAgaWYgKGIgfHwgaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZW5z
dXJlUmFyZURhdGEoKS0+c2V0Rm9jdXNlZChiKTsKLX0KLQotYm9vbCBOb2RlOjpyYXJlRGF0YUZv
Y3VzZWQoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKLSAgICByZXR1cm4g
cmFyZURhdGEoKS0+aXNGb2N1c2VkKCk7Ci19Ci0KIGJvb2wgTm9kZTo6c3VwcG9ydHNGb2N1cygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS0+dGFiSW5k
ZXhTZXRFeHBsaWNpdGx5KCk7CkBAIC0xMjU5LDE0ICsxMjQ4LDE0IEBAIHZvaWQgTm9kZTo6ZGV0
YWNoKCkKICAgICBBU1NFUlQoIXJlbmRlcmVyKCkpOwogCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRv
Y3VtZW50KCk7Ci0gICAgaWYgKGhvdmVyZWQoKSkKLSAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURl
dGFjaGVkKHRoaXMpOwotICAgIGlmIChpbkFjdGl2ZUNoYWluKCkpCi0gICAgICAgIGRvYy0+YWN0
aXZlQ2hhaW5Ob2RlRGV0YWNoZWQodGhpcyk7Ci0KLSAgICBjbGVhckZsYWcoSXNBY3RpdmVGbGFn
KTsKLSAgICBjbGVhckZsYWcoSXNIb3ZlcmVkRmxhZyk7Ci0gICAgY2xlYXJGbGFnKEluQWN0aXZl
Q2hhaW5GbGFnKTsKKyAgICBpZiAoaXNVc2VyQWN0aW9uRWxlbWVudCgpKSB7CisgICAgICAgIGlm
IChob3ZlcmVkKCkpCisgICAgICAgICAgICBkb2MtPmhvdmVyZWROb2RlRGV0YWNoZWQodGhpcyk7
CisgICAgICAgIGlmIChpbkFjdGl2ZUNoYWluKCkpCisgICAgICAgICAgICBkb2MtPmFjdGl2ZUNo
YWluTm9kZURldGFjaGVkKHRoaXMpOworICAgICAgICBkb2MtPnVzZXJBY3Rpb25FbGVtZW50cygp
LmRpZERldGFjaCh0aGlzKTsKKyAgICB9CisKICAgICBjbGVhckZsYWcoSXNBdHRhY2hlZEZsYWcp
OwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggN2E0NzBlZWMwNjliYTYyNzNiMTY1
NTYwZDZlNzY5Yzg4NDZiMzBmOC4uMTgyODQ0ODYxMTBhOWY1NWE3NTViNDBkYzE3ZGE2MDMyZWI1
NjdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAi
VHJlZVNoYXJlZC5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTk4LDcgKzk5LDcgQEAgY2xhc3MgUHJvcGVy
dHlOb2RlTGlzdDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotY29uc3QgaW50IG5v
ZGVTdHlsZUNoYW5nZVNoaWZ0ID0gMTc7Citjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQg
PSAxNTsKIAogLy8gU3ludGhldGljU3R5bGVDaGFuZ2UgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGdv
IHRocm91Z2ggdGhlIGVudGlyZSBzdHlsZSBjaGFuZ2UgbG9naWMgZXZlbiB0aG91Z2gKIC8vIG5v
IHN0eWxlIHByb3BlcnR5IGhhcyBhY3R1YWxseSBjaGFuZ2VkLiBJdCBpcyB1c2VkIHRvIHJlc3Ry
dWN0dXJlIHRoZSB0cmVlIHdoZW4sIGZvciBpbnN0YW5jZSwKQEAgLTMzOSwxMCArMzQwLDE0IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0lEKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGFzcygpIGNv
bnN0OwogCi0gICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzQWN0aXZl
RmxhZyk7IH0KLSAgICBib29sIGluQWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFn
KEluQWN0aXZlQ2hhaW5GbGFnKTsgfQotICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJu
IGdldEZsYWcoSXNIb3ZlcmVkRmxhZyk7IH0KLSAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJl
dHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGFGb2N1c2VkKCkgOiBmYWxzZTsgfQorICAgIGJv
b2wgaXNVc2VyQWN0aW9uRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNVc2VyQWN0
aW9uRWxlbWVudCk7IH0KKyAgICB2b2lkIHNldFVzZXJBY3Rpb25FbGVtZW50KGJvb2wgZmxhZykg
eyBzZXRGbGFnKGZsYWcsIElzVXNlckFjdGlvbkVsZW1lbnQpOyB9CisKKyAgICBib29sIGFjdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVsZW1lbnQoKSAmJiBVc2VyQWN0aW9uRWxl
bWVudFNldDo6aW5zdGFuY2VGb3IodGhpcykuaXNBY3RpdmUodGhpcyk7IH0KKyAgICBib29sIGlu
QWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgVXNl
ckFjdGlvbkVsZW1lbnRTZXQ6Omluc3RhbmNlRm9yKHRoaXMpLmlzSW5BY3RpdmVDaGFpbih0aGlz
KTsgfQorICAgIGJvb2wgaG92ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVsZW1l
bnQoKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6aW5zdGFuY2VGb3IodGhpcykuaXNIb3ZlcmVk
KHRoaXMpOyB9CisgICAgYm9vbCBmb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9u
RWxlbWVudCgpICYmIFVzZXJBY3Rpb25FbGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5pc0Zv
Y3VzZWQodGhpcyk7IH0KKwogICAgIGJvb2wgYXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBnZXRG
bGFnKElzQXR0YWNoZWRGbGFnKTsgfQogICAgIHZvaWQgc2V0QXR0YWNoZWQoKSB7IHNldEZsYWco
SXNBdHRhY2hlZEZsYWcpOyB9CiAgICAgYm9vbCBuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3QgeyBy
ZXR1cm4gc3R5bGVDaGFuZ2VUeXBlKCkgIT0gTm9TdHlsZUNoYW5nZTsgfQpAQCAtMzU1LDkgKzM2
MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgc2V0
RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQogICAgIHZvaWQgY2xlYXJDaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKSB7IGNsZWFyRmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsg
fQogCi0gICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWluKCkgeyBzZXRGbGFnKEluQWN0aXZlQ2hhaW5G
bGFnKTsgfQotICAgIHZvaWQgY2xlYXJJbkFjdGl2ZUNoYWluKCkgeyBjbGVhckZsYWcoSW5BY3Rp
dmVDaGFpbkZsYWcpOyB9Ci0KICAgICB2b2lkIHNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFu
Z2VUeXBlIGNoYW5nZVR5cGUgPSBGdWxsU3R5bGVDaGFuZ2UpOwogICAgIHZvaWQgY2xlYXJOZWVk
c1N0eWxlUmVjYWxjKCkgeyBtX25vZGVGbGFncyAmPSB+U3R5bGVDaGFuZ2VNYXNrOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlU2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUg
Y2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSkgeyBzZXROZWVkc1N0eWxlUmVjYWxjKGNoYW5n
ZVR5cGUpOyB9CkBAIC0zODUsOSArMzg3LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGF6eUF0dGFj
aChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKICAgICB2b2lkIGxhenlSZWF0dGFj
aChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRGb2N1cyhib29sID0gdHJ1ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGYg
PSB0cnVlLCBib29sIC8qcGF1c2UqLyA9IGZhbHNlKSB7IHNldEZsYWcoZiwgSXNBY3RpdmVGbGFn
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJvb2wgZiA9IHRydWUpIHsgc2V0Rmxh
ZyhmLCBJc0hvdmVyZWRGbGFnKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGZs
YWcgPSB0cnVlKSB7IFVzZXJBY3Rpb25FbGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5zZXRG
b2N1c2VkKHRoaXMsIGZsYWcpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGZs
YWcgPSB0cnVlLCBib29sIC8qcGF1c2UqLyA9IGZhbHNlKSB7IFVzZXJBY3Rpb25FbGVtZW50U2V0
OjppbnN0YW5jZUZvcih0aGlzKS5zZXRBY3RpdmUodGhpcywgZmxhZyk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0SG92ZXJlZChib29sIGZsYWcgPSB0cnVlKSB7IHJldHVybiBVc2VyQWN0aW9uRWxl
bWVudFNldDo6aW5zdGFuY2VGb3IodGhpcykuc2V0SG92ZXJlZCh0aGlzLCBmbGFnKTsgfQogCiAg
ICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCkBAIC03MDcsMzcgKzcwOSwzNSBA
QCBwcml2YXRlOgogICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAog
ICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKICAgICAgICAgSXNMaW5rRmxhZyA9IDEg
PDwgOSwKLSAgICAgICAgSXNBY3RpdmVGbGFnID0gMSA8PCAxMCwKLSAgICAgICAgSXNIb3ZlcmVk
RmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxMiwKLSAg
ICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMywKLSAgICAgICAgSXNEb2N1bWVudEZyYWdt
ZW50RmxhZyA9IDEgPDwgMTQsCisgICAgICAgIElzVXNlckFjdGlvbkVsZW1lbnQgPSAxIDw8IDEw
LAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAorICAgICAgICBJc0RvY3VtZW50
RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKIAogICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2Vk
IGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28gdGhleSBjYW4KICAgICAgICAg
Ly8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJv
dmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnID0gMSA8PCAxNSwgLy8g
RWxlbWVudAorICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMs
IC8vIEVsZW1lbnQKICNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcg
PSAxIDw8IDE2LCAvLyBTVkdFbGVtZW50CisgICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEg
PDwgMTQsIC8vIFNWR0VsZW1lbnQKICNlbmRpZgogCiAgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9
IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCAr
IDEpLAogCi0gICAgICAgIFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDE5LAor
ICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAxNywKIAotICAgICAg
ICBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0RmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc05hbWVP
cklzRWRpdGluZ1RleHRGbGFnID0gMSA8PCAxOCwKIAotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcg
PSAxIDw8IDIxLAotICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8
IDIyLAotICAgICAgICBIYXNDdXN0b21DYWxsYmFja3NGbGFnID0gMSA8PCAyMywKLSAgICAgICAg
SGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRGbGFnID0gMSA8PCAyNCwKLSAgICAgICAgSGFzRXZlbnRU
YXJnZXREYXRhRmxhZyA9IDEgPDwgMjUsCi0gICAgICAgIFY4Q29sbGVjdGFibGVEdXJpbmdNaW5v
ckdDRmxhZyA9IDEgPDwgMjYsCi0gICAgICAgIElzSW5zZXJ0aW9uUG9pbnRGbGFnID0gMSA8PCAy
NywKKyAgICAgICAgSW5OYW1lZEZsb3dGbGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzU3ludGhl
dGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAyMCwKKyAgICAgICAgSGFzQ3VzdG9tQ2FsbGJh
Y2tzRmxhZyA9IDEgPDwgMjEsCisgICAgICAgIEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9
IDEgPDwgMjIsCisgICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIzLAorICAg
ICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlub3JHQ0ZsYWcgPSAxIDw8IDI0LAorICAgICAgICBJ
c0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwgMjUsCiAKICAgICAgICAgRGVmYXVsdE5vZGVGbGFn
cyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCiAgICAgfTsKIAotICAgIC8vIDQgYml0
cyByZW1haW5pbmcKKyAgICAvLyA2IGJpdHMgcmVtYWluaW5nCiAKICAgICBib29sIGdldEZsYWco
Tm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQogICAg
IHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdz
ID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYgbWFzayk7IH0gCkBAIC04
MDksNyArODA5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpOwogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURh
dGEoKTsKLSAgICBib29sIHJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBS
ZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IDI0ZWYyMzM0YmRkMGMxNWU3Y2UwNDQyMGQ0YzBl
MGZkODBmNDc4NTcuLjZkYzQ2YmM0ODdhZmE0ZDc3MzQwNDBjYmM2MzI2YjE1NzczOGE2OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBwdWJsaWM6CiAg
ICAgICAgICwgbV90YWJJbmRleCgwKQogICAgICAgICAsIG1fY2hpbGRJbmRleCgwKQogICAgICAg
ICAsIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5KGZhbHNlKQotICAgICAgICAsIG1faXNGb2N1
c2VkKGZhbHNlKQogICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0
ZXJBdHRhY2goZmFsc2UpCiAgICAgICAgICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkK
ICAgICAgICAgLCBtX2lzSW5DYW52YXNTdWJ0cmVlKGZhbHNlKQpAQCAtMzIxLDkgKzMyMCw2IEBA
IHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KLSAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7
IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtMzMyLDcg
KzMyOCw2IEBAIHByb3RlY3RlZDoKICAgICBzaG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVk
IHNob3J0IG1fY2hpbGRJbmRleDsKICAgICBib29sIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5
IDogMTsKLSAgICBib29sIG1faXNGb2N1c2VkIDogMTsKICAgICBib29sIG1fbmVlZHNGb2N1c0Fw
cGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2ggOiAxOwogICAgIGJvb2wgbV9zdHlsZUFmZmVj
dGVkQnlFbXB0eSA6IDE7CiAgICAgYm9vbCBtX2lzSW5DYW52YXNTdWJ0cmVlIDogMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmN2Y0
M2U5M2JmNmE2OWFlYWI4ZWU5YWY1ODdlY2I0ZjY4NzAyODIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwCkBAIC0wLDAgKzEsMTMx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVXNlckFjdGlvbkVsZW1lbnRT
ZXQmIFVzZXJBY3Rpb25FbGVtZW50U2V0OjppbnN0YW5jZUZvcihjb25zdCBOb2RlKiBub2RlKQor
eworICAgIGlmIChEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIGRvYy0+dXNlckFjdGlvbkVsZW1lbnRzKCk7CisgICAgLy8gT25seSBEb2N1bWVudFR5cGUg
bm9kZSBjYW4gYmUgb3JwaGFuLCBhbmQgdGhleSBkb24ndCBsZWFrIGJ5IHRoaXMgc2V0CisgICAg
Ly8gc2luY2UgVXNlckFjdGlvbkVsZW1lbnRTZXQgbmV2ZXIgc3RvcmVzIERvY3VtZW50VHlwZSBu
b2Rlcy4KKyAgICBBU1NFUlQobm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9UWVBF
X05PREUpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVXNlckFjdGlvbkVsZW1lbnRTZXQsIHNl
dEZvck9ycGhhbk5vZGVzLCAoKSk7CisgICAgcmV0dXJuIHNldEZvck9ycGhhbk5vZGVzOworfQor
CitVc2VyQWN0aW9uRWxlbWVudFNldDo6VXNlckFjdGlvbkVsZW1lbnRTZXQoKQoreworfQorCitV
c2VyQWN0aW9uRWxlbWVudFNldDo6flVzZXJBY3Rpb25FbGVtZW50U2V0KCkKK3sKK30KKwordm9p
ZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6ZGlkRGV0YWNoKE5vZGUqIG5vZGUpCit7CisgICAgQVNT
RVJUKG5vZGUtPmlzVXNlckFjdGlvbkVsZW1lbnQoKSk7CisgICAgY2xlYXJGbGFncyh0b0VsZW1l
bnQobm9kZSksIElzQWN0aXZlRmxhZyB8IEluQWN0aXZlQ2hhaW5GbGFnIHwgSXNIb3ZlcmVkRmxh
Zyk7Cit9CisKK3ZvaWQgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFz
dFJlZigpCit7CisgICAgbV9lbGVtZW50cy5jbGVhcigpOworfQorCitib29sIFVzZXJBY3Rpb25F
bGVtZW50U2V0OjpoYXNGbGFncyhjb25zdCBOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykgY29u
c3QKK3sKKyAgICBBU1NFUlQobm9kZS0+aXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSk7CisgICAgcmV0dXJuIGhhc0ZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxh
Z3MpOworfQorCit2b2lkIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGbGFncyhOb2RlKiBub2Rl
LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIHJldHVybiBzZXRGbGFncyh0b0VsZW1lbnQobm9kZSksIGZsYWdz
KTsKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFncyhOb2RlKiBub2Rl
LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIHJldHVybiBjbGVhckZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxh
Z3MpOworfQorCitpbmxpbmUgYm9vbCBVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MoY29u
c3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGVsZW1lbnQtPmlzVXNlckFjdGlvbkVsZW1lbnQoKSk7CisgICAgRWxlbWVudEZsYWdNYXA6OmNv
bnN0X2l0ZXJhdG9yIGZvdW5kID0gbV9lbGVtZW50cy5maW5kKGNvbnN0X2Nhc3Q8RWxlbWVudCo+
KGVsZW1lbnQpKTsKKyAgICBpZiAoZm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmb3VuZC0+dmFsdWUgJiBmbGFnczsKK30KKworaW5s
aW5lIHZvaWQgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MoRWxlbWVudCogZWxlbWVu
dCwgdW5zaWduZWQgZmxhZ3MpCit7CisgICAgaWYgKCFlbGVtZW50LT5pc1VzZXJBY3Rpb25FbGVt
ZW50KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudHMuZW5kKCkgPT0gbV9lbGVtZW50cy5m
aW5kKGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVsZW1lbnRGbGFn
TWFwOjppdGVyYXRvciBmb3VuZCA9IG1fZWxlbWVudHMuZmluZChlbGVtZW50KTsKKyAgICBpZiAo
Zm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBlbGVtZW50LT5zZXRVc2VyQWN0
aW9uRWxlbWVudChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25l
ZCB1cGRhdGVkID0gZm91bmQtPnZhbHVlICYgfmZsYWdzOworICAgIGlmICghdXBkYXRlZCkgewor
ICAgICAgICBlbGVtZW50LT5zZXRVc2VyQWN0aW9uRWxlbWVudChmYWxzZSk7CisgICAgICAgIG1f
ZWxlbWVudHMucmVtb3ZlKGZvdW5kKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZv
dW5kLT52YWx1ZSA9IHVwZGF0ZWQ7Cit9CisKK2lubGluZSB2b2lkIFVzZXJBY3Rpb25FbGVtZW50
U2V0OjpzZXRGbGFncyhFbGVtZW50KiBlbGVtZW50LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBF
bGVtZW50RmxhZ01hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQp
OworICAgIGlmIChyZXN1bHQgIT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBBU1NFUlQo
ZWxlbWVudC0+aXNVc2VyQWN0aW9uRWxlbWVudCgpKTsKKyAgICAgICAgcmVzdWx0LT52YWx1ZSB8
PSBmbGFnczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVsZW1lbnQtPnNldFVzZXJB
Y3Rpb25FbGVtZW50KHRydWUpOworICAgIG1fZWxlbWVudHMuYWRkKGVsZW1lbnQsIGZsYWdzKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50
U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTIyNmM3YTc1NTU1NWY2MWU0MTVlYjI1NjQwNDU1YzUzMTQxZWFlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmgKQEAgLTAs
MCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVXNlckFjdGlvbkVsZW1lbnRTZXRfaAorI2RlZmluZSBVc2Vy
QWN0aW9uRWxlbWVudFNldF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5vZGU7CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBVc2VyQWN0aW9u
RWxlbWVudFNldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8VXNlckFjdGlvbkVs
ZW1lbnRTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBVc2VyQWN0aW9uRWxlbWVu
dFNldCgpKTsgfQorICAgIHN0YXRpYyBVc2VyQWN0aW9uRWxlbWVudFNldCYgaW5zdGFuY2VGb3Io
Y29uc3QgTm9kZSopOworCisgICAgYm9vbCBpc0ZvY3VzZWQoY29uc3QgTm9kZSogbm9kZSkgeyBy
ZXR1cm4gaGFzRmxhZ3Mobm9kZSwgSXNGb2N1c2VkRmxhZyk7IH0KKyAgICBib29sIGlzQWN0aXZl
KGNvbnN0IE5vZGUqIG5vZGUpIHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIElzQWN0aXZlRmxhZyk7
IH0KKyAgICBib29sIGlzSW5BY3RpdmVDaGFpbihjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBo
YXNGbGFncyhub2RlLCBJbkFjdGl2ZUNoYWluRmxhZyk7IH0KKyAgICBib29sIGlzSG92ZXJlZChj
b25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNGbGFncyhub2RlLCBJc0hvdmVyZWRGbGFnKTsg
fQorICAgIHZvaWQgc2V0Rm9jdXNlZChOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFn
cyhub2RlLCBlbmFibGUsIElzRm9jdXNlZEZsYWcpOyB9CisgICAgdm9pZCBzZXRBY3RpdmUoTm9k
ZSogbm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0FjdGl2ZUZs
YWcpOyB9CisgICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWluKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxl
KSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgSW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgdm9p
ZCBzZXRIb3ZlcmVkKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVu
YWJsZSwgSXNIb3ZlcmVkRmxhZyk7IH0KKworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0KCk7Cisg
ICAgflVzZXJBY3Rpb25FbGVtZW50U2V0KCk7CisKKyAgICB2b2lkIGRpZERldGFjaChOb2RlKik7
CisgICAgdm9pZCBkb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKKworcHJpdmF0ZToKKyAgICBl
bnVtIEVsZW1lbnRGbGFncyB7CisgICAgICAgIElzQWN0aXZlRmxhZyAgICAgID0gMSAsCisgICAg
ICAgIEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVyZWRGbGFnICAg
ICA9IDEgPDwgMiwKKyAgICAgICAgSXNGb2N1c2VkRmxhZyAgICAgPSAxIDw8IDMKKyAgICB9Owor
CisgICAgdm9pZCBzZXRGbGFncyhOb2RlKiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxh
Z3MpIHsgZW5hYmxlID8gc2V0RmxhZ3Mobm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBm
bGFncyk7IH0KKyAgICB2b2lkIHNldEZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBj
bGVhckZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgYm9vbCBoYXNGbGFncyhjb25zdCBOb2Rl
KiwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0OworCisgICAgdm9pZCBzZXRGbGFncyhFbGVtZW50Kiwg
dW5zaWduZWQpOworICAgIHZvaWQgY2xlYXJGbGFncyhFbGVtZW50KiwgdW5zaWduZWQpOworICAg
IGJvb2wgaGFzRmxhZ3MoY29uc3QgRWxlbWVudCosIHVuc2lnbmVkIGZsYWdzKSBjb25zdDsKKwor
ICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RWxlbWVudD4sIHVuc2lnbmVkPiBFbGVtZW50Rmxh
Z01hcDsKKyAgICBFbGVtZW50RmxhZ01hcCBtX2VsZW1lbnRzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UKKworI2VuZGlmIC8vIFVzZXJBY3Rpb25FbGVtZW50U2V0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178450</attachid>
            <date>2012-12-09 16:39:14 -0800</date>
            <delta_ts>2012-12-10 20:24:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121210093636.patch</filename>
            <type>text/plain</type>
            <size>33819</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1NTI3MjAxNTEyYjdl
Nzk0MmUwODllOGI2MDRhOThiOWQ1YzgzYy4uODNjNmZmNzIzYjAwY2NkOGE3ZjYyYzExMGI3NTQy
M2QxMjIxMTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTEyLTA2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJc0FjdGl2ZUZsYWcs
IElzSG92ZXJGbGFnLCBJbkFjdGl2ZUNoYWluRmxhZyBjYW4gYmUgdW5pZmllZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNhdmUgdHdvIG1vcmUg
Tm9kZUZsYWdzIGJpdHMsIHRoaXMgcGF0Y2ggaW5yb2R1Y2VzCisgICAgICAgIFVzZXJBY3Rpb25F
bGVtZW50U2V0IHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbkZsYWcgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFncyBhcmUgcmVwbGFjZWQg
YnkKKyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OkVsZW1lbnRGbGFncyBhbmQgVXNlckFj
dGlvbkVsZW1lbnRTZXQKKyAgICAgICAgY29sbGVjdGlvbiB3aGljaCB0cmFja3MgZWxlbWVudHMg
d2hpY2ggYXJlIGZsYWdnZWQgd2l0aCBvbmUgb2YKKyAgICAgICAgYSBFbGVtZW50RmxhZ3MuCisK
KyAgICAgICAgV2hlbiBtYXJraW5nIGFuIGVsZW1lbnQgYXMgYWN0aXZlIGZvciBleGFtcGxlLCBX
ZWJLaXQgc2V0cworICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNldDo6SXNBY3RpdmVGbGFnIHRv
IHRoZSBlbGVtZW50IGFuZCBzdG9yZSBpdAorICAgICAgICBpbnRvIGNvcnJlc3BvbmRpbmcgZWxl
bWVudCBzZXQgb2YgdGhlIGRvY3VtZW50LiBUaGlzIHNldCBtYWludGFpbnMKKyAgICAgICAgbWFy
a2VkIGVsZW1lbnRzIGFuZCBjb3JyZXNwb25kaW5nIGZsYWdzIGZvciBlYWNoIGVsZW1lbnRzLgor
CisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0IGNhbiBiZSBzZWVuIGFzIGEgeWV0IGFub3Ro
ZXIgcmFyZSBkYXRhIGZvcgorICAgICAgICB0aGVzZSBmbGFncy4gSG93ZXZlciwgdGhlIGZvbGxv
d2luZyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlc2UgZmxhZ3MKKyAgICAgICAgbWFrZSBhZGRpbmcg
YSBuZXcgZGF0YSBzdHJ1Y3R1cmUgb24gRG9jdW1lbnQgYW4gYXR0cmFjdGl2ZQorICAgICAgICBh
bHRlcm5hdGl2ZToKKworICAgICAgICAtIFVzZXJBY3Rpb25FbGVtZW50U2V0IGlzIG1haW50YWlu
ZWQgZm9yIGVhY2ggRG9jdW1lbnQgaW5zdGVhZCBvZiBhCisgICAgICAgICAgZ2xvYmFsIGNvbGxl
Y3Rvbi4gVGhpcyBmaXRzIGVsZW1lbnQgbGlmZXRpbWUgYmV0dGVyLgorCisgICAgICAgIC0gVGhl
IG51bWJlciBvZiBlbGVtZW50cyB3aGljaCBoYXZlIHRoZXNlIGZsYWdzIGlzIGdlbmVyYWxseQor
ICAgICAgICAgIHNtYWxsLCBhbmQgYSBncm91cCBvZiBlbGVtZW50cyBmb3IgZWFjaCBmbGFnIGlz
IGxhcmdlbHkgb3ZlcmxhcHBlZAorICAgICAgICAgIGR1ZSB0byBpdHMgbmF0dXJlLiBUaGlzIHBy
b3BlcnR5IGtlZXBzIHRoZSBzZXQgc21hbGwsIGFuZCBsZXRzCisgICAgICAgICAgZmxhZyByZXRy
aWV2YWwgZWZmaWNpZW50LiBPbiBtYWpvcml0eSBvZiB0aGUgZWxlbWVudHMsIGFsbCB0aGVzZQor
ICAgICAgICAgIGZsYWdzIGFyZSBmYWxzZSB0aHVzIHRoZSBjaGVjayBpcyBkb25lIGJ5IGp1c3Qg
Y2hlY2tpbmcKKyAgICAgICAgICBJc0luVXNlckFjdGlvbkZsYWcuCisKKyAgICAgICAgQXMgYSBi
b251cywgaXNGb2N1c2VkIGZsYWcsIHdoaWNoIHdhcyBvbiBOb2RlUmFyZURhdGEsIGlzIGFsc28g
bW92ZWQgdG8gdGhpcyBtb2RlbC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkg
ZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXNlckFjdGlvbkVs
ZW1lbnRzKTogQWRkZWQuCisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1VzZXJB
Y3Rpb25FbGVtZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRVc2VyQWN0
aW9uRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjphY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmluQWN0aXZlQ2hhaW4pOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxl
bWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmhvdmVyZWQpOiBTd2l0Y2hlZCB0byBV
c2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmZvY3VzZWQpOiBT
d2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNldEZvY3VzKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpzZXRBY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNl
dC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldEhvdmVyZWQpOiBTd2l0Y2hlZCB0byBVc2Vy
QWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChOb2RlUmFy
ZURhdGEpOgorICAgICAgICAqIGRvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNl
dDo6aW5zdGFuY2VGb3IpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OlVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVt
ZW50U2V0Ojp+VXNlckFjdGlvbkVsZW1lbnRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFj
dGlvbkVsZW1lbnRTZXQ6OmRpZERldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6ZG9jdW1lbnREaWRSZW1vdmVMYXN0UmVmKToKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpVc2Vy
QWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlv
bkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MpOgorICAgICAgICAqIGRvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVXNlckFjdGlvbkVs
ZW1lbnRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNGb2N1c2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGb2N1c2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0FjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0luQWN0aXZlQ2hhaW4pOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEluQWN0aXZlQ2hhaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmlzSG92ZXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0SG92ZXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3MpOgorCiAyMDEyLTEyLTA5ICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KIAogICAgICAgICBb
RUZMXSBbV2ViR0xdIFBhdGggaXMgbm90IHJlc2l6ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAxODhmMzExNDUwM2Y2MWMxNjM3NDc0MmRkYTg4Y2VhOTIzMzI2MmIyLi44NDM4
NDY1ZWUyZDlhZjQ4ODM1M2MxMDkxOWY1MTQ2M2UyMzAzNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTIzNyw2ICsxMjM3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9UcmVl
V2Fsa2VyLmNwcAogICAgIGRvbS9VSUV2ZW50LmNwcAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0
YXRlLmNwcAorICAgIGRvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAKICAgICBkb20vVXNlckdl
c3R1cmVJbmRpY2F0b3IuY3BwCiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNw
cAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDFkNDJlYTMwMDAxMTM2MzZiNDYxOWNkMjAyOGQyMzgzMGY3YWVlMzEuLjczZTFm
NzQxYTYwMDViYTFhN2Q4NDA0NjYwOGVjZTcxODU4OWQ5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMjk3MSw2ICsyOTcxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVu
dFdpdGhLZXlTdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0
YXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA2OTVhZGE4ZTdhMWM4OGZiZjkz
ZTZjMGQzMDU3MjRhZmY2NmQ1NzI4Li43MWY2MDIzODdlOTdkMmNmMjBlNTU2NjA3MjM4NTM2NDdl
N2NkNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ3Myw2ICs0NzMsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vVHJlZVdhbGtlci5jcHAgXAogICAgIGRvbS9VSUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJ
RXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKKyAgICBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3Bw
IFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vVXNlclR5cGlu
Z0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAgICBkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIFwK
QEAgLTE2MjcsNiArMTYyOCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9SYW5nZS5oIFwKICAg
ICBkb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBcCiAgICAgZG9tL1JlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCBcCisgICAgZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmggXAogICAgIGRvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBc
CiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
ZjQ1NjFiZDczYjc1MzlkMzNkNDYzNzllM2ZiZWVhYzQxNjJiNjY0Ny4uZTU2NTBmMzAzODU4YjVi
N2FjODdiMzhjYzQ3NmYwN2ZhZTJmNDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjkyNCw2ICsy
OTI0LDggQEAKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdk
b20vVUlFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNw
cCcsCisgICAgICAgICAgICAnZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmgnLAorICAgICAgICAg
ICAgJ2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Vc2VyVHlwaW5nR2VzdHVy
ZUluZGljYXRvci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDk5ZjNhZGNkNjVmNDYzYTU4NGYzNTljOWYyZTQzMDFmYWQ0YjNjZGIuLjE0ODczOTgw
NjM1YzY1YzY3MGIwMmU5NTIyYzc3YjNmOTM2YWMxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4ODQsNiArMzg4NCw3IEBA
CiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2
RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVy
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcx
ODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlB
NzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMw
MDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBV
c2VyQWN0aW9uRWxlbWVudFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTcyNzYzQkUxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50
U2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTcyRUEzQkIxNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJFQTNCQTE1ODVDRjU1
MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyog
Um91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsK
IAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMzkwMiw2ICszOTAzLDcgQEAKIAkJQTc1RThCOEQwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVu
dFRyYW5zZmVyLmggKi87IH07CiAJCUE3NUU4QjhFMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBv
c2l0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICovOyB9OwogCQlBNzVF
OEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUNvbXBvc2l0ZS5oICovOyB9OworCQlBNzY5RTk2QTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFj
dGlvbkVsZW1lbnRTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc2OUU5NjkxNjY4OUQwQzAwNUQ0NTI5IC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0
LmNwcCAqLzsgfTsKIAkJQTc2RTVGN0YxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi87
IH07CiAJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTMwRDZCOUQwQzAw
Mzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi87IH07CiAJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFC
OSAvKiBJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3Nzk3OTE0MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLzsgfTsKQEAg
LTExMjE2LDYgKzExMjE4LDcgQEAKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdD
b250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3
MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAv
KiBVc2VyQWN0aW9uRWxlbWVudFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VyQWN0aW9uRWxlbWVudFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmQ291bnRlZFN1cHBsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJvdW5kZWRS
ZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5N0JGRTAw
MzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTIzMCw2ICsx
MTIzMyw3IEBACiAJCUE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5z
ZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9uZW50VHJhbnNm
ZXIuaDsgcGF0aCA9IGZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVDb21wb3NpdGUuY3Bw
OyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvc2l0ZS5oOyBwYXRoID0gZmlsdGVycy9G
RUNvbXBvc2l0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzY5RTk2OTE2Njg5
RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWRE
b2N1bWVudE1hcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTEz
MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIyMjAzLDYgKzIyMjA3LDggQEAKIAkJCQkxNDFCOTRFRTA5RUM0MjVBMDAwRTk0MTMg
LyogVUlFdmVudC5pZGwgKi8sCiAJCQkJOTMzNTRBM0IwQjI0RjhDOTAwM0Y2REVBIC8qIFVJRXZl
bnRXaXRoS2V5U3RhdGUuY3BwICovLAogCQkJCTg1MDMxQjM5MEE0NEVGQzcwMEY5OTJFMCAvKiBV
SUV2ZW50V2l0aEtleVN0YXRlLmggKi8sCisJCQkJQTc2OUU5NjkxNjY4OUQwQzAwNUQ0NTI5IC8q
IFVzZXJBY3Rpb25FbGVtZW50U2V0LmNwcCAqLywKKwkJCQlBNzI3NjNCRTE2Njg5QkZCMDAyRkNB
Q0IgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuaCAqLywKIAkJCQkyNTQyRjREODExNjZDMjVBMDBF
ODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICovLAogCQkJCTI1NDJGNEQ5MTE2NkMy
NUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovLAogCQkJCUJDREYzMTc5MTFG
OEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAgKi8sCkBAIC0y
NTY3Nyw2ICsyNTY4Myw3IEBACiAJCQkJRTRBRkNGQTUwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRC
ZXppZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwODZGRTk4MDlENTNBQUIwMDVCQzc0RCAvKiBV
bmxpbmtDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYy
NjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzI3NjNCRjE2Njg5QkZC
MDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
NjU4MUIyMDlEMTRFRTYwMDBFNjFENyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDAzRjFGRUExMUU2QUI0MzAwODI1OEQ5IC8qIFVzZXJDb250ZW50VHlwZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQUNGM0JEMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovLApAQCAtMjg4MTIsNiArMjg4MTksNyBAQAog
CQkJCUIyQzNEQTRDMEQwMDZDMUQwMEVGNkYyNiAvKiBVbmljb2RlUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDA4NkZFOTkwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEREQxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzY5RTk2QTE2Njg5RDBDMDA1RDQ1MjkgLyog
VXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyNjEwOUQx
RTE5OTAwMEJFMzI1IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0FDRjNCQzEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI1NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2Vy
R2VzdHVyZUluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCmluZGV4IDFkYjQyMmQ0MjE3OTA0ZDVlZTk0OTFiMTUzMGIxMTY1ZmI0ZjQ0MzQuLjky
OTZhMTlhMWNiOWU0YTQ4MDZmMzQzOWI3ODJjMjU3NGIxY2E1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBACiAjaW5jbHVkZSAiVHJlZVdhbGtlci5j
cHAiCiAjaW5jbHVkZSAiVUlFdmVudC5jcHAiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0
ZS5jcHAiCisjaW5jbHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIgogI2luY2x1ZGUgIlVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGlj
YXRvci5jcHAiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggYTUxZWUxOTA2ZDc3MDZiMTQ4YmNjYzAzNTI1OWVlZmUxMjRlOTZmMS4u
YjNmMjFmYTA1NTZlYzg0ZDkwODVlMDdjZTdkOWRkZjM4MzdmZWUwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xNTgsNiArMTU4LDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKKyNpbmNsdWRl
ICJVc2VyQWN0aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0dGVy
bi5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJXZWJLaXROYW1lZEZsb3cuaCIKQEAgLTY5MSw2ICs2OTIsNyBAQCB2b2lkIERvY3VtZW50Ojpy
ZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKICAgICAgICAgbV9k
b2N1bWVudEVsZW1lbnQgPSAwOwogICAgICAgICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRG
ZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgpOworICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5k
b2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVt
ZW50U3RhY2suY2xlYXIoKTsKQEAgLTU3NzgsNyArNTc4MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVw
ZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRl
c3RSZXN1CiAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyID0gb2xkQWN0aXZlTm9kZS0+
cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBp
ZiAoY3Vyci0+bm9kZSgpICYmICFjdXJyLT5pc1RleHQoKSkgewogICAgICAgICAgICAgICAgIGN1
cnItPm5vZGUoKS0+c2V0QWN0aXZlKGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjdXJyLT5ub2Rl
KCktPmNsZWFySW5BY3RpdmVDaGFpbigpOworICAgICAgICAgICAgICAgIG1fdXNlckFjdGlvbkVs
ZW1lbnRzLnNldEluQWN0aXZlQ2hhaW4oY3Vyci0+bm9kZSgpLCBmYWxzZSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgc2V0QWN0aXZlTm9kZSgwKTsKQEAgLTU3ODksNyArNTc5
MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVz
dFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiAgICAgICAgICAgICAvLyB3aWxsIG5lZWQg
dG8gcmVmZXJlbmNlIHRoaXMgY2hhaW4uCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCog
Y3VyciA9IG5ld0FjdGl2ZU5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJl
bnQoKSkgewogICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4
dCgpKQotICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEluQWN0aXZlQ2hhaW4o
KTsKKyAgICAgICAgICAgICAgICAgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuc2V0SW5BY3RpdmVD
aGFpbihjdXJyLT5ub2RlKCksIHRydWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0
QWN0aXZlTm9kZShuZXdBY3RpdmVOb2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCBhYjBiNWZjODYwMDlmMWYwZWM0ODRkNTBmNmRkOGFjMDA2MjNjZGVlLi44MzNjZDdiODMz
OWQ2Mjk2ODI3MDE3OWE3Y2U1ZWFhMzQ3Zjg5ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
NjgyLDYgKzY4Miw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoUGFzc1Jl
ZlB0cjxOb2RlPik7CiAgICAgTm9kZSogZm9jdXNlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWROb2RlLmdldCgpOyB9CisgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25F
bGVtZW50cygpICB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVtZW50czsgfQorICAgIGNvbnN0IFVz
ZXJBY3Rpb25FbGVtZW50U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBt
X3VzZXJBY3Rpb25FbGVtZW50czsgfQogCiAgICAgdm9pZCBnZXRGb2N1c2FibGVOb2RlcyhWZWN0
b3I8UmVmUHRyPE5vZGU+ID4mKTsKICAgICAKQEAgLTEzMjcsNiArMTMyOSw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPE5vZGU+IG1faG92ZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2FjdGl2
ZU5vZGU7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZG9jdW1lbnRFbGVtZW50OworICAgIFVzZXJB
Y3Rpb25FbGVtZW50U2V0IG1fdXNlckFjdGlvbkVsZW1lbnRzOwogCiAgICAgdWludDY0X3QgbV9k
b21UcmVlVmVyc2lvbjsKICAgICBzdGF0aWMgdWludDY0X3Qgc19nbG9iYWxUcmVlVmVyc2lvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCAwNWFkNDg2ZDRhZjEyM2E3NTU2ODQ0ZTg0MDlhMmI0YjBjMjQ4
YWNkLi41ZDE5OTVmNzE3Y2E1ZjY2YzEwZmE2ZWUyZjU2ZjAxY2JjNGZmYmU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgog
I2luY2x1ZGUgIlVJRXZlbnQuaCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmgiCisj
aW5jbHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIldp
bmRvd0V2ZW50Q29udGV4dC5oIgpAQCAtODk4LDE4ICs4OTksNiBAQCB2b2lkIE5vZGU6OmxhenlB
dHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQpCiAgICAgbWFya0FuY2Vz
dG9yc1dpdGhDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotdm9pZCBOb2RlOjpzZXRGb2N1
cyhib29sIGIpCi17IAotICAgIGlmIChiIHx8IGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVuc3Vy
ZVJhcmVEYXRhKCktPnNldEZvY3VzZWQoYik7Ci19Ci0KLWJvb2wgTm9kZTo6cmFyZURhdGFGb2N1
c2VkKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7Ci0gICAgcmV0dXJuIHJh
cmVEYXRhKCktPmlzRm9jdXNlZCgpOwotfQotCiBib29sIE5vZGU6OnN1cHBvcnRzRm9jdXMoKSBj
b25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPnRhYkluZGV4
U2V0RXhwbGljaXRseSgpOwpAQCAtMTI0OSwxNCArMTIzOCwxNCBAQCB2b2lkIE5vZGU6OmRldGFj
aCgpCiAgICAgQVNTRVJUKCFyZW5kZXJlcigpKTsKIAogICAgIERvY3VtZW50KiBkb2MgPSBkb2N1
bWVudCgpOwotICAgIGlmIChob3ZlcmVkKCkpCi0gICAgICAgIGRvYy0+aG92ZXJlZE5vZGVEZXRh
Y2hlZCh0aGlzKTsKLSAgICBpZiAoaW5BY3RpdmVDaGFpbigpKQotICAgICAgICBkb2MtPmFjdGl2
ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOwotCi0gICAgY2xlYXJGbGFnKElzQWN0aXZlRmxhZyk7
Ci0gICAgY2xlYXJGbGFnKElzSG92ZXJlZEZsYWcpOwotICAgIGNsZWFyRmxhZyhJbkFjdGl2ZUNo
YWluRmxhZyk7CisgICAgaWYgKGlzVXNlckFjdGlvbkVsZW1lbnQoKSkgeworICAgICAgICBpZiAo
aG92ZXJlZCgpKQorICAgICAgICAgICAgZG9jLT5ob3ZlcmVkTm9kZURldGFjaGVkKHRoaXMpOwor
ICAgICAgICBpZiAoaW5BY3RpdmVDaGFpbigpKQorICAgICAgICAgICAgZG9jLT5hY3RpdmVDaGFp
bk5vZGVEZXRhY2hlZCh0aGlzKTsKKyAgICAgICAgZG9jLT51c2VyQWN0aW9uRWxlbWVudHMoKS5k
aWREZXRhY2godGhpcyk7CisgICAgfQorCiAgICAgY2xlYXJGbGFnKElzQXR0YWNoZWRGbGFnKTsK
IAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGM5NTFjNzIzODc5MTdiZTIwMjM5Mjhl
NmVjZDQyZGFhMDkyZGYwM2YuLjU1MWQ5ZThkYzM5MTA4ZDdkZjJkNjYyOTA0ZjIyYThkYjBmODc2
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFdyYXBw
YWJsZS5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIgogI2luY2x1ZGUgIlRy
ZWVTaGFyZWQuaCIKKyNpbmNsdWRlICJVc2VyQWN0aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC05OCw3ICs5OSw3IEBAIGNsYXNzIFByb3BlcnR5
Tm9kZUxpc3Q7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNvbnN0IGludCBub2Rl
U3R5bGVDaGFuZ2VTaGlmdCA9IDE3OworY29uc3QgaW50IG5vZGVTdHlsZUNoYW5nZVNoaWZ0ID0g
MTU7CiAKIC8vIFN5bnRoZXRpY1N0eWxlQ2hhbmdlIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBnbyB0
aHJvdWdoIHRoZSBlbnRpcmUgc3R5bGUgY2hhbmdlIGxvZ2ljIGV2ZW4gdGhvdWdoCiAvLyBubyBz
dHlsZSBwcm9wZXJ0eSBoYXMgYWN0dWFsbHkgY2hhbmdlZC4gSXQgaXMgdXNlZCB0byByZXN0cnVj
dHVyZSB0aGUgdHJlZSB3aGVuLCBmb3IgaW5zdGFuY2UsCkBAIC0zMzksMTAgKzM0MCwxNCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0OwogICAgIGJvb2wgaGFzQ2xhc3MoKSBjb25z
dDsKIAotICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0FjdGl2ZUZs
YWcpOyB9Ci0gICAgYm9vbCBpbkFjdGl2ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJ
bkFjdGl2ZUNoYWluRmxhZyk7IH0KLSAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJldHVybiBn
ZXRGbGFnKElzSG92ZXJlZEZsYWcpOyB9Ci0gICAgYm9vbCBmb2N1c2VkKCkgY29uc3QgeyByZXR1
cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhRm9jdXNlZCgpIDogZmFsc2U7IH0KKyAgICBib29s
IGlzVXNlckFjdGlvbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzVXNlckFjdGlv
bkVsZW1lbnQpOyB9CisgICAgdm9pZCBzZXRVc2VyQWN0aW9uRWxlbWVudChib29sIGZsYWcpIHsg
c2V0RmxhZyhmbGFnLCBJc1VzZXJBY3Rpb25FbGVtZW50KTsgfQorCisgICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgVXNlckFjdGlvbkVsZW1l
bnRTZXQ6Omluc3RhbmNlRm9yKHRoaXMpLmlzQWN0aXZlKHRoaXMpOyB9CisgICAgYm9vbCBpbkFj
dGl2ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIFVzZXJB
Y3Rpb25FbGVtZW50U2V0OjppbnN0YW5jZUZvcih0aGlzKS5pc0luQWN0aXZlQ2hhaW4odGhpcyk7
IH0KKyAgICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50
KCkgJiYgVXNlckFjdGlvbkVsZW1lbnRTZXQ6Omluc3RhbmNlRm9yKHRoaXMpLmlzSG92ZXJlZCh0
aGlzKTsgfQorICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVs
ZW1lbnQoKSAmJiBVc2VyQWN0aW9uRWxlbWVudFNldDo6aW5zdGFuY2VGb3IodGhpcykuaXNGb2N1
c2VkKHRoaXMpOyB9CisKICAgICBib29sIGF0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gZ2V0Rmxh
ZyhJc0F0dGFjaGVkRmxhZyk7IH0KICAgICB2b2lkIHNldEF0dGFjaGVkKCkgeyBzZXRGbGFnKElz
QXR0YWNoZWRGbGFnKTsgfQogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0
dXJuIHN0eWxlQ2hhbmdlVHlwZSgpICE9IE5vU3R5bGVDaGFuZ2U7IH0KQEAgLTM1NSw5ICszNjAs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IHNldEZs
YWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyk7IH0KICAgICB2b2lkIGNsZWFyQ2hpbGROZWVk
c1N0eWxlUmVjYWxjKCkgeyBjbGVhckZsYWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyk7IH0K
IAotICAgIHZvaWQgc2V0SW5BY3RpdmVDaGFpbigpIHsgc2V0RmxhZyhJbkFjdGl2ZUNoYWluRmxh
Zyk7IH0KLSAgICB2b2lkIGNsZWFySW5BY3RpdmVDaGFpbigpIHsgY2xlYXJGbGFnKEluQWN0aXZl
Q2hhaW5GbGFnKTsgfQotCiAgICAgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdl
VHlwZSBjaGFuZ2VUeXBlID0gRnVsbFN0eWxlQ2hhbmdlKTsKICAgICB2b2lkIGNsZWFyTmVlZHNT
dHlsZVJlY2FsYygpIHsgbV9ub2RlRmxhZ3MgJj0gflN0eWxlQ2hhbmdlTWFzazsgfQogICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZVNldE5lZWRzU3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNo
YW5nZVR5cGUgPSBGdWxsU3R5bGVDaGFuZ2UpIHsgc2V0TmVlZHNTdHlsZVJlY2FsYyhjaGFuZ2VU
eXBlKTsgfQpAQCAtMzg1LDkgKzM4Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGxhenlBdHRhY2go
U2hvdWxkU2V0QXR0YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAgICAgdm9pZCBsYXp5UmVhdHRhY2go
U2hvdWxkU2V0QXR0YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9jdXMoYm9vbCA9IHRydWUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0g
dHJ1ZSwgYm9vbCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0aXZlRmxhZyk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGYgPSB0cnVlKSB7IHNldEZsYWco
ZiwgSXNIb3ZlcmVkRmxhZyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBmbGFn
ID0gdHJ1ZSkgeyBVc2VyQWN0aW9uRWxlbWVudFNldDo6aW5zdGFuY2VGb3IodGhpcykuc2V0Rm9j
dXNlZCh0aGlzLCBmbGFnKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmbGFn
ID0gdHJ1ZSwgYm9vbCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBVc2VyQWN0aW9uRWxlbWVudFNldDo6
aW5zdGFuY2VGb3IodGhpcykuc2V0QWN0aXZlKHRoaXMsIGZsYWcpOyB9CisgICAgdmlydHVhbCB2
b2lkIHNldEhvdmVyZWQoYm9vbCBmbGFnID0gdHJ1ZSkgeyByZXR1cm4gVXNlckFjdGlvbkVsZW1l
bnRTZXQ6Omluc3RhbmNlRm9yKHRoaXMpLnNldEhvdmVyZWQodGhpcywgZmxhZyk7IH0KIAogICAg
IHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIApAQCAtNzA2LDM3ICs3MDgsMzUgQEAg
cHJpdmF0ZToKICAgICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKICAg
ICAgICAgSW5Eb2N1bWVudEZsYWcgPSAxIDw8IDgsCiAgICAgICAgIElzTGlua0ZsYWcgPSAxIDw8
IDksCi0gICAgICAgIElzQWN0aXZlRmxhZyA9IDEgPDwgMTAsCi0gICAgICAgIElzSG92ZXJlZEZs
YWcgPSAxIDw8IDExLAotICAgICAgICBJbkFjdGl2ZUNoYWluRmxhZyA9IDEgPDwgMTIsCi0gICAg
ICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTMsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVu
dEZsYWcgPSAxIDw8IDE0LAorICAgICAgICBJc1VzZXJBY3Rpb25FbGVtZW50ID0gMSA8PCAxMCwK
KyAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMSwKKyAgICAgICAgSXNEb2N1bWVudEZy
YWdtZW50RmxhZyA9IDEgPDwgMTIsCiAKICAgICAgICAgLy8gVGhlc2UgYml0cyBhcmUgdXNlZCBi
eSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1cCBoZXJlIHNvIHRoZXkgY2FuCiAgICAgICAgIC8v
IGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1vcnkgd29yZCBhcyB0aGUgTm9kZSBiaXRzIGFib3Zl
LgotICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwgMTUsIC8vIEVs
ZW1lbnQKKyAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAv
LyBFbGVtZW50CiAjaWYgRU5BQkxFKFNWRykKLSAgICAgICAgSGFzU1ZHUmFyZURhdGFGbGFnID0g
MSA8PCAxNiwgLy8gU1ZHRWxlbWVudAorICAgICAgICBIYXNTVkdSYXJlRGF0YUZsYWcgPSAxIDw8
IDE0LCAvLyBTVkdFbGVtZW50CiAjZW5kaWYKIAogICAgICAgICBTdHlsZUNoYW5nZU1hc2sgPSAx
IDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAx
KSwKIAotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAxOSwKKyAg
ICAgICAgU2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMTcsCiAKLSAgICAgICAg
SGFzTmFtZU9ySXNFZGl0aW5nVGV4dEZsYWcgPSAxIDw8IDIwLAorICAgICAgICBIYXNOYW1lT3JJ
c0VkaXRpbmdUZXh0RmxhZyA9IDEgPDwgMTgsCiAKLSAgICAgICAgSW5OYW1lZEZsb3dGbGFnID0g
MSA8PCAyMSwKLSAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAy
MiwKLSAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjMsCi0gICAgICAgIEhh
c1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjQsCi0gICAgICAgIEhhc0V2ZW50VGFy
Z2V0RGF0YUZsYWcgPSAxIDw8IDI1LAotICAgICAgICBWOENvbGxlY3RhYmxlRHVyaW5nTWlub3JH
Q0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9IDEgPDwgMjcs
CisgICAgICAgIEluTmFtZWRGbG93RmxhZyA9IDEgPDwgMTksCisgICAgICAgIEhhc1N5bnRoZXRp
Y0F0dHJDaGlsZE5vZGVzRmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0N1c3RvbUNhbGxiYWNr
c0ZsYWcgPSAxIDw8IDIxLAorICAgICAgICBIYXNTY29wZWRIVE1MU3R5bGVDaGlsZEZsYWcgPSAx
IDw8IDIyLAorICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyMywKKyAgICAg
ICAgVjhDb2xsZWN0YWJsZUR1cmluZ01pbm9yR0NGbGFnID0gMSA8PCAyNCwKKyAgICAgICAgSXNJ
bnNlcnRpb25Qb2ludEZsYWcgPSAxIDw8IDI1LAogCiAgICAgICAgIERlZmF1bHROb2RlRmxhZ3Mg
PSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZwogICAgIH07CiAKLSAgICAvLyA0IGJpdHMg
cmVtYWluaW5nCisgICAgLy8gNiBiaXRzIHJlbWFpbmluZwogCiAgICAgYm9vbCBnZXRGbGFnKE5v
ZGVGbGFncyBtYXNrKSBjb25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2
b2lkIHNldEZsYWcoYm9vbCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9
IChtX25vZGVGbGFncyAmIH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IApAQCAtODA4
LDcgKzgwOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQo
KTsKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0ZVJhcmVEYXRh
KCk7Ci0gICAgYm9vbCByYXJlRGF0YUZvY3VzZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgUmVu
ZGVyU3R5bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBlZTlmOGJkNTg4ZTNkM2VkZjYwMzk2NGNhYjU2ODQw
MjBjNjE1ZTNkLi5kMjU5MzcxMDdjZThmZDllNzZhOWFlNGMyN2JjYmNiNjA1MzM5ZGRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNTEsNyArMjUxLDYgQEAgcHVibGljOgogICAg
ICAgICAsIG1fdGFiSW5kZXgoMCkKICAgICAgICAgLCBtX2NoaWxkSW5kZXgoMCkKICAgICAgICAg
LCBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseShmYWxzZSkKLSAgICAgICAgLCBtX2lzRm9jdXNl
ZChmYWxzZSkKICAgICAgICAgLCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVy
QXR0YWNoKGZhbHNlKQogICAgICAgICAsIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkoZmFsc2UpCiAg
ICAgICAgICwgbV9pc0luQ2FudmFzU3VidHJlZShmYWxzZSkKQEAgLTM2NSwxNiArMzY0LDEyIEBA
IHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KLSAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7
IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIHNob3J0
IG1fdGFiSW5kZXg7CiAgICAgdW5zaWduZWQgc2hvcnQgbV9jaGlsZEluZGV4OwogICAgIGJvb2wg
bV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkgOiAxOwotICAgIGJvb2wgbV9pc0ZvY3VzZWQgOiAx
OwogICAgIGJvb2wgbV9uZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaCA6
IDE7CiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5IDogMTsKICAgICBib29sIG1faXNJ
bkNhbnZhc1N1YnRyZWUgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJB
Y3Rpb25FbGVtZW50U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc5YjkwZGMyMzNmODU5ZWNhNjRmMDU5YTNjMzJhN2I4YzVk
MDVhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxl
bWVudFNldC5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitVc2VyQWN0aW9uRWxlbWVudFNldCYgVXNlckFjdGlvbkVsZW1lbnRTZXQ6Omluc3Rh
bmNlRm9yKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9
IG5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+dXNlckFjdGlvbkVs
ZW1lbnRzKCk7CisgICAgLy8gT25seSBEb2N1bWVudFR5cGUgbm9kZSBjYW4gYmUgb3JwaGFuLCBh
bmQgdGhleSBkb24ndCBsZWFrIGJ5IHRoaXMgc2V0CisgICAgLy8gc2luY2UgVXNlckFjdGlvbkVs
ZW1lbnRTZXQgbmV2ZXIgc3RvcmVzIERvY3VtZW50VHlwZSBub2Rlcy4KKyAgICBBU1NFUlQobm9k
ZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREUpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoVXNlckFjdGlvbkVsZW1lbnRTZXQsIHNldEZvck9ycGhhbk5vZGVzLCAoKSk7
CisgICAgcmV0dXJuIHNldEZvck9ycGhhbk5vZGVzOworfQorCitVc2VyQWN0aW9uRWxlbWVudFNl
dDo6VXNlckFjdGlvbkVsZW1lbnRTZXQoKQoreworfQorCitVc2VyQWN0aW9uRWxlbWVudFNldDo6
flVzZXJBY3Rpb25FbGVtZW50U2V0KCkKK3sKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNl
dDo6ZGlkRGV0YWNoKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUtPmlzVXNlckFjdGlv
bkVsZW1lbnQoKSk7CisgICAgY2xlYXJGbGFncyh0b0VsZW1lbnQobm9kZSksIElzQWN0aXZlRmxh
ZyB8IEluQWN0aXZlQ2hhaW5GbGFnIHwgSXNIb3ZlcmVkRmxhZyk7Cit9CisKK3ZvaWQgVXNlckFj
dGlvbkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZigpCit7CisgICAgbV9lbGVt
ZW50cy5jbGVhcigpOworfQorCitib29sIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFncyhj
b25zdCBOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykgY29uc3QKK3sKKyAgICBBU1NFUlQobm9k
ZS0+aXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAg
cmV0dXJuIGhhc0ZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxhZ3MpOworfQorCit2b2lkIFVzZXJB
Y3Rpb25FbGVtZW50U2V0OjpzZXRGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sK
KyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJl
dHVybiBzZXRGbGFncyh0b0VsZW1lbnQobm9kZSksIGZsYWdzKTsKK30KKwordm9pZCBVc2VyQWN0
aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFncyhOb2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sK
KyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJl
dHVybiBjbGVhckZsYWdzKHRvRWxlbWVudChub2RlKSwgZmxhZ3MpOworfQorCitpbmxpbmUgYm9v
bCBVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFzRmxhZ3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwg
dW5zaWduZWQgZmxhZ3MpIGNvbnN0Cit7CisgICAgQVNTRVJUKGVsZW1lbnQtPmlzVXNlckFjdGlv
bkVsZW1lbnQoKSk7CisgICAgRWxlbWVudEZsYWdNYXA6OmNvbnN0X2l0ZXJhdG9yIGZvdW5kID0g
bV9lbGVtZW50cy5maW5kKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBpZiAo
Zm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBmb3VuZC0+dmFsdWUgJiBmbGFnczsKK30KKworaW5saW5lIHZvaWQgVXNlckFjdGlvbkVs
ZW1lbnRTZXQ6OmNsZWFyRmxhZ3MoRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpCit7
CisgICAgaWYgKCFlbGVtZW50LT5pc1VzZXJBY3Rpb25FbGVtZW50KCkpIHsKKyAgICAgICAgQVNT
RVJUKG1fZWxlbWVudHMuZW5kKCkgPT0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIEVsZW1lbnRGbGFnTWFwOjppdGVyYXRvciBmb3VuZCA9
IG1fZWxlbWVudHMuZmluZChlbGVtZW50KTsKKyAgICBpZiAoZm91bmQgPT0gbV9lbGVtZW50cy5l
bmQoKSkgeworICAgICAgICBlbGVtZW50LT5zZXRVc2VyQWN0aW9uRWxlbWVudChmYWxzZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1cGRhdGVkID0gZm91bmQtPnZh
bHVlICYgfmZsYWdzOworICAgIGlmICghdXBkYXRlZCkgeworICAgICAgICBlbGVtZW50LT5zZXRV
c2VyQWN0aW9uRWxlbWVudChmYWxzZSk7CisgICAgICAgIG1fZWxlbWVudHMucmVtb3ZlKGZvdW5k
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvdW5kLT52YWx1ZSA9IHVwZGF0ZWQ7
Cit9CisKK2lubGluZSB2b2lkIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGbGFncyhFbGVtZW50
KiBlbGVtZW50LCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBFbGVtZW50RmxhZ01hcDo6aXRlcmF0
b3IgcmVzdWx0ID0gbV9lbGVtZW50cy5maW5kKGVsZW1lbnQpOworICAgIGlmIChyZXN1bHQgIT0g
bV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBBU1NFUlQoZWxlbWVudC0+aXNVc2VyQWN0aW9u
RWxlbWVudCgpKTsKKyAgICAgICAgcmVzdWx0LT52YWx1ZSB8PSBmbGFnczsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGVsZW1lbnQtPnNldFVzZXJBY3Rpb25FbGVtZW50KHRydWUpOwor
ICAgIG1fZWxlbWVudHMuYWRkKGVsZW1lbnQsIGZsYWdzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTIyNmM3YTc1NTU1NWY2
MWU0MTVlYjI1NjQwNDU1YzUzMTQxZWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
VXNlckFjdGlvbkVsZW1lbnRTZXRfaAorI2RlZmluZSBVc2VyQWN0aW9uRWxlbWVudFNldF9oCisK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7
CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBVc2VyQWN0aW9uRWxlbWVudFNldCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NPd25QdHI8VXNlckFjdGlvbkVsZW1lbnRTZXQ+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UHRyKG5ldyBVc2VyQWN0aW9uRWxlbWVudFNldCgpKTsgfQorICAgIHN0YXRp
YyBVc2VyQWN0aW9uRWxlbWVudFNldCYgaW5zdGFuY2VGb3IoY29uc3QgTm9kZSopOworCisgICAg
Ym9vbCBpc0ZvY3VzZWQoY29uc3QgTm9kZSogbm9kZSkgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwg
SXNGb2N1c2VkRmxhZyk7IH0KKyAgICBib29sIGlzQWN0aXZlKGNvbnN0IE5vZGUqIG5vZGUpIHsg
cmV0dXJuIGhhc0ZsYWdzKG5vZGUsIElzQWN0aXZlRmxhZyk7IH0KKyAgICBib29sIGlzSW5BY3Rp
dmVDaGFpbihjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNGbGFncyhub2RlLCBJbkFjdGl2
ZUNoYWluRmxhZyk7IH0KKyAgICBib29sIGlzSG92ZXJlZChjb25zdCBOb2RlKiBub2RlKSB7IHJl
dHVybiBoYXNGbGFncyhub2RlLCBJc0hvdmVyZWRGbGFnKTsgfQorICAgIHZvaWQgc2V0Rm9jdXNl
ZChOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhub2RlLCBlbmFibGUsIElzRm9j
dXNlZEZsYWcpOyB9CisgICAgdm9pZCBzZXRBY3RpdmUoTm9kZSogbm9kZSwgYm9vbCBlbmFibGUp
IHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0FjdGl2ZUZsYWcpOyB9CisgICAgdm9pZCBzZXRJ
bkFjdGl2ZUNoYWluKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVu
YWJsZSwgSW5BY3RpdmVDaGFpbkZsYWcpOyB9CisgICAgdm9pZCBzZXRIb3ZlcmVkKE5vZGUqIG5v
ZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgSXNIb3ZlcmVkRmxhZyk7
IH0KKworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0KCk7CisgICAgflVzZXJBY3Rpb25FbGVtZW50
U2V0KCk7CisKKyAgICB2b2lkIGRpZERldGFjaChOb2RlKik7CisgICAgdm9pZCBkb2N1bWVudERp
ZFJlbW92ZUxhc3RSZWYoKTsKKworcHJpdmF0ZToKKyAgICBlbnVtIEVsZW1lbnRGbGFncyB7Cisg
ICAgICAgIElzQWN0aXZlRmxhZyAgICAgID0gMSAsCisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFn
ID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVyZWRGbGFnICAgICA9IDEgPDwgMiwKKyAgICAgICAg
SXNGb2N1c2VkRmxhZyAgICAgPSAxIDw8IDMKKyAgICB9OworCisgICAgdm9pZCBzZXRGbGFncyhO
b2RlKiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWduZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0Rmxh
Z3Mobm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhub2RlLCBmbGFncyk7IH0KKyAgICB2b2lkIHNl
dEZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgdm9pZCBjbGVhckZsYWdzKE5vZGUqLCB1bnNp
Z25lZCk7CisgICAgYm9vbCBoYXNGbGFncyhjb25zdCBOb2RlKiwgdW5zaWduZWQgZmxhZ3MpIGNv
bnN0OworCisgICAgdm9pZCBzZXRGbGFncyhFbGVtZW50KiwgdW5zaWduZWQpOworICAgIHZvaWQg
Y2xlYXJGbGFncyhFbGVtZW50KiwgdW5zaWduZWQpOworICAgIGJvb2wgaGFzRmxhZ3MoY29uc3Qg
RWxlbWVudCosIHVuc2lnbmVkIGZsYWdzKSBjb25zdDsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxS
ZWZQdHI8RWxlbWVudD4sIHVuc2lnbmVkPiBFbGVtZW50RmxhZ01hcDsKKyAgICBFbGVtZW50Rmxh
Z01hcCBtX2VsZW1lbnRzOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFVzZXJB
Y3Rpb25FbGVtZW50U2V0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178696</attachid>
            <date>2012-12-10 20:24:17 -0800</date>
            <delta_ts>2012-12-11 02:37:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103697-20121211132138.patch</filename>
            <type>text/plain</type>
            <size>34644</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxODYwZWYzZGE2ZTNh
ODNjMTU3YzczZTQyZDBlNTFkZTg1M2Y5Ny4uZjFjZDYxMGRkYzc0ZjBiOTRmMjEzNjNiODdhY2I1
ZjAyN2Q5YWMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTEyLTA2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJc0FjdGl2ZUZsYWcs
IElzSG92ZXJGbGFnLCBJbkFjdGl2ZUNoYWluRmxhZyBjYW4gYmUgdW5pZmllZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNhdmUgdHdvIG1vcmUg
Tm9kZUZsYWdzIGJpdHMsIHRoaXMgcGF0Y2ggaW5yb2R1Y2VzCisgICAgICAgIFVzZXJBY3Rpb25F
bGVtZW50U2V0IHRvIGdldCBJc0xpbmtGbGFnLCBJc0hvdmVyRmxhZywKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbkZsYWcgdG9nZXRoZXIuIFRoZXNlIHRocmVlIG9sZCBmbGFncyBhcmUgcmVwbGFjZWQg
YnkKKyAgICAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OkVsZW1lbnRGbGFncyBhbmQgVXNlckFj
dGlvbkVsZW1lbnRTZXQKKyAgICAgICAgY29sbGVjdGlvbiB3aGljaCB0cmFja3MgZWxlbWVudHMg
d2hpY2ggYXJlIGZsYWdnZWQgd2l0aCBvbmUgb2YKKyAgICAgICAgYSBFbGVtZW50RmxhZ3MuCisK
KyAgICAgICAgV2hlbiBtYXJraW5nIGFuIGVsZW1lbnQgYXMgYWN0aXZlIGZvciBleGFtcGxlLCBX
ZWJLaXQgc2V0cworICAgICAgICBVc2VyQWN0aW9uRWxlbWVudFNldDo6SXNBY3RpdmVGbGFnIHRv
IHRoZSBlbGVtZW50IGFuZCBzdG9yZSBpdAorICAgICAgICBpbnRvIGNvcnJlc3BvbmRpbmcgZWxl
bWVudCBzZXQgb2YgdGhlIGRvY3VtZW50LiBUaGlzIHNldCBtYWludGFpbnMKKyAgICAgICAgbWFy
a2VkIGVsZW1lbnRzIGFuZCBjb3JyZXNwb25kaW5nIGZsYWdzIGZvciBlYWNoIGVsZW1lbnRzLgor
CisgICAgICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0IGNhbiBiZSBzZWVuIGFzIGEgeWV0IGFub3Ro
ZXIgcmFyZSBkYXRhIGZvcgorICAgICAgICB0aGVzZSBmbGFncy4gSG93ZXZlciwgdGhlIGZvbGxv
d2luZyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlc2UgZmxhZ3MKKyAgICAgICAgbWFrZSBhZGRpbmcg
YSBuZXcgZGF0YSBzdHJ1Y3R1cmUgb24gRG9jdW1lbnQgYW4gYXR0cmFjdGl2ZQorICAgICAgICBh
bHRlcm5hdGl2ZToKKworICAgICAgICAtIFVzZXJBY3Rpb25FbGVtZW50U2V0IGlzIG1haW50YWlu
ZWQgZm9yIGVhY2ggRG9jdW1lbnQgaW5zdGVhZCBvZiBhCisgICAgICAgICAgZ2xvYmFsIGNvbGxl
Y3Rvbi4gVGhpcyBmaXRzIGVsZW1lbnQgbGlmZXRpbWUgYmV0dGVyLgorCisgICAgICAgIC0gVGhl
IG51bWJlciBvZiBlbGVtZW50cyB3aGljaCBoYXZlIHRoZXNlIGZsYWdzIGlzIGdlbmVyYWxseQor
ICAgICAgICAgIHNtYWxsLCBhbmQgYSBncm91cCBvZiBlbGVtZW50cyBmb3IgZWFjaCBmbGFnIGlz
IGxhcmdlbHkgb3ZlcmxhcHBlZAorICAgICAgICAgIGR1ZSB0byBpdHMgbmF0dXJlLiBUaGlzIHBy
b3BlcnR5IGtlZXBzIHRoZSBzZXQgc21hbGwsIGFuZCBsZXRzCisgICAgICAgICAgZmxhZyByZXRy
aWV2YWwgZWZmaWNpZW50LiBPbiBtYWpvcml0eSBvZiB0aGUgZWxlbWVudHMsIGFsbCB0aGVzZQor
ICAgICAgICAgIGZsYWdzIGFyZSBmYWxzZSB0aHVzIHRoZSBjaGVjayBpcyBkb25lIGJ5IGp1c3Qg
Y2hlY2tpbmcKKyAgICAgICAgICBJc0luVXNlckFjdGlvbkZsYWcuCisKKyAgICAgICAgQXMgYSBi
b251cywgaXNGb2N1c2VkIGZsYWcsIHdoaWNoIHdhcyBvbiBOb2RlUmFyZURhdGEsIGlzIGFsc28g
bW92ZWQgdG8gdGhpcyBtb2RlbC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkg
ZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXNlckFjdGlvbkVs
ZW1lbnRzKTogQWRkZWQuCisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1VzZXJB
Y3Rpb25FbGVtZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRVc2VyQWN0
aW9uRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAoTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjphY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmluQWN0aXZlQ2hhaW4pOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxl
bWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmhvdmVyZWQpOiBTd2l0Y2hlZCB0byBV
c2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmZvY3VzZWQpOiBT
d2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNldEZvY3VzKTogU3dpdGNoZWQgdG8gVXNlckFjdGlvbkVsZW1lbnRTZXQuCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpzZXRBY3RpdmUpOiBTd2l0Y2hlZCB0byBVc2VyQWN0aW9uRWxlbWVudFNl
dC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldEhvdmVyZWQpOiBTd2l0Y2hlZCB0byBVc2Vy
QWN0aW9uRWxlbWVudFNldC4KKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChOb2RlUmFy
ZURhdGEpOgorICAgICAgICAqIGRvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNl
dDo6aW5zdGFuY2VGb3IpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OlVzZXJBY3Rpb25FbGVtZW50U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVt
ZW50U2V0Ojp+VXNlckFjdGlvbkVsZW1lbnRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFj
dGlvbkVsZW1lbnRTZXQ6OmRpZERldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6ZG9jdW1lbnREaWRSZW1vdmVMYXN0UmVmKToKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpVc2Vy
QWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlv
bkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MpOgorICAgICAgICAqIGRvbS9Vc2VyQWN0aW9uRWxlbWVu
dFNldC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVXNlckFjdGlvbkVs
ZW1lbnRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6aXNGb2N1c2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGb2N1c2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0FjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJBY3Rpb25FbGVtZW50U2V0Ojppc0luQWN0aXZlQ2hhaW4pOgorICAgICAgICAo
V2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OnNldEluQWN0aXZlQ2hhaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6OmlzSG92ZXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0SG92ZXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0RmxhZ3MpOgorCiAyMDEyLTEyLTEwICBKZXNz
aWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBNYWMgYnVp
bGQgYWZ0ZXIgcjEzNzIzMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBhM2EwZDg2MTQxNDZiNWQy
Y2YxMWI5MjVjM2U2ZmI3MjI4ZjM3MThmLi5kYzQ4ZTdhMDc0NDY4NDYxZDQ0NzA1MTNiMzFmNzc5
MjZkOWYzY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIzOCw2ICsxMjM4LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9UcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9VSUV2ZW50
LmNwcAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcAorICAgIGRvbS9Vc2VyQWN0aW9u
RWxlbWVudFNldC5jcHAKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCiAgICAgZG9t
L1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcAogICAgIGRvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDVmNWNhYTEyMjlhNjg0ZDIx
NzJjNmM2YjhiYzVmZGQ4NjFhNGMwODcuLjM0YzkxZjJlNzUxNDhiZDNmMzQ0M2MxODY5NzFhOTEy
N2EyYjRmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjk3Myw2ICsyOTcz
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlv
bkVsZW1lbnRTZXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0
b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCBiMDNiYjEyNGU3MDNmMTQ4ZDAwNmY3Y2RjODY3MmIzNjZlNzUxZGM0Li45OWU4
ZDAyOTE2M2Y3ZGM5MzZmMzlhMzI4NDgzZDU2ODA2Njc5ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ3
NCw2ICs0NzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vVHJlZVdhbGtlci5jcHAgXAogICAg
IGRvbS9VSUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKKyAg
ICBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIFwKICAgICBkb20vVXNlckdlc3R1cmVJbmRp
Y2F0b3IuY3BwIFwKICAgICBkb20vVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuY3BwIFwKICAg
ICBkb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIFwKQEAgLTE2MjksNiArMTYzMCw3IEBAIEhFQURF
UlMgKz0gXAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIuaCBcCiAgICAgZG9tL1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBcCisgICAgZG9tL1VzZXJB
Y3Rpb25FbGVtZW50U2V0LmggXAogICAgIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
aCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDQ0MzAyNWMyZWYwNjNlN2U1MDBlYjlkNzZm
ZmQ3MGM1MjdjOWIxOS4uYTVlMjg1ZmQ1OTg0YmY3NGY2YjUzZDFjY2JhYWE0YTcyNGFmZGJiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjkyOCw2ICsyOTI4LDggQEAKICAgICAgICAgICAgICdkb20v
VHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20vVUlFdmVudC5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCcsCisgICAgICAgICAgICAnZG9tL1VzZXJB
Y3Rpb25FbGVtZW50U2V0LmgnLAorICAgICAgICAgICAgJ2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNl
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNjZGFiOTdkNDE0YTkwMGQwZDVh
OTZkYWU1ZGEyNzA2YmQ4OWZmM2UuLjU0NWNjM2Y0MTI1YTAyZDcxNjU5OWM4OGQzNTI0YTJkZTRj
MzA0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM4OTAsNiArMzg5MCw3IEBACiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVD
RSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJE
MDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERy
YWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyog
UGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUE3Mjc2M0JGMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyNzYzQkUxNjY4OUJG
QjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcyRUEzQkIxNTg1Q0Y1NTAwNEZBQTI2IC8q
IFJlZkNvdW50ZWRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFB
QUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5
IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzkwOCw2ICszOTA5
LDcgQEAKIAkJQTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg1
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi87IH07CiAJCUE3NUU4
QjhFMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyog
RkVDb21wb3NpdGUuY3BwICovOyB9OwogCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVD
b21wb3NpdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyB9OworCQlBNzY5
RTk2QTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2OUU5NjkxNjY4OUQwQzAw
NUQ0NTI5IC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmNwcCAqLzsgfTsKIAkJQTc2RTVGN0YxMzVF
MERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAv
KiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi87IH07CiAJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3OTc5MTMwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi87
IH07CiAJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTE0MEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuaCAqLzsgfTsKQEAgLTExMjMwLDYgKzExMjMyLDcgQEAKIAkJQTcx
ODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1M
TWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2
REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3Mjc2M0JFMTY2ODlCRkIwMDJGQ0FDQiAvKiBVc2VyQWN0aW9uRWxlbWVudFNldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyQWN0aW9uRWxlbWVudFNldC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyog
UmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVmQ291bnRlZFN1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcz
Rjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJvdW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTI0NCw2ICsxMTI0Nyw3IEBACiAJCUE3NUU4Qjg1MEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZFQ29tcG9uZW50VHJhbnNmZXIuaDsgcGF0aCA9IGZpbHRlcnMvRkVDb21w
b25lbnRUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFOEI4NjBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRkVDb21wb3NpdGUuY3BwOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4Qjg3MEUxREUyRDYwMDdG
MjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBG
RUNvbXBvc2l0ZS5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzY5RTk2OTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVs
ZW1lbnRTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckFj
dGlvbkVsZW1lbnRTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzZFNUY3
RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJlZERvY3VtZW50TWFya2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTEzMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5
IC8qIEltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMjI3LDYgKzIyMjMxLDggQEAK
IAkJCQkxNDFCOTRFRTA5RUM0MjVBMDAwRTk0MTMgLyogVUlFdmVudC5pZGwgKi8sCiAJCQkJOTMz
NTRBM0IwQjI0RjhDOTAwM0Y2REVBIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwICovLAogCQkJ
CTg1MDMxQjM5MEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmggKi8sCisJ
CQkJQTc2OUU5NjkxNjY4OUQwQzAwNUQ0NTI5IC8qIFVzZXJBY3Rpb25FbGVtZW50U2V0LmNwcCAq
LywKKwkJCQlBNzI3NjNCRTE2Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQu
aCAqLywKIAkJCQkyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0
b3IuY3BwICovLAogCQkJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5oICovLAogCQkJCUJDREYzMTc5MTFGOEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5n
R2VzdHVyZUluZGljYXRvci5jcHAgKi8sCkBAIC0yNTcwMCw2ICsyNTcwNiw3IEBACiAJCQkJRTRB
RkNGQTUwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQwODZGRTk4MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzI3NjNCRjE2Njg5QkZCMDAyRkNBQ0IgLyogVXNlckFjdGlvbkVsZW1l
bnRTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MUIyMDlEMTRFRTYwMDBFNjFENyAvKiBV
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDAzRjFGRUExMUU2QUI0
MzAwODI1OEQ5IC8qIFVzZXJDb250ZW50VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQUNG
M0JEMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjg4NDAsNiArMjg4NDcsNyBAQAogCQkJCUIyQzNEQTRDMEQwMDZDMUQwMEVGNkYy
NiAvKiBVbmljb2RlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDA4NkZFOTkwOUQ1M0FB
QjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNE
REQxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNzY5RTk2QTE2Njg5RDBDMDA1RDQ1MjkgLyogVXNlckFjdGlvbkVsZW1lbnRTZXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyNjEwOUQxRTE5OTAwMEJFMzI1IC8qIFVzZXJBZ2VudFN0
eWxlU2hlZXRzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FDRjNCQzEwNzI5MjFBMDBD
MEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI1
NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDFkYjQyMmQ0MjE3OTA0
ZDVlZTk0OTFiMTUzMGIxMTY1ZmI0ZjQ0MzQuLjkyOTZhMTlhMWNiOWU0YTQ4MDZmMzQzOWI3ODJj
MjU3NGIxY2E1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTQ0LDYgKzE0
NCw3IEBACiAjaW5jbHVkZSAiVHJlZVdhbGtlci5jcHAiCiAjaW5jbHVkZSAiVUlFdmVudC5jcHAi
CiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAiCisjaW5jbHVkZSAiVXNlckFjdGlv
bkVsZW1lbnRTZXQuY3BwIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCIKICNp
bmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAiCiAjaW5jbHVkZSAiVmlld3Bv
cnRBcmd1bWVudHMuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZGNhNDQ5MzJkNjI4
YWFkNGNkMzRkZDQ3NWMyYmNiYzMzMmZjODYzZC4uNTUxYjRkYWI1MzQwNWMxY2UwYTRlNDVlZDIw
ODU3MWYxYjc2N2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNTksNiArMTU5LDcg
QEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlRyZWVXYWxrZXIuaCIKKyNpbmNsdWRlICJVc2VyQWN0aW9uRWxlbWVudFNldC5oIgog
I2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0dGVybi5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKQEAgLTY5
Miw2ICs2OTMsNyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1f
dGl0bGVFbGVtZW50ID0gMDsKICAgICAgICAgbV9kb2N1bWVudEVsZW1lbnQgPSAwOwogICAgICAg
ICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgpOwor
ICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQg
PSAwOwogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKQEAgLTU3Nzks
NyArNTc4MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiAgICAgICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjdXJyID0gb2xkQWN0aXZlTm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1
cnItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoY3Vyci0+bm9kZSgpICYmICFjdXJyLT5p
c1RleHQoKSkgewogICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0QWN0aXZlKGZhbHNl
KTsKLSAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPmNsZWFySW5BY3RpdmVDaGFpbigpOwor
ICAgICAgICAgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLnNldEluQWN0aXZlQ2hhaW4oY3Vy
ci0+bm9kZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgc2V0
QWN0aXZlTm9kZSgwKTsKQEAgLTU3OTAsNyArNTc5Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0
ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RS
ZXN1CiAgICAgICAgICAgICAvLyB3aWxsIG5lZWQgdG8gcmVmZXJlbmNlIHRoaXMgY2hhaW4uCiAg
ICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IG5ld0FjdGl2ZU5vZGUtPnJlbmRl
cmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAgICAgICAgICAgIGlm
IChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBj
dXJyLT5ub2RlKCktPnNldEluQWN0aXZlQ2hhaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgbV91
c2VyQWN0aW9uRWxlbWVudHMuc2V0SW5BY3RpdmVDaGFpbihjdXJyLT5ub2RlKCksIHRydWUpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0QWN0aXZlTm9kZShuZXdBY3RpdmVOb2RlKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhYjBiNWZjODYwMDlmMWYwZWM0ODRk
NTBmNmRkOGFjMDA2MjNjZGVlLi43YTMxZGJlNDdhNzhmZGNlZjNkZWYxMjFhN2IxNDQwMWE2MTMx
ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlN0
cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlRyZWVT
Y29wZS5oIgorI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAiVmll
d3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYv
Rml4ZWRBcnJheS5oPgpAQCAtNjgyLDYgKzY4Myw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2V0
Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgTm9kZSogZm9jdXNlZE5vZGUoKSBj
b25zdCB7IHJldHVybiBtX2ZvY3VzZWROb2RlLmdldCgpOyB9CisgICAgVXNlckFjdGlvbkVsZW1l
bnRTZXQmIHVzZXJBY3Rpb25FbGVtZW50cygpICB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVtZW50
czsgfQorICAgIGNvbnN0IFVzZXJBY3Rpb25FbGVtZW50U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMo
KSBjb25zdCB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVtZW50czsgfQogCiAgICAgdm9pZCBnZXRG
b2N1c2FibGVOb2RlcyhWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKTsKICAgICAKQEAgLTEzMjcsNiAr
MTMzMCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1faG92ZXJOb2RlOwogICAgIFJl
ZlB0cjxOb2RlPiBtX2FjdGl2ZU5vZGU7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZG9jdW1lbnRF
bGVtZW50OworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0IG1fdXNlckFjdGlvbkVsZW1lbnRzOwog
CiAgICAgdWludDY0X3QgbV9kb21UcmVlVmVyc2lvbjsKICAgICBzdGF0aWMgdWludDY0X3Qgc19n
bG9iYWxUcmVlVmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAzYzQ0NjcyY2RjZDlkZjEzMGY3
NzQ0MjkwYWExZjcxNTZmMTVjODQ3Li42NTRjMTAyOGVhNTcxODA5MjQ5YmQ2OWQxNzQ2YWU0ZjAx
ZjkwNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDAsNiArMTAwLDcgQEAKICNpbmNsdWRlICJU
cmVlU2NvcGVBZG9wdGVyLmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZl
bnRXaXRoS2V5U3RhdGUuaCIKKyNpbmNsdWRlICJVc2VyQWN0aW9uRWxlbWVudFNldC5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2
ZW50LmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRDb250ZXh0LmgiCkBAIC04OTksMTggKzkwMCw2
IEBAIHZvaWQgTm9kZTo6bGF6eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCBzaG91bGRTZXRBdHRh
Y2hlZCkKICAgICBtYXJrQW5jZXN0b3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQog
Ci12b2lkIE5vZGU6OnNldEZvY3VzKGJvb2wgYikKLXsgCi0gICAgaWYgKGIgfHwgaGFzUmFyZURh
dGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEoKS0+c2V0Rm9jdXNlZChiKTsKLX0KLQotYm9v
bCBOb2RlOjpyYXJlRGF0YUZvY3VzZWQoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNSYXJlRGF0
YSgpKTsKLSAgICByZXR1cm4gcmFyZURhdGEoKS0+aXNGb2N1c2VkKCk7Ci19Ci0KIGJvb2wgTm9k
ZTo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYg
cmFyZURhdGEoKS0+dGFiSW5kZXhTZXRFeHBsaWNpdGx5KCk7CkBAIC0xMTYwLDE0ICsxMTQ5LDE0
IEBAIHZvaWQgTm9kZTo6ZGV0YWNoKCkKICAgICBBU1NFUlQoIXJlbmRlcmVyKCkpOwogCiAgICAg
RG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7Ci0gICAgaWYgKGhvdmVyZWQoKSkKLSAgICAgICAg
ZG9jLT5ob3ZlcmVkTm9kZURldGFjaGVkKHRoaXMpOwotICAgIGlmIChpbkFjdGl2ZUNoYWluKCkp
Ci0gICAgICAgIGRvYy0+YWN0aXZlQ2hhaW5Ob2RlRGV0YWNoZWQodGhpcyk7Ci0KLSAgICBjbGVh
ckZsYWcoSXNBY3RpdmVGbGFnKTsKLSAgICBjbGVhckZsYWcoSXNIb3ZlcmVkRmxhZyk7Ci0gICAg
Y2xlYXJGbGFnKEluQWN0aXZlQ2hhaW5GbGFnKTsKKyAgICBpZiAoaXNVc2VyQWN0aW9uRWxlbWVu
dCgpKSB7CisgICAgICAgIGlmIChob3ZlcmVkKCkpCisgICAgICAgICAgICBkb2MtPmhvdmVyZWRO
b2RlRGV0YWNoZWQodGhpcyk7CisgICAgICAgIGlmIChpbkFjdGl2ZUNoYWluKCkpCisgICAgICAg
ICAgICBkb2MtPmFjdGl2ZUNoYWluTm9kZURldGFjaGVkKHRoaXMpOworICAgICAgICBkb2MtPnVz
ZXJBY3Rpb25FbGVtZW50cygpLmRpZERldGFjaCh0aGlzKTsKKyAgICB9CisKICAgICBjbGVhckZs
YWcoSXNBdHRhY2hlZEZsYWcpOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMjY3NSw2ICsyNjY0LDQ4
IEBAIHNpemVfdCBOb2RlOjpudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3QK
ICAgICByZXR1cm4gY291bnQ7CiB9CiAKK3ZvaWQgTm9kZTo6c2V0Rm9jdXMoYm9vbCBmbGFnKQor
eworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAg
ICBkb2N1bWVudC0+dXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0Rm9jdXNlZCh0aGlzLCBmbGFnKTsK
K30KKwordm9pZCBOb2RlOjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sKQoreworICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+
dXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0QWN0aXZlKHRoaXMsIGZsYWcpOworfQorCit2b2lkIE5v
ZGU6OnNldEhvdmVyZWQoYm9vbCBmbGFnKQoreworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+dXNlckFjdGlvbkVsZW1lbnRz
KCkuc2V0SG92ZXJlZCh0aGlzLCBmbGFnKTsKK30KKworYm9vbCBOb2RlOjppc1VzZXJBY3Rpb25F
bGVtZW50QWN0aXZlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNVc2VyQWN0aW9uRWxlbWVudCgp
KTsKKyAgICByZXR1cm4gZG9jdW1lbnQoKS0+dXNlckFjdGlvbkVsZW1lbnRzKCkuaXNBY3RpdmUo
dGhpcyk7Cit9CisKK2Jvb2wgTm9kZTo6aXNVc2VyQWN0aW9uRWxlbWVudEluQWN0aXZlQ2hhaW4o
KSBjb25zdAoreworICAgIEFTU0VSVChpc1VzZXJBY3Rpb25FbGVtZW50KCkpOworICAgIHJldHVy
biBkb2N1bWVudCgpLT51c2VyQWN0aW9uRWxlbWVudHMoKS5pc0luQWN0aXZlQ2hhaW4odGhpcyk7
Cit9CisKK2Jvb2wgTm9kZTo6aXNVc2VyQWN0aW9uRWxlbWVudEhvdmVyZWQoKSBjb25zdAorewor
ICAgIEFTU0VSVChpc1VzZXJBY3Rpb25FbGVtZW50KCkpOworICAgIHJldHVybiBkb2N1bWVudCgp
LT51c2VyQWN0aW9uRWxlbWVudHMoKS5pc0hvdmVyZWQodGhpcyk7Cit9CisKK2Jvb2wgTm9kZTo6
aXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQoKSBjb25zdAoreworICAgIEFTU0VSVChpc1VzZXJB
Y3Rpb25FbGVtZW50KCkpOworICAgIHJldHVybiBkb2N1bWVudCgpLT51c2VyQWN0aW9uRWxlbWVu
dHMoKS5pc0ZvY3VzZWQodGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lm
bmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDU5MWYwZTJiNDliNDZhZjNhMjBjNjg0YjNlYWFj
MzIxZjRhNmQ3Y2IuLmIyOGRlYzEyNzBlNThkYWUzMDQ0MmQ0NDAwZTVhZTU4ZmJmZmJmNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaApAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwogCiB0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hp
ZnQgPSAxNzsKK2NvbnN0IGludCBub2RlU3R5bGVDaGFuZ2VTaGlmdCA9IDE1OwogCiAvLyBTeW50
aGV0aWNTdHlsZUNoYW5nZSBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgZW50
aXJlIHN0eWxlIGNoYW5nZSBsb2dpYyBldmVuIHRob3VnaAogLy8gbm8gc3R5bGUgcHJvcGVydHkg
aGFzIGFjdHVhbGx5IGNoYW5nZWQuIEl0IGlzIHVzZWQgdG8gcmVzdHJ1Y3R1cmUgdGhlIHRyZWUg
d2hlbiwgZm9yIGluc3RhbmNlLApAQCAtMzM5LDEwICszMzksMTQgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzSUQoKSBjb25zdDsKICAgICBib29sIGhhc0NsYXNzKCkgY29uc3Q7CiAKLSAgICBib29s
IGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNBY3RpdmVGbGFnKTsgfQotICAgIGJv
b2wgaW5BY3RpdmVDaGFpbigpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSW5BY3RpdmVDaGFpbkZs
YWcpOyB9Ci0gICAgYm9vbCBob3ZlcmVkKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0hvdmVy
ZWRGbGFnKTsgfQotICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRh
KCkgPyByYXJlRGF0YUZvY3VzZWQoKSA6IGZhbHNlOyB9CisgICAgYm9vbCBpc1VzZXJBY3Rpb25F
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc1VzZXJBY3Rpb25FbGVtZW50KTsgfQor
ICAgIHZvaWQgc2V0VXNlckFjdGlvbkVsZW1lbnQoYm9vbCBmbGFnKSB7IHNldEZsYWcoZmxhZywg
SXNVc2VyQWN0aW9uRWxlbWVudCk7IH0KKworICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIGlzVXNlckFjdGlvbkVsZW1lbnRBY3RpdmUoKTsg
fQorICAgIGJvb2wgaW5BY3RpdmVDaGFpbigpIGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVs
ZW1lbnQoKSAmJiBpc1VzZXJBY3Rpb25FbGVtZW50SW5BY3RpdmVDaGFpbigpOyB9CisgICAgYm9v
bCBob3ZlcmVkKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIGlzVXNl
ckFjdGlvbkVsZW1lbnRIb3ZlcmVkKCk7IH0KKyAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJl
dHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQo
KTsgfQorCiAgICAgYm9vbCBhdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNBdHRh
Y2hlZEZsYWcpOyB9CiAgICAgdm9pZCBzZXRBdHRhY2hlZCgpIHsgc2V0RmxhZyhJc0F0dGFjaGVk
RmxhZyk7IH0KICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiBzdHls
ZUNoYW5nZVR5cGUoKSAhPSBOb1N0eWxlQ2hhbmdlOyB9CkBAIC0zNTUsOSArMzU5LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgeyBzZXRGbGFnKENoaWxk
TmVlZHNTdHlsZVJlY2FsY0ZsYWcpOyB9CiAgICAgdm9pZCBjbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpIHsgY2xlYXJGbGFnKENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcpOyB9CiAKLSAgICB2
b2lkIHNldEluQWN0aXZlQ2hhaW4oKSB7IHNldEZsYWcoSW5BY3RpdmVDaGFpbkZsYWcpOyB9Ci0g
ICAgdm9pZCBjbGVhckluQWN0aXZlQ2hhaW4oKSB7IGNsZWFyRmxhZyhJbkFjdGl2ZUNoYWluRmxh
Zyk7IH0KLQogICAgIHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hh
bmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSk7CiAgICAgdm9pZCBjbGVhck5lZWRzU3R5bGVSZWNh
bGMoKSB7IG1fbm9kZUZsYWdzICY9IH5TdHlsZUNoYW5nZU1hc2s7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVTZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBl
ID0gRnVsbFN0eWxlQ2hhbmdlKSB7IHNldE5lZWRzU3R5bGVSZWNhbGMoY2hhbmdlVHlwZSk7IH0K
QEAgLTM4NSw5ICszODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXp5QXR0YWNoKFNob3VsZFNl
dEF0dGFjaGVkID0gU2V0QXR0YWNoZWQpOwogICAgIHZvaWQgbGF6eVJlYXR0YWNoKFNob3VsZFNl
dEF0dGFjaGVkID0gU2V0QXR0YWNoZWQpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJv
b2wgPSB0cnVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgZiA9IHRydWUsIGJv
b2wgLypwYXVzZSovID0gZmFsc2UpIHsgc2V0RmxhZyhmLCBJc0FjdGl2ZUZsYWcpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCBmID0gdHJ1ZSkgeyBzZXRGbGFnKGYsIElzSG92
ZXJlZEZsYWcpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZmxhZyA9IHRydWUp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmbGFnID0gdHJ1ZSwgYm9vbCBwYXVz
ZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGZsYWcgPSB0cnVl
KTsKIAogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIApAQCAtNjgyLDM3ICs2
ODMsMzUgQEAgcHJpdmF0ZToKICAgICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEg
PDwgNywKICAgICAgICAgSW5Eb2N1bWVudEZsYWcgPSAxIDw8IDgsCiAgICAgICAgIElzTGlua0Zs
YWcgPSAxIDw8IDksCi0gICAgICAgIElzQWN0aXZlRmxhZyA9IDEgPDwgMTAsCi0gICAgICAgIElz
SG92ZXJlZEZsYWcgPSAxIDw8IDExLAotICAgICAgICBJbkFjdGl2ZUNoYWluRmxhZyA9IDEgPDwg
MTIsCi0gICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTMsCi0gICAgICAgIElzRG9jdW1l
bnRGcmFnbWVudEZsYWcgPSAxIDw8IDE0LAorICAgICAgICBJc1VzZXJBY3Rpb25FbGVtZW50ID0g
MSA8PCAxMCwKKyAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMSwKKyAgICAgICAgSXNE
b2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTIsCiAKICAgICAgICAgLy8gVGhlc2UgYml0cyBh
cmUgdXNlZCBieSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1cCBoZXJlIHNvIHRoZXkgY2FuCiAg
ICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1vcnkgd29yZCBhcyB0aGUgTm9kZSBi
aXRzIGFib3ZlLgotICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9IDEgPDwg
MTUsIC8vIEVsZW1lbnQKKyAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAx
IDw8IDEzLCAvLyBFbGVtZW50CiAjaWYgRU5BQkxFKFNWRykKLSAgICAgICAgSGFzU1ZHUmFyZURh
dGFGbGFnID0gMSA8PCAxNiwgLy8gU1ZHRWxlbWVudAorICAgICAgICBIYXNTVkdSYXJlRGF0YUZs
YWcgPSAxIDw8IDE0LCAvLyBTVkdFbGVtZW50CiAjZW5kaWYKIAogICAgICAgICBTdHlsZUNoYW5n
ZU1hc2sgPSAxIDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdl
U2hpZnQgKyAxKSwKIAotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8
PCAxOSwKKyAgICAgICAgU2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMTcsCiAK
LSAgICAgICAgSGFzTmFtZU9ySXNFZGl0aW5nVGV4dEZsYWcgPSAxIDw8IDIwLAorICAgICAgICBI
YXNOYW1lT3JJc0VkaXRpbmdUZXh0RmxhZyA9IDEgPDwgMTgsCiAKLSAgICAgICAgSW5OYW1lZEZs
b3dGbGFnID0gMSA8PCAyMSwKLSAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFn
ID0gMSA8PCAyMiwKLSAgICAgICAgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjMsCi0g
ICAgICAgIEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkRmxhZyA9IDEgPDwgMjQsCi0gICAgICAgIEhh
c0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDI1LAotICAgICAgICBWOENvbGxlY3RhYmxlRHVy
aW5nTWlub3JHQ0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBJc0luc2VydGlvblBvaW50RmxhZyA9
IDEgPDwgMjcsCisgICAgICAgIEluTmFtZWRGbG93RmxhZyA9IDEgPDwgMTksCisgICAgICAgIEhh
c1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzRmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0N1c3Rv
bUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDIxLAorICAgICAgICBIYXNTY29wZWRIVE1MU3R5bGVDaGls
ZEZsYWcgPSAxIDw8IDIyLAorICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAy
MywKKyAgICAgICAgVjhDb2xsZWN0YWJsZUR1cmluZ01pbm9yR0NGbGFnID0gMSA8PCAyNCwKKyAg
ICAgICAgSXNJbnNlcnRpb25Qb2ludEZsYWcgPSAxIDw8IDI1LAogCiAgICAgICAgIERlZmF1bHRO
b2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZwogICAgIH07CiAKLSAgICAv
LyA0IGJpdHMgcmVtYWluaW5nCisgICAgLy8gNiBiaXRzIHJlbWFpbmluZwogCiAgICAgYm9vbCBn
ZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1hc2s7
IH0KICAgICB2b2lkIHNldEZsYWcoYm9vbCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25v
ZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2spOyB9
IApAQCAtNzc1LDYgKzc3NCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVyZXJJc0VkaXRh
YmxlKEVkaXRhYmxlTGV2ZWwsIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgPSBVc2VyU2VsZWN0QWxs
SXNBbHdheXNOb25FZGl0YWJsZSkgY29uc3Q7CiAgICAgYm9vbCBpc0VkaXRhYmxlVG9BY2Nlc3Np
YmlsaXR5KEVkaXRhYmxlTGV2ZWwpIGNvbnN0OwogCisgICAgYm9vbCBpc1VzZXJBY3Rpb25FbGVt
ZW50QWN0aXZlKCkgY29uc3Q7CisgICAgYm9vbCBpc1VzZXJBY3Rpb25FbGVtZW50SW5BY3RpdmVD
aGFpbigpIGNvbnN0OworICAgIGJvb2wgaXNVc2VyQWN0aW9uRWxlbWVudEhvdmVyZWQoKSBjb25z
dDsKKyAgICBib29sIGlzVXNlckFjdGlvbkVsZW1lbnRGb2N1c2VkKCkgY29uc3Q7CisKICAgICB2
b2lkIHNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSk7CiAKICAgICAvLyBVc2VkIHRvIHNo
YXJlIGNvZGUgYmV0d2VlbiBsYXp5QXR0YWNoIGFuZCBzZXROZWVkc1N0eWxlUmVjYWxjLgpAQCAt
Nzg0LDcgKzc4OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKTsKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0ZVJhcmVE
YXRhKCk7Ci0gICAgYm9vbCByYXJlRGF0YUZvY3VzZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
UmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBlZTlmOGJkNTg4ZTNkM2VkZjYwMzk2NGNhYjU2
ODQwMjBjNjE1ZTNkLi5kMjU5MzcxMDdjZThmZDllNzZhOWFlNGMyN2JjYmNiNjA1MzM5ZGRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNTEsNyArMjUxLDYgQEAgcHVibGljOgog
ICAgICAgICAsIG1fdGFiSW5kZXgoMCkKICAgICAgICAgLCBtX2NoaWxkSW5kZXgoMCkKICAgICAg
ICAgLCBtX3RhYkluZGV4V2FzU2V0RXhwbGljaXRseShmYWxzZSkKLSAgICAgICAgLCBtX2lzRm9j
dXNlZChmYWxzZSkKICAgICAgICAgLCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFm
dGVyQXR0YWNoKGZhbHNlKQogICAgICAgICAsIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkoZmFsc2Up
CiAgICAgICAgICwgbV9pc0luQ2FudmFzU3VidHJlZShmYWxzZSkKQEAgLTM2NSwxNiArMzY0LDEy
IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KLSAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2Vk
KSB7IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIHNo
b3J0IG1fdGFiSW5kZXg7CiAgICAgdW5zaWduZWQgc2hvcnQgbV9jaGlsZEluZGV4OwogICAgIGJv
b2wgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkgOiAxOwotICAgIGJvb2wgbV9pc0ZvY3VzZWQg
OiAxOwogICAgIGJvb2wgbV9uZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFj
aCA6IDE7CiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5IDogMTsKICAgICBib29sIG1f
aXNJbkNhbnZhc1N1YnRyZWUgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Vz
ZXJBY3Rpb25FbGVtZW50U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxl
bWVudFNldC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEwZmQ1ZjIxY2Q2OTQ5MjVhNzQyMWQ4MTEwNmExNmEw
NmJjNmU0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9u
RWxlbWVudFNldC5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitVc2VyQWN0aW9uRWxlbWVudFNldDo6VXNlckFjdGlvbkVsZW1lbnRTZXQoKQor
eworfQorCitVc2VyQWN0aW9uRWxlbWVudFNldDo6flVzZXJBY3Rpb25FbGVtZW50U2V0KCkKK3sK
K30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6ZGlkRGV0YWNoKE5vZGUqIG5vZGUpCit7
CisgICAgQVNTRVJUKG5vZGUtPmlzVXNlckFjdGlvbkVsZW1lbnQoKSk7CisgICAgY2xlYXJGbGFn
cyh0b0VsZW1lbnQobm9kZSksIElzQWN0aXZlRmxhZyB8IEluQWN0aXZlQ2hhaW5GbGFnIHwgSXNI
b3ZlcmVkRmxhZyk7Cit9CisKK3ZvaWQgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmRvY3VtZW50RGlk
UmVtb3ZlTGFzdFJlZigpCit7CisgICAgbV9lbGVtZW50cy5jbGVhcigpOworfQorCitib29sIFVz
ZXJBY3Rpb25FbGVtZW50U2V0OjpoYXNGbGFncyhjb25zdCBOb2RlKiBub2RlLCB1bnNpZ25lZCBm
bGFncykgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZS0+aXNVc2VyQWN0aW9uRWxlbWVudCgpICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAgcmV0dXJuIGhhc0ZsYWdzKHRvRWxlbWVudChu
b2RlKSwgZmxhZ3MpOworfQorCit2b2lkIFVzZXJBY3Rpb25FbGVtZW50U2V0OjpzZXRGbGFncyhO
b2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJldHVybiBzZXRGbGFncyh0b0VsZW1lbnQobm9k
ZSksIGZsYWdzKTsKK30KKwordm9pZCBVc2VyQWN0aW9uRWxlbWVudFNldDo6Y2xlYXJGbGFncyhO
b2RlKiBub2RlLCB1bnNpZ25lZCBmbGFncykKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJldHVybiBjbGVhckZsYWdzKHRvRWxlbWVudChu
b2RlKSwgZmxhZ3MpOworfQorCitpbmxpbmUgYm9vbCBVc2VyQWN0aW9uRWxlbWVudFNldDo6aGFz
RmxhZ3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKGVsZW1lbnQtPmlzVXNlckFjdGlvbkVsZW1lbnQoKSk7CisgICAgRWxlbWVudEZs
YWdNYXA6OmNvbnN0X2l0ZXJhdG9yIGZvdW5kID0gbV9lbGVtZW50cy5maW5kKGNvbnN0X2Nhc3Q8
RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBpZiAoZm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmb3VuZC0+dmFsdWUgJiBmbGFnczsK
K30KKworaW5saW5lIHZvaWQgVXNlckFjdGlvbkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MoRWxlbWVu
dCogZWxlbWVudCwgdW5zaWduZWQgZmxhZ3MpCit7CisgICAgaWYgKCFlbGVtZW50LT5pc1VzZXJB
Y3Rpb25FbGVtZW50KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudHMuZW5kKCkgPT0gbV9l
bGVtZW50cy5maW5kKGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVs
ZW1lbnRGbGFnTWFwOjppdGVyYXRvciBmb3VuZCA9IG1fZWxlbWVudHMuZmluZChlbGVtZW50KTsK
KyAgICBpZiAoZm91bmQgPT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAgICBlbGVtZW50LT5z
ZXRVc2VyQWN0aW9uRWxlbWVudChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICB1bnNpZ25lZCB1cGRhdGVkID0gZm91bmQtPnZhbHVlICYgfmZsYWdzOworICAgIGlmICghdXBk
YXRlZCkgeworICAgICAgICBlbGVtZW50LT5zZXRVc2VyQWN0aW9uRWxlbWVudChmYWxzZSk7Cisg
ICAgICAgIG1fZWxlbWVudHMucmVtb3ZlKGZvdW5kKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGZvdW5kLT52YWx1ZSA9IHVwZGF0ZWQ7Cit9CisKK2lubGluZSB2b2lkIFVzZXJBY3Rp
b25FbGVtZW50U2V0OjpzZXRGbGFncyhFbGVtZW50KiBlbGVtZW50LCB1bnNpZ25lZCBmbGFncykK
K3sKKyAgICBFbGVtZW50RmxhZ01hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9lbGVtZW50cy5maW5k
KGVsZW1lbnQpOworICAgIGlmIChyZXN1bHQgIT0gbV9lbGVtZW50cy5lbmQoKSkgeworICAgICAg
ICBBU1NFUlQoZWxlbWVudC0+aXNVc2VyQWN0aW9uRWxlbWVudCgpKTsKKyAgICAgICAgcmVzdWx0
LT52YWx1ZSB8PSBmbGFnczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVsZW1lbnQt
PnNldFVzZXJBY3Rpb25FbGVtZW50KHRydWUpOworICAgIG1fZWxlbWVudHMuYWRkKGVsZW1lbnQs
IGZsYWdzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rp
b25FbGVtZW50U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYTRkNTNmZjBmMTUxODQ1NGRmNTY0Y2VlMTQ4ZjYzZjUxNGQyZDZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0
LmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNlckFjdGlvbkVsZW1lbnRTZXRfaAorI2Rl
ZmluZSBVc2VyQWN0aW9uRWxlbWVudFNldF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBV
c2VyQWN0aW9uRWxlbWVudFNldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8VXNl
ckFjdGlvbkVsZW1lbnRTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBVc2VyQWN0
aW9uRWxlbWVudFNldCgpKTsgfQorCisgICAgYm9vbCBpc0ZvY3VzZWQoY29uc3QgTm9kZSogbm9k
ZSkgeyByZXR1cm4gaGFzRmxhZ3Mobm9kZSwgSXNGb2N1c2VkRmxhZyk7IH0KKyAgICBib29sIGlz
QWN0aXZlKGNvbnN0IE5vZGUqIG5vZGUpIHsgcmV0dXJuIGhhc0ZsYWdzKG5vZGUsIElzQWN0aXZl
RmxhZyk7IH0KKyAgICBib29sIGlzSW5BY3RpdmVDaGFpbihjb25zdCBOb2RlKiBub2RlKSB7IHJl
dHVybiBoYXNGbGFncyhub2RlLCBJbkFjdGl2ZUNoYWluRmxhZyk7IH0KKyAgICBib29sIGlzSG92
ZXJlZChjb25zdCBOb2RlKiBub2RlKSB7IHJldHVybiBoYXNGbGFncyhub2RlLCBJc0hvdmVyZWRG
bGFnKTsgfQorICAgIHZvaWQgc2V0Rm9jdXNlZChOb2RlKiBub2RlLCBib29sIGVuYWJsZSkgeyBz
ZXRGbGFncyhub2RlLCBlbmFibGUsIElzRm9jdXNlZEZsYWcpOyB9CisgICAgdm9pZCBzZXRBY3Rp
dmUoTm9kZSogbm9kZSwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3Mobm9kZSwgZW5hYmxlLCBJc0Fj
dGl2ZUZsYWcpOyB9CisgICAgdm9pZCBzZXRJbkFjdGl2ZUNoYWluKE5vZGUqIG5vZGUsIGJvb2wg
ZW5hYmxlKSB7IHNldEZsYWdzKG5vZGUsIGVuYWJsZSwgSW5BY3RpdmVDaGFpbkZsYWcpOyB9Cisg
ICAgdm9pZCBzZXRIb3ZlcmVkKE5vZGUqIG5vZGUsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKG5v
ZGUsIGVuYWJsZSwgSXNIb3ZlcmVkRmxhZyk7IH0KKworICAgIFVzZXJBY3Rpb25FbGVtZW50U2V0
KCk7CisgICAgflVzZXJBY3Rpb25FbGVtZW50U2V0KCk7CisKKyAgICB2b2lkIGRpZERldGFjaChO
b2RlKik7CisgICAgdm9pZCBkb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKKworcHJpdmF0ZToK
KyAgICBlbnVtIEVsZW1lbnRGbGFncyB7CisgICAgICAgIElzQWN0aXZlRmxhZyAgICAgID0gMSAs
CisgICAgICAgIEluQWN0aXZlQ2hhaW5GbGFnID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVyZWRG
bGFnICAgICA9IDEgPDwgMiwKKyAgICAgICAgSXNGb2N1c2VkRmxhZyAgICAgPSAxIDw8IDMKKyAg
ICB9OworCisgICAgdm9pZCBzZXRGbGFncyhOb2RlKiBub2RlLCBib29sIGVuYWJsZSwgdW5zaWdu
ZWQgZmxhZ3MpIHsgZW5hYmxlID8gc2V0RmxhZ3Mobm9kZSwgZmxhZ3MpIDogY2xlYXJGbGFncyhu
b2RlLCBmbGFncyk7IH0KKyAgICB2b2lkIHNldEZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAg
dm9pZCBjbGVhckZsYWdzKE5vZGUqLCB1bnNpZ25lZCk7CisgICAgYm9vbCBoYXNGbGFncyhjb25z
dCBOb2RlKiwgdW5zaWduZWQgZmxhZ3MpIGNvbnN0OworCisgICAgdm9pZCBzZXRGbGFncyhFbGVt
ZW50KiwgdW5zaWduZWQpOworICAgIHZvaWQgY2xlYXJGbGFncyhFbGVtZW50KiwgdW5zaWduZWQp
OworICAgIGJvb2wgaGFzRmxhZ3MoY29uc3QgRWxlbWVudCosIHVuc2lnbmVkIGZsYWdzKSBjb25z
dDsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RWxlbWVudD4sIHVuc2lnbmVkPiBFbGVt
ZW50RmxhZ01hcDsKKyAgICBFbGVtZW50RmxhZ01hcCBtX2VsZW1lbnRzOworfTsKKworfSAvLyBu
YW1lc3BhY2UKKworI2VuZGlmIC8vIFVzZXJBY3Rpb25FbGVtZW50U2V0X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>