<?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>19489</bug_id>
          
          <creation_ts>2008-06-11 12:34:05 -0700</creation_ts>
          <short_desc>selectstart is fired for every mouse move</short_desc>
          <delta_ts>2011-05-23 16:37:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>60424</blocked>
    
    <blocked>61319</blocked>
    
    <blocked>61320</blocked>
    
    <blocked>61322</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anantha Keesara">anantha</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82990</commentid>
    <comment_count>0</comment_count>
    <who name="Anantha Keesara">anantha</who>
    <bug_when>2008-06-11 12:34:05 -0700</bug_when>
    <thetext>I. Steps:
 -----------
 
 1. Launch Safari
 
 2. Launch the testcase
 
 3. Select text by left_click and dragging the mouse.
 
 
 
 II. Issue:
 -----------------
 body.onselectstart should be fired only once for each selection. It should be fired (once) as soon as the user starts selection.
 
 However, Safari fires it many times for every charecter selected during selection.
 
 
 
 
 III. Other browsers:
 -----------------------
 IE7 : Ok
 FF3 : doesn&apos;t support it 
 Opera 9.27: doesn&apos;t support it 
 
 
 IV. Safari nightly tested: version 3.1.1(525.17 )- r34278.
 
 Not working properly on Safari.
 
 
 
 V. Safari screenshot : Avalible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82991</commentid>
    <comment_count>1</comment_count>
      <attachid>21630</attachid>
    <who name="Anantha Keesara">anantha</who>
    <bug_when>2008-06-11 12:34:07 -0700</bug_when>
    <thetext>Created attachment 21630
Screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83017</commentid>
    <comment_count>2</comment_count>
      <attachid>21640</attachid>
    <who name="Anantha Keesara">anantha</who>
    <bug_when>2008-06-11 13:12:09 -0700</bug_when>
    <thetext>Created attachment 21640
reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401054</commentid>
    <comment_count>3</comment_count>
      <attachid>92919</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-09 22:20:26 -0700</bug_when>
    <thetext>Created attachment 92919
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401224</commentid>
    <comment_count>4</comment_count>
      <attachid>92919</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 08:43:46 -0700</bug_when>
    <thetext>Comment on attachment 92919
fixes the bug

Oops, this patch is missing some tests.  Will upload a new patch today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401295</commentid>
    <comment_count>5</comment_count>
      <attachid>92973</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 10:25:18 -0700</bug_when>
    <thetext>Created attachment 92973
Added the forgotten tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401833</commentid>
    <comment_count>6</comment_count>
      <attachid>92973</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-11 01:11:21 -0700</bug_when>
    <thetext>Comment on attachment 92973
Added the forgotten tests

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

In my understanding, old code didn&apos;t fire the event for double and triple click, but new one does. Is that right?
If so, we could separate patch to, one for fixing this bug, another for handle double and triple click case.

&gt; LayoutTests/fast/events/selectstart-by-double-triple-clicks-expected.txt:11
&gt; +&quot;

Are these failures intentional?

&gt; Source/WebCore/page/EventHandler.cpp:279
&gt; +}

It looks a bit weird that shouldSomething()  has a side effect (dispatching event), I know some existing codebase does similar though.
I personally don&apos;t like give canXxx side-effect, but at least it seems a existing convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401850</commentid>
    <comment_count>7</comment_count>
      <attachid>92973</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-11 01:40:59 -0700</bug_when>
    <thetext>Comment on attachment 92973
Added the forgotten tests

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

&gt;&gt; LayoutTests/fast/events/selectstart-by-double-triple-clicks-expected.txt:11
&gt;&gt; +&quot;
&gt; 
&gt; Are these failures intentional?

No. This is odd.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:279
&gt;&gt; +}
&gt; 
&gt; It looks a bit weird that shouldSomething()  has a side effect (dispatching event), I know some existing codebase does similar though.
&gt; I personally don&apos;t like give canXxx side-effect, but at least it seems a existing convention.

This is a convention used throughout WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401852</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-11 01:42:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; In my understanding, old code didn&apos;t fire the event for double and triple click, but new one does. Is that right?

It did fire in canMouseDownStartSelect.

&gt; If so, we could separate patch to, one for fixing this bug, another for handle double and triple click case.

So no, we cannot split this patch into multiple pieces as it would introduce a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401858</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-11 02:00:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; In my understanding, old code didn&apos;t fire the event for double and triple click, but new one does. Is that right?
&gt; 
&gt; It did fire in canMouseDownStartSelect.
&gt; 
&gt; &gt; If so, we could separate patch to, one for fixing this bug, another for handle double and triple click case.
&gt; 
&gt; So no, we cannot split this patch into multiple pieces as it would introduce a regression.
Oh I see. Thank you for the explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401909</commentid>
    <comment_count>10</comment_count>
      <attachid>93106</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-11 04:54:25 -0700</bug_when>
    <thetext>Created attachment 93106
fixed a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403982</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 17:22:36 -0700</bug_when>
    <thetext>Eric, could you review the new patch again?  The one you r+ was totally out of date due to a bug being fixed and datagrid being removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403983</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 17:23:06 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Eric, could you review the new patch again?  The one you r+ was totally out of date due to a bug being fixed and datagrid being removed.

Oops, please ignore me.  This was a comment for the bug 53564.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404676</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-16 13:27:36 -0700</bug_when>
    <thetext>Could anyone review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407223</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-20 11:26:42 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408077</commentid>
    <comment_count>15</comment_count>
      <attachid>93106</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-23 11:00:05 -0700</bug_when>
    <thetext>Comment on attachment 93106
fixed a test

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

I&apos;m going to say r+, since this fixes the bug, and the code has never been great to start with - but I think that the code becomes somewhat more confusing after this patch.

&gt; LayoutTests/fast/events/selectstart-by-double-triple-clicks.html:29
&gt; +    document.write(&apos;This test requires eventSender&apos;);

A person opening the test in browser will not necessarily know what eventSender is.

&gt; LayoutTests/fast/events/selectstart-by-drag.html:5
&gt; +&lt;/p&gt;&lt;span style=&apos;font-size: 50px; padding: 10px;&apos; contenteditable&gt;hello

I see that some of the tests use contenteditable, and some don&apos;t. Is there some system behind this, or just randomness to slightly increase coverage? FWIW, I don&apos;t have a problem with the latter.

&gt; Source/WebCore/ChangeLog:24
&gt; +        Test: fast/events/selectstart-by-double-triple-clicks.html
&gt; +              fast/events/selectstart-by-drag.html
&gt; +              fast/events/selectstart-by-single-click-with-shift.html

A quick Web search reveals that in IE, the event is also dispatched when &quot;changing the selection by script (through the selection object or with the select method)&quot;. Do we implement this, do we want this, and do we already test for this?

&gt; Source/WebCore/page/EventHandler.cpp:273
&gt; +static inline bool shouldStartSelection(Node* node)

This name seems very misleading for a function that dispatches a DOM event.

Besides hiding the fact that arbitrary changes can happen here, it&apos;s more like a &quot;can&quot; or &quot;may&quot; function - yet there is already Node::canStartSelection().

&gt; Source/WebCore/page/EventHandler.cpp:291
&gt; +    if (newSelection.isRange())
&gt; +        m_selectionInitiationState = ExtendedSelection;
&gt; +    else {
&gt; +        granularity = CharacterGranularity;
&gt; +        m_selectionInitiationState = PlacedCaret;
&gt; +    }

The logic here is surprising in two ways:
1. If I extend the selection first by moving the mouse, and then move it back to original point, EventHandler apparently returns to PlacedCaret state. If the code doesn&apos;t care about state transitions, why does it differentiate between ExtendedSelection and PlacedCaret in m_selectionInitiationState? We could just look at current selection for the answer.
2. Is PlacedCaret also used when there is no caret (i.e. in non-editable text)?

&gt; Source/WebCore/page/EventHandler.cpp:313
&gt; -        setNonDirectionalSelectionIfNeeded(m_frame-&gt;selection(), newSelection, granularity);
&gt; +        if (newSelection.isRange() &amp;&amp; result.event().clickCount() == 2 &amp;&amp; m_frame-&gt;editor()-&gt;isSelectTrailingWhitespaceEnabled()) 
&gt; +            newSelection.appendTrailingWhitespace();
&gt; +
&gt; +        setSelectionIfPossible(innerNode, newSelection, WordGranularity);

Previously, the code used either character or word granularity, but now it always uses word. Why is that OK?

&gt; Source/WebCore/page/EventHandler.cpp:331
&gt; -        setNonDirectionalSelectionIfNeeded(m_frame-&gt;selection(), newSelection, granularity);
&gt; +        setSelectionIfPossible(innerNode, newSelection, WordGranularity);

Ditto.

&gt; Source/WebCore/page/EventHandler.cpp:369
&gt; +    return setSelectionIfPossible(innerNode, newSelection, ParagraphGranularity);

Again, this used to do CharacterGranularity sometimes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408193</commentid>
    <comment_count>16</comment_count>
      <attachid>93106</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-23 13:10:14 -0700</bug_when>
    <thetext>Comment on attachment 93106
fixed a test

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:273
&gt;&gt; +static inline bool shouldStartSelection(Node* node)
&gt; 
&gt; This name seems very misleading for a function that dispatches a DOM event.
&gt; 
&gt; Besides hiding the fact that arbitrary changes can happen here, it&apos;s more like a &quot;can&quot; or &quot;may&quot; function - yet there is already Node::canStartSelection().

Will rename to dispatchSelectStart.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:291
&gt;&gt; +    }
&gt; 
&gt; The logic here is surprising in two ways:
&gt; 1. If I extend the selection first by moving the mouse, and then move it back to original point, EventHandler apparently returns to PlacedCaret state. If the code doesn&apos;t care about state transitions, why does it differentiate between ExtendedSelection and PlacedCaret in m_selectionInitiationState? We could just look at current selection for the answer.
&gt; 2. Is PlacedCaret also used when there is no caret (i.e. in non-editable text)?

1. setSelectionIfPossible is NOT used for mouse drag, so this isn&apos;t a problem.  Maybe we&apos;ll need to give a better name here?
2. Yes. We do set collapsed selection in non-editable region despite it being invisible to users.  I&apos;m not sure if that&apos;s a bug or not.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:313
&gt;&gt; +        setSelectionIfPossible(innerNode, newSelection, WordGranularity);
&gt; 
&gt; Previously, the code used either character or word granularity, but now it always uses word. Why is that OK?

The code use to use CharacterGranularity whenever newSelection is not range and setSelectionIfPossible does that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408226</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-23 13:40:49 -0700</bug_when>
    <thetext>I&apos;m renaming setSelectionIfPossible to updateSelectionForMouseDownDispatchingSelectStart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408247</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-23 13:49:43 -0700</bug_when>
    <thetext>Committed r87096: &lt;http://trac.webkit.org/changeset/87096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408252</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-23 13:53:48 -0700</bug_when>
    <thetext>Thanks for the review, Alexey!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21630</attachid>
            <date>2008-06-11 12:34:07 -0700</date>
            <delta_ts>2008-06-11 12:34:07 -0700</delta_ts>
            <desc>Screenshot</desc>
            <filename>ss.PNG</filename>
            <type>image/png</type>
            <size>48662</size>
            <attacher name="Anantha Keesara">anantha</attacher>
            
              <data encoding="base64">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
QICsosYxCCCAAAIIIIAAAggggEADBQiQDZx0howAAggggAACCCCAAAIIVBEgQFZR4xgEEEAAAQQQ
QAABBBBAoIECBMgGTjpDRgABBBBAAAEEEEAAAQSqCBAgq6hxDAIIIIAAAggggAACCCDQQAECZAMn
nSEjgAACCCCAAAIIIIAAAlUECJBV1DgGAQQQQAABBBBAAAEEEGigAAGygZPOkBFAAAEEEEAAAQQQ
QACBKgIEyCpqHIMAAggggAACCCCAAAIINFCAANnASWfICCCAAAIIIIAAAggggEAVAQJkFTWOQQAB
BBBAAAEEEEAAAQQaKECAbOCkM2QEEEAAAQQQQAABBBBAoIoAAbKKGscggAACCCCAAAIIIIAAAg0U
IEA2cNIZMgIIIIAAAggggAACCCBQRYAAWUWNYxBAAAEEEEAAAQQQQACBBgoQIBs46QwZAQQQQAAB
BBBAAAEEEKgiQICsosYxCCCAAAIIIIAAAggggEADBQiQDZx0howAAggggAACCCCAAAIIVBEgQFZR
4xgEEEAAAQQQQAABBBBAoIECBMgGTjpDRgABBBBAAAEEEEAAAQSqCBAgq6hxDAIIIIAAAggggAAC
CCDQQAECZAMnnSEjgAACCCCAAAIIIIAAAlUECJBV1DgGAQQQQAABBBBAAAEEEGigAAGygZPOkBFA
AAEEEEAAAQQQQACBKgIEyCpqHIMAAggggAACCCCAAAIINFCAANnASWfICCCAAAIIIIAAAggggEAV
AQJkFTWOQQABBBBAAAEEEEAAAQQaKECAbOCkM2QEEEAAAQQQQAABBBBAoIoAAbKKGscggAACCCCA
AAIIIIAAAg0UIEA2cNIZMgIIIIAAAggggAACCCBQRYAAWUWNYxBAAAEEEEAAAQQQQACBBgoQIBs4
6QwZAQQQQAABBBBAAAEEEKgiQICsosYxCCCAAAIIIIAAAggggEADBQiQDZx0howAAggggAACCCCA
AAIIVBEgQFZR4xgEEEAAAQQQQAABBBBAoIECBMgGTjpDRgABBBBAAAEEEEAAAQSqCBAgq6hxDAII
IIAAAggggAACCCDQQAECZAMnnSEjgAACCCCAAAIIIIAAAlUECJBV1DgGAQQQQAABBBBAAAEEEGig
AAGygZPOkBFAAAEEEEAAAQQQQACBKgIEyCpqHIMAAggggAACCCCAAAIINFCAANnASWfICCCAAAII
IIAAAggggEAVAQJkFTWOQQABBBBAAAEEEEAAAQQaKECAbOCkM2QEEEAAAQQQQAABBBBAoIoAAbKK
GscggAACCCCAAAIIIIAAAg0UIEA2cNIZMgIIIIAAAggggAACCCBQRYAAWUWNYxBAAAEEEEAAAQQQ
QACBBgoQIBs46QwZAQQQQAABBBBAAAEEEKgiQICsosYxCCCAAAIIIIAAAggggEADBQiQDZx0howA
AggggAACCCCAAAIIVBEgQFZR4xgEEEAAAQQQQAABBBBAoIECBMgGTjpDRgABBBBAAAEEEEAAAQSq
CBAgq6hxDAIIIIAAAggggAACCCDQQAECZAMnnSEjgAACCCCAAAIIIIAAAlUECJBV1DgGAQQQQAAB
BBBAAAEEEGigAAGygZPOkBFAAAEEEEAAAQQQQACBKgIEyCpqHIMAAggggAACCCCAAAIINFCAANnA
SWfICCCAAAIIIIAAAggggEAVAQJkFTWOQQABBBBAAAEEEEAAAQQaKECAbOCkM2QEEEAAAQQQQAAB
BBBAoIoAAbKKGscggAACCCCAAAIIIIAAAg0UIEA2cNIZMgIIIIAAAggggAACCCBQRYAAWUWNYxBA
AAEEEEAAAQQQQACBBgoQIBs46QwZAQQQQAABBBBAAAEEEKgiQICsosYxCCCAAAIIIIAAAggggEAD
BQiQDZx0howAAggggAACCCCAAAIIVBEgQFZR4xgEEEAAAQQQQAABBBBAoIECBMgGTjpDRgABBBBA
AAEEEEAAAQSqCBAgq6hxDAIIIIAAAggggAACCCDQQAECZAMnnSEjgAACCCCAAAIIIIAAAlUECJBV
1DgGAQQQQAABBBBAAAEEEGigAAGygZPOkBFAAAEEEEAAAQQQQACBKgIEyCpqHIMAAggggAACCCCA
AAIINFCAANnASWfICCCAAAIIIIAAAggggEAVAQJkFTWOQQABBBBAAAEEEEAAAQQaKECAbOCkM2QE
EEAAAQQQQAABBBBAoIoAAbKKGscggAACCCCAAAIIIIAAAg0UIEA2cNIZMgIIIIAAAggggAACCCBQ
RYAAWUWNYxBAAAEEEEAAAQQQQACBBgoQIBs46QwZAQQQQAABBBBAAAEEEKgiQICsosYxCCCAAAII
IIAAAggggEADBQiQDZx0howAAggggAACCCCAAAIIVBEgQFZR4xgEEEAAAQQQQAABBBBAoIECBMgG
TjpDRgABBBBAAAEEEEAAAQSqCBAgq6hxDAIIIIAAAggggAACCCDQQAECZAMnnSEjgAACCCCAAAII
IIAAAlUECJBV1DgGAQQQQAABBBBAAAEEEGigAAGygZPOkBFAAAEEEEAAAQQQQACBKgIEyCpqHIMA
AggggAACCCCAAAIINFCAANnASWfICCCAAAIIIIAAAggggEAVAQJkFTWOQQABBBBAAAEEEEAAAQQa
KECAbOCkM2QEEEAAAQQQQAABBBBAoIoAAbKKGscggAACCCCAAAIIIIAAAg0UIEA2cNIZMgIIIIAA
AggggAACCCBQRYAAWUWNYxBAAAEEEEAAAQQQQACBBgoQIBs46QwZAQQQQAABBBBAAAEEEKgiQICs
osYxCCCAAAIIIIAAAggggEADBf4XH1BB5m32A+AAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21640</attachid>
            <date>2008-06-11 13:12:09 -0700</date>
            <delta_ts>2008-06-11 13:12:09 -0700</delta_ts>
            <desc>reduction</desc>
            <filename>select_start.html</filename>
            <type>text/html</type>
            <size>1095</size>
            <attacher name="Anantha Keesara">anantha</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQoNCiAgICA8dGl0bGU+PC90aXRsZT4NCgkNCgkNCjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmZ1bmN0aW9uIHNlbGVjdFN0YXJ0KCl7DQog
ICAgdmFyIGRpdl9pZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHREaXYnKTsNCiAg
ICBkaXZfaWQuaW5uZXJIVE1MICs9ICAiU2VsZWN0U3RhcnQ8YnIvPiI7DQoJCQkNCiAgICAvL3Zh
ciBvYmpJRCA9IGV2ZW50LnNyY0VsZW1lbnQuaWQ7DQogICAgLy9kaXZfaWQuaW5uZXJIVE1MICs9
ID0gIlNlbGVjdGlvbiBzdGFydGVkIHdpdGggb2JqZWN0OiAiICsgb2JqSUQ7DQp9DQoNCjwvc2Ny
aXB0Pg0KDQo8L2hlYWQ+PGJvZHkgaWQ9Im15Qm9keSIgb25zZWxlY3RzdGFydD0iamF2YXNjcmlw
dDpzZWxlY3RTdGFydCgpIj4NCjxoMSBpZD0ibXlIMSI+b25TZWxlY3RTdGFydCBFdmVudCBIYW5k
bGVyPC9oMT4NCjxociBpZD0ibXlIUiI+DQo8cCBpZD0ibXlQIj5UaGlzIGlzIGEgc2FtcGxlIHBh
cmFncmFwaC48L3A+DQo8dGFibGUgYm9yZGVyPSIxIj4NCjx0Ym9keT48dHIgaWQ9InJvdzEiPg0K
ICAgIDx0aCBpZD0iaGVhZGVyMSI+Q29sdW1uIEE8L3RoPg0KICAgIDx0aCBpZD0iaGVhZGVyMiI+
Q29sdW1uIEI8L3RoPg0KICAgIDx0aCBpZD0iaGVhZGVyMyI+Q29sdW1uIEM8L3RoPg0KPC90cj4N
Cjx0ciBpZD0icm93MiI+DQogICAgPHRkIGlkPSJjZWxsQTIiPnRleHQ8L3RkPg0KICAgIDx0ZCBp
ZD0iY2VsbEIyIj50ZXh0PC90ZD4NCiAgICA8dGQgaWQ9ImNlbGxDMiI+dGV4dDwvdGQ+DQo8L3Ry
Pg0KPHRyIGlkPSJyb3czIj4NCiAgICA8dGQgaWQ9ImNlbGxBMyI+dGV4dDwvdGQ+DQogICAgPHRk
IGlkPSJjZWxsQjMiPnRleHQ8L3RkPg0KICAgIDx0ZCBpZD0iY2VsbEMzIj50ZXh0PC90ZD4NCjwv
dHI+DQo8L3Rib2R5PjwvdGFibGU+DQoNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjPGJyPg0KPGRpdiBpZD0icmVzdWx0RGl2Ij4gPC9kaXY+DQoNCjwv
Ym9keT48L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92919</attachid>
            <date>2011-05-09 22:20:26 -0700</date>
            <delta_ts>2011-05-10 08:43:46 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-19489-20110509222025.patch</filename>
            <type>text/plain</type>
            <size>19655</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYwNjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYWRlZmJjMDNkNjE4NzVhOGQwYzc2
M2ExNDg5ZTQ3ZTU2OGYzMmZmLi42NmZiNjNiZjkyZjQ3ZTYxMmU3YThhYTY0NWZhZGIyYmU3Y2I1
ZDQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDUtMDkgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZm9yIGV2ZXJ5IG1vdXNlIG1vdmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg5CisKKyAgICAg
ICAgQWRkZWQgYSB0ZXN0IHRvIGVuc3VyZSBzZWxlY3RzdGFydCBpcyBkaXNwYXRjaGVzIGV4YWN0
bHkgb25jZSB3aGVuIHNlbGVjdGluZyB0ZXh0IGJ5IGEgbW91c2UgZHJhZy4KKyAgICAgICAgQWxz
byByZWJhc2VsaW5lZCBhIHRlc3QgdGhhdCBwcmV2aW91c2x5IGxvZ2dlZCBleHRyYSBzZWxlY3Rz
dGFydCBkaXNwYXRjaGVzLgorCisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnkt
ZHJhZy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWR1cmluZy1hdXRv
c2Nyb2xsLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL29iamMtZXZl
bnQtYXBpLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wNS0wOCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVy
bm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyY2EzZGVjNTMwNjFiNDUwNmIzMzQzNmRmZmY2NzM2NTcw
NmFmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3Rz
dGFydC1ieS1kcmFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3QgZW5z
dXJlcyBzZWxlY3RzdGFydCBpcyBmaXJlZCBleGFjdGx5IG9uY2Ugd2hlbiBzZWxlY3RpbmcgdGV4
dCBieSBhIG1vdXNlIGRyYWcuCisKK0luaXRpYWwgc3RhdGU6IFBBU1MKK01vdXNlIGRvd246IFBB
U1MKK01vdmluZyBzbGlnaHRseSB0byB0aGUgcmlnaHQ6IFBBU1MKK01vdmluZyBzbGlnaHRseSB0
byB0aGUgbGVmdDogUEFTUworTW92aW5nIHRvIHRoZSByaWdodDogUEFTUworTW92aW5nIGZ1cnRo
ZXIgdG8gdGhlIHJpZ2h0OiBQQVNTCitNb3ZpbmcgYmFjayB0byB0aGUgbGVmdDogUEFTUworTW92
aW5nIHRvIHRoZSByaWdodCBhZ2FpbjogUEFTUworTW91c2UgZG93biBvbiB0aGUgcmlnaHQ6IFBB
U1MKK01vdmluZyB0byB0aGUgbGVmdDogUEFTUworRG9uZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlYmFmNWE2
MDczYTA4MTgxODk4MjJkY2U4ZmVjODNlMjljYWE0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwKQEAgLTAsMCArMSw4
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3Vy
ZXMgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZXhhY3RseSBvbmNlIHdoZW4gc2VsZWN0aW5nIHRleHQg
YnkgYSBtb3VzZSBkcmFnLgorPC9wPjxzcGFuIHN0eWxlPSdmb250LXNpemU6IDUwcHg7IHBhZGRp
bmc6IDEwcHg7JyBjb250ZW50ZWRpdGFibGU+aGVsbG8KKzwvc3Bhbj48cHJlPjxzY3JpcHQ+CisK
K3ZhciBzcGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVswXTsKK3Nw
YW4uZm9jdXMoKTsKKworZnVuY3Rpb24gZXhwZWN0KHRpdGxlLCBleHBlY3RlZENvdW50LCBleHBl
Y3RlZFR5cGUpIHsKKyAgICBkb2N1bWVudC53cml0ZSh0aXRsZSArICc6ICcpOworICAgIHZhciBh
Y3R1YWxTZWxlY3Rpb25UeXBlID0gd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkID8g
J2NhcmV0JyA6ICdyYW5nZSc7CisKKyAgICBpZiAoc2VsZWN0U3RhcnRDb3VudCAhPSBleHBlY3Rl
ZENvdW50KQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdGQUlMIC0gZXhwZWN0ZWQgJyArIGV4
cGVjdGVkQ291bnQgKyAnIGV2ZW50cyBidXQgZ290ICcgKyBzZWxlY3RTdGFydENvdW50ICsgJyBl
dmVudHMnKTsKKyAgICBlbHNlIGlmIChhY3R1YWxTZWxlY3Rpb25UeXBlICE9IGV4cGVjdGVkVHlw
ZSkKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbignRkFJTCAtIGV4cGVjdGVkIHNlbGVjdGlvbiB0
byBiZSAnICsgZXhwZWN0ZWRUeXBlICsgJyBidXQgd2FzICcgKyBhY3R1YWxTZWxlY3Rpb25UeXBl
KTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJ1BBU1MnKTsKK30KKworaWYg
KCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5ldmVudFNlbmRlcikKKyAg
ICBkb2N1bWVudC53cml0ZSgnVGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50U2VuZGVyJyk7CitlbHNl
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgc2Vs
ZWN0U3RhcnRDb3VudCA9IDA7CisgICAgc3Bhbi5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RzdGFy
dCcsIGZ1bmN0aW9uIChldmVudCkgeyBzZWxlY3RTdGFydENvdW50Kys7IH0pOworCisgICAgdmFy
IHkgPSBzcGFuLm9mZnNldFRvcCArIHNwYW4ub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGZ1bmN0
aW9uIGxlYXBGb3J3YXJkQW5kTW92ZSh4KSB7CisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDIwMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVm
dCArIHgsIHkpOworICAgIH0KKworICAgIGV4cGVjdCgnSW5pdGlhbCBzdGF0ZScsIDAsICdjYXJl
dCcpOworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oc3Bhbi5vZmZzZXRMZWZ0ICsgNSwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgZXhwZWN0KCdNb3VzZSBkb3duJywgMSwgJ2NhcmV0Jyk7CisKKyAgICBs
ZWFwRm9yd2FyZEFuZE1vdmUoNSk7CisgICAgZXhwZWN0KCdNb3Zpbmcgc2xpZ2h0bHkgdG8gdGhl
IHJpZ2h0JywgMSwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoLTUpOworICAg
IGV4cGVjdCgnTW92aW5nIHNsaWdodGx5IHRvIHRoZSBsZWZ0JywgMSwgJ2NhcmV0Jyk7CisKKyAg
ICBsZWFwRm9yd2FyZEFuZE1vdmUoc3Bhbi5vZmZzZXRXaWR0aCAvIDIpOworICAgIGV4cGVjdCgn
TW92aW5nIHRvIHRoZSByaWdodCcsIDEsICdyYW5nZScpOworCisgICAgbGVhcEZvcndhcmRBbmRN
b3ZlKHNwYW4ub2Zmc2V0V2lkdGgpOworICAgIGV4cGVjdCgnTW92aW5nIGZ1cnRoZXIgdG8gdGhl
IHJpZ2h0JywgMSwgJ3JhbmdlJyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoMCk7CisgICAg
ZXhwZWN0KCdNb3ZpbmcgYmFjayB0byB0aGUgbGVmdCcsIDEsICdjYXJldCcpOworCisgICAgbGVh
cEZvcndhcmRBbmRNb3ZlKHNwYW4ub2Zmc2V0V2lkdGgpOworICAgIGV4cGVjdCgnTW92aW5nIHRv
IHRoZSByaWdodCBhZ2FpbicsIDEsICdyYW5nZScpOworCisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihzcGFuLCAwKTsKKyAg
ICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIHNwYW4ub2Zmc2V0V2lkdGggLSA1LCB5KTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBleHBlY3QoJ01vdXNlIGRvd24gb24gdGhlIHJp
Z2h0JywgMiwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoc3Bhbi5vZmZzZXRX
aWR0aCAvIDIpOworICAgIGV4cGVjdCgnTW92aW5nIHRvIHRoZSBsZWZ0JywgMiwgJ3JhbmdlJyk7
CisKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICBkb2N1bWVudC53cml0ZWxuKCdE
b25lLicpOworICAgIHNwYW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzcGFuKTsKK30KKworPC9z
Y3JpcHQ+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvb2JqYy1ldmVudC1hcGktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL29iamMtZXZlbnQtYXBpLWV4cGVjdGVk
LnR4dAppbmRleCA1YTE3ZmVmOTgyMTFmOWZlYzgxY2I1OGI0NGFlYjg3ODMwNjY1MzI0Li5jMzUz
NDRkYWEyZmEwMTIzMDE2MzFkNTMxNDZmNDA2OGM2YWJjNzAwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvb2JqYy1ldmVudC1hcGktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9vYmpjLWV2ZW50LWFw
aS1leHBlY3RlZC50eHQKQEAgLTM0MSwxMSArMzQxLDYgQEAgZXZlbnQgdHlwZTogICAgICBtb3Vz
ZW1vdmUKICAgc2NyZWVuWDogICAgICAgLTk5OTkKICAgc2NyZWVuWTogICAgICAgLTk5OTkKICAg
bW9kaWZpZXIga2V5czogYzowIHM6MCBhOjAgbTowCi1ldmVudCB0eXBlOiAgICAgIHNlbGVjdHN0
YXJ0Ci0gIHRhcmdldDogICAgICAgIDxodG1sPgotICBldmVudFBoYXNlOiAgICAzCi0gIGJ1YmJs
ZXM6ICAgICAgIDEKLSAgY2FuY2VsYWJsZTogICAgMQogZXZlbnQgdHlwZTogICAgICBtb3VzZXVw
CiAgIHRhcmdldDogICAgICAgIDxodG1sPgogICBldmVudFBoYXNlOiAgICAzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggY2FkNmMyYjk4NzE2OTJhMTc0MGZkMjA0OWQzZDBlNTI3ZTQ4NjU5OC4uN2UwY2U3NGI0MTkx
NWQ3MzFjOGIzN2M3ZGQ5NmVjMWRiOGVjNzMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBA
CisyMDExLTA1LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNlbGVjdHN0YXJ0IGlzIGZp
cmVkIGZvciBldmVyeSBtb3VzZSBtb3ZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTQ4OQorCisgICAgICAgIEZpeGVkIHRoZSBidWcgYnkgZGlzcGF0
Y2ggc2VsZWN0c3RhcnQgZXZlbnQgaW1tZWRpYXRlbHkgYmVmb3JlIG1vZGlmeWluZyBzZWxlY3Rp
b24gaW4KKyAgICAgICAgaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2sgYW5kIHVwZGF0
ZVNlbGVjdGlvbkZvck1vdXNlRHJhZy4KKworICAgICAgICBBbHNvIHJlcGxhY2VkIGEgYm9vbGVh
biBFdmVudEhhbmRsZXI6Om1fYmVnYW5TZWxlY3RpbmdUZXh0IGJ5IGFuIGVudW0tdmFsdWVkIG1f
c2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlCisgICAgICAgIHRvIHJldGFpbiAzIHN0YXRlczoKKyAg
ICAgICAgMS4gSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gLSBTZWxlY3Rpb24gaGFzIG5vdCBiZWVu
IHNldCBieSBhIG1vdXNlIGRyYWcgb3IgYSBtb3VzZSBjbGljaworICAgICAgICAyLiBQbGFjZWRD
YXJldCAtIEEgY2FyZXQgd2FzIHBsYWNlZCBieSBhIG1vdXNlIGNsaWNrLCBkb3VibGUgY2xpY2ss
IG9yIHRyaXBsZSBjbGljaywgYW5kIGlzIGFib3V0CisgICAgICAgIHRvIHJlcGxhY2Ugc2VsZWN0
aW9uIGlmIGEgbW91c2UgZHJhZyBuZXZlciBvY2N1cnMuCisgICAgICAgIDMuIEV4dGVuZGVkU2Vs
ZWN0aW9uIC0gQSByYW5nZSBzZWxlY3Rpb24gd2FzIHNldCBieSBhIG1vdXNlIGNsaWNrLCBhIGRv
dWJsZSBjbGljaywgYSB0cmlwbGUgY2xpY2ssCisgICAgICAgIG9yIGEgbW91c2UgZHJhZzsgb3Ro
ZXJ3aXNlIGEgY2FyZXQgc2VsZWN0aW9uIHdhcyBzZXQgYnkgYSBtb3VzZSBkcmFnLgorCisgICAg
ICAgIFN0YXRlIDEgY29ycmVzcG9uZHMgdG8gbV9iZWdhblNlbGVjdGluZ1RleHQgYmVpbmcgZmFs
c2UgYW5kIHN0YXRlIDMgY29ycmVzcG9uZHMgdG8gbV9iZWdhblNlbGVjdGluZ1RleHQKKyAgICAg
ICAgYmVpbmcgdHJ1ZS4gU3RhdGUgMiBpcyB1c2VkIGluIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNl
RHJhZyB0byBhdm9pZCBkaXNwYXRjaGluZyBzZWxlY3RzdGFydCB0d2ljZS4KKworICAgICAgICBU
ZXN0OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDogUmVtb3ZlZCBjYW5Nb3VzZURyYWdFeHRl
bmRTZWxlY3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6
IEluaXRpYWxpemVzIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlLgorICAgICAgICAoV2ViQ29y
ZTo6c2hvdWxkU3RhcnRTZWxlY3Rpb24pOiBSZXR1cm5zIHRydWUgb25seSBpZiBzZWxlY3RzdGFy
dCB3YXMgc3VjY2Vzc2Z1bGx5IGZpcmVkCisgICAgICAgIGFuZCBkZWZhdWx0IGFjdGlvbiB3YXMg
bm90IHByZXZlbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0U2VsZWN0
aW9uSWZQb3NzaWJsZSk6IFVwZGF0ZXMgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgYW5kIG1v
ZGlmaWVzCisgICAgICAgIHRoZSBzZWxlY3Rpb24gaWYgc2hvdWxkU3RhcnRTZWxlY3Rpb24gcmV0
dXJucyB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0
V29yZEZyb21Nb3VzZUV2ZW50KTogQ2FsbHMgc2V0U2VsZWN0aW9uSWZQb3NzaWJsZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91
c2VFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdCk6IE5vIGxv
bmdlciBkaXNwYXRjaGVzIHN0YXJ0c2VsZWN0OyBhbHNvIHJlbmFtZWQgZnJvbQorICAgICAgICBF
dmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOiBObyBsb25nZXIgY2FsbHMgY2Fu
TW91c2VEcmFnRXh0ZW5kU2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVNb3VzZURyYWdnZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyk6IEV4aXQgZWFybHkgaWYgbV9zZWxlY3Rpb25J
bml0aWF0aW9uU3RhdGUgaXMKKyAgICAgICAgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gYW5kIHNo
b3VsZFN0YXJ0U2VsZWN0aW9uIHJldHVybnMgZmFsc2UuIFNpbmNlIHNldFNlbGVjdGlvbklmUG9z
c2libGUgZGlzcGF0Y2hlcworICAgICAgICBzZWxlY3RzdGFydCBldmVudCBiZWZvcmUgYXNzaWdu
aW5nIFBsYWNlZENhcmV0IG9yIEV4dGVuZGVkU2VsZWN0aW9uIHRvIG1fc2VsZWN0aW9uSW5pdGlh
dGlvblN0YXRlLAorICAgICAgICB0aGVyZSBpcyBubyBuZWVkIHRvIGRpc3BhdGNoIGV2ZW50IGZv
ciB0aG9zZSB0d28gY2FzZXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOiBSZW1v
dmVkIGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0IGFuZCBjYW5Nb3VzZURyYWdFeHRlbmRTZWxlY3Qg
ZnJvbSBFdmVudEhhbmRsZXIKKyAgICAgICAgYW5kIGFkZGVkIHNldFNlbGVjdGlvbklmUG9zc2li
bGUuCisKIDIwMTEtMDUtMDkgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IGE3MTJiN2M2ODE1MGQ4ZTgyZjlkNjAyMzZiYzhmNTZmNDZhMTUwNGYu
LmY1ZGZiNDJmMjVkNjdmMGI4MDQ1MTVkMDk2NjBiNzlmMTRlZmFhNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBFdmVudEhhbmRsZXI6OkV2
ZW50SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyhm
YWxzZSkKICNlbmRpZgogICAgICwgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9u
KGZhbHNlKQotICAgICwgbV9iZWdhblNlbGVjdGluZ1RleHQoZmFsc2UpCisgICAgLCBtX3NlbGVj
dGlvbkluaXRpYXRpb25TdGF0ZShIYXZlTm90U3RhcnRlZFNlbGVjdGlvbikKICAgICAsIG1fcGFu
U2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZChm
YWxzZSkKICAgICAsIG1fc3ByaW5nTG9hZGVkUGFuU2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKQEAg
LTI3MCw2ICsyNzAsMzEgQEAgc3RhdGljIHZvaWQgc2V0Tm9uRGlyZWN0aW9uYWxTZWxlY3Rpb25J
Zk5lZWRlZChGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9uLCBjb25zdAogICAgICAgICBzZWxlY3Rp
b24tPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0
aW9uYWxTZWxlY3Rpb24pOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkU3RhcnRTZWxl
Y3Rpb24oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIG5vZGUtPmRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VsZWN0c3RhcnRFdmVudCwgdHJ1ZSwgdHJ1ZSkp
OworfQorCitib29sIEV2ZW50SGFuZGxlcjo6c2V0U2VsZWN0aW9uSWZQb3NzaWJsZShOb2RlKiB0
YXJnZXROb2RlLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBpZiAoIXNob3VsZFN0YXJ0U2VsZWN0aW9uKHRh
cmdldE5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobmV3U2VsZWN0aW9u
LmlzUmFuZ2UoKSkKKyAgICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRl
ZFNlbGVjdGlvbjsKKyAgICBlbHNlIHsKKyAgICAgICAgZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJH
cmFudWxhcml0eTsKKyAgICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBQbGFjZWRD
YXJldDsKKyAgICB9CisKKyAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1f
ZnJhbWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRGcm9t
TW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCiB7
CiAgICAgTm9kZSogaW5uZXJOb2RlID0gdGFyZ2V0Tm9kZShyZXN1bHQpOwpAQCAtMjc3LDIwICsz
MDIsMTUgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZl
bnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmUKIAogICAgIGlmIChpbm5lck5vZGUgJiYg
aW5uZXJOb2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpIHsKICAg
ICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhpbm5lck5vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9u
Rm9yUG9pbnQocmVzdWx0LmxvY2FsUG9pbnQoKSkpOwotICAgICAgICBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eTsKICAgICAgICAgaWYgKHBvcy5pc05v
dE51bGwoKSkgewogICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihw
b3MpOwogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29y
ZEdyYW51bGFyaXR5KTsKICAgICAgICAgfQotICAgIAotICAgICAgICBpZiAobmV3U2VsZWN0aW9u
LmlzUmFuZ2UoKSkgewotICAgICAgICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7
Ci0gICAgICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgICAgICBp
ZiAocmVzdWx0LmV2ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgbV9mcmFtZS0+ZWRpdG9yKCkt
PmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpKSAKLSAgICAgICAgICAgICAgICBu
ZXdTZWxlY3Rpb24uYXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKCk7ICAgICAgICAgICAgCi0gICAg
ICAgIH0KIAotICAgICAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJh
bWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgaWYg
KG5ld1NlbGVjdGlvbi5pc1JhbmdlKCkgJiYgcmVzdWx0LmV2ZW50KCkuY2xpY2tDb3VudCgpID09
IDIgJiYgbV9mcmFtZS0+ZWRpdG9yKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpKSAKKyAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5hcHBlbmRUcmFpbGluZ1doaXRlc3BhY2Uo
KTsKKworICAgICAgICBzZXRTZWxlY3Rpb25JZlBvc3NpYmxlKGlubmVyTm9kZSwgbmV3U2VsZWN0
aW9uLCBXb3JkR3JhbnVsYXJpdHkpOwogICAgIH0KIH0KIApAQCAtMzA3LDE0ICszMjcsOCBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdAogICAgICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKGlubmVy
Tm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKSk7
CiAgICAgICAgIGlmIChwb3MuaXNOb3ROdWxsKCkgJiYgcG9zLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoVVJMRWxlbWVudCkpCiAgICAgICAgICAgICBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5v
ZGUoVVJMRWxlbWVudCk7Ci0gICAgCi0gICAgICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSA9IENoYXJhY3RlckdyYW51bGFyaXR5OwotICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzUmFu
Z2UoKSkgewotICAgICAgICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7Ci0gICAg
ICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgIH0KIAotICAgICAg
ICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigp
LCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uSWZQb3Nz
aWJsZShpbm5lck5vZGUsIG5ld1NlbGVjdGlvbiwgV29yZEdyYW51bGFyaXR5KTsKICAgICB9CiB9
CiAKQEAgLTMyOSw3ICszNDMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVz
c0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UgogICAgICAgICAv
LyBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50LCBidXQgZG8gc2V0CiAgICAgICAgIC8v
IG1fYmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQK
ICAgICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KLSAgICAgICAgbV9iZWdh
blNlbGVjdGluZ1RleHQgPSB0cnVlOworICAgICAgICBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0
ZSA9IEV4dGVuZGVkU2VsZWN0aW9uOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0Q2xvc2VzdFdv
cmRGcm9tTW91c2VFdmVudChldmVudCk7CiAKQEAgLTM1MSwxNiArMzY1LDggQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFIKICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihw
b3MpOwogICAgICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShQYXJhZ3Jh
cGhHcmFudWxhcml0eSk7CiAgICAgfQotICAgIAotICAgIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5OwotICAgIGlmIChuZXdTZWxlY3Rpb24uaXNSYW5n
ZSgpKSB7Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gUGFyYWdyYXBoR3JhbnVsYXJpdHk7Ci0gICAg
ICAgIG1fYmVnYW5TZWxlY3RpbmdUZXh0ID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzZXROb25EaXJl
Y3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rp
b24sIGdyYW51bGFyaXR5KTsKIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzZXRTZWxl
Y3Rpb25JZlBvc3NpYmxlKGlubmVyTm9kZSwgbmV3U2VsZWN0aW9uLCBQYXJhZ3JhcGhHcmFudWxh
cml0eSk7CiB9CiAKIHN0YXRpYyBpbnQgdGV4dERpc3RhbmNlKGNvbnN0IFBvc2l0aW9uJiBzdGFy
dCwgY29uc3QgUG9zaXRpb24mIGVuZCkKQEAgLTQxMSwyMCArNDE3LDI4IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSCiAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVj
dGlvbihlbmQsIHBvcyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3U2Vs
ZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgcG9zKTsKLSAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvcyk7
Ci0gICAgICAgIH0KIAogICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFy
aXR5KCkgIT0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpIHsKICAgICAgICAgICAgIGdyYW51bGFyaXR5
ID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFyaXR5KCk7CiAgICAgICAgICAgICBuZXdT
ZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Z3Jh
bnVsYXJpdHkoKSk7CiAgICAgICAgIH0KLQotICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9
IHRydWU7CiAgICAgfSBlbHNlCiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rp
b24odmlzaWJsZVBvcyk7CisgICAgCisgICAgcmV0dXJuIHNldFNlbGVjdGlvbklmUG9zc2libGUo
aW5uZXJOb2RlLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KIAotICAgIHNldE5vbkRp
cmVjdGlvbmFsU2VsZWN0aW9uSWZOZWVkZWQobV9mcmFtZS0+c2VsZWN0aW9uKCksIG5ld1NlbGVj
dGlvbiwgZ3JhbnVsYXJpdHkpOworLy8gV2hldGhlciBvciBub3QgYSBtb3VzZSBkb3duIGNhbiBi
ZWdpbiB0aGUgY3JlYXRpb24gb2YgYSBzZWxlY3Rpb24uCitzdGF0aWMgaW5saW5lIGJvb2wgY2Fu
TW91c2VEb3duU3RhcnRTZWxlY3QoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gU29tZSBjb250
cm9scyBhbmQgaW1hZ2VzIGNhbid0IHN0YXJ0IGEgc2VsZWN0IG9uIGEgbW91c2UgZG93bi4KKyAg
ICBpZiAoIW5vZGUtPmNhblN0YXJ0U2VsZWN0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDg2LDcgKzUwMCw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgZXZlCiAKICAgICBib29sIHN3YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIG1fbW91c2VQ
cmVzc2VkID0gdHJ1ZTsKLSAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IGZhbHNlOworICAgIG1f
c2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0gSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb247CiAKICAg
ICBpZiAoZXZlbnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPT0gMikKICAgICAgICAgc3dhbGxvd0V2
ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soZXZlbnQpOwpAQCAtNTYyLDcg
KzU3Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgICAgIG1fbW91c2VEb3duTWF5
U3RhcnRBdXRvc2Nyb2xsID0gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFtX2JlZ2FuU2VsZWN0
aW5nVGV4dCkgeworICAgIGlmIChtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSAhPSBFeHRlbmRl
ZFNlbGVjdGlvbikgewogICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1
ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgICAgICBIaXRUZXN0
UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBvcyk7CiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPnJlbmRlclZpZXcoKS0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwpAQCAt
NjUxLDkgKzY2NSw2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3Vz
ZURyYWcoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsCiAgICAgaWYgKCF0YXJnZXQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghY2FuTW91c2VEcmFnRXh0ZW5kU2VsZWN0KHRh
cmdldCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIFZpc2libGVQb3NpdGlvbiB0YXJnZXRQb3Np
dGlvbiA9IHNlbGVjdGlvbkV4dGVudFJlc3BlY3RpbmdFZGl0aW5nQm91bmRhcnkobV9mcmFtZS0+
c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpLCBoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgdGFy
Z2V0KTsKIAogICAgIC8vIERvbid0IG1vZGlmeSB0aGUgc2VsZWN0aW9uIGlmIHdlJ3JlIG5vdCBv
biBhIG5vZGUuCkBAIC02NzQsOCArNjg1LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVT
ZWxlY3Rpb25Gb3JNb3VzZURyYWcoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAgaWYgKCFtX2JlZ2FuU2Vs
ZWN0aW5nVGV4dCkgewotICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7CisgICAg
aWYgKG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID09IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9u
ICYmICFzaG91bGRTdGFydFNlbGVjdGlvbih0YXJnZXQpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgIT0gRXh0ZW5kZWRTZWxlY3Rpb24pIHsK
KyAgICAgICAgLy8gQWx3YXlzIGV4dGVuZCBzZWxlY3Rpb24gaGVyZSBiZWNhdXNlIGl0J3MgY2F1
c2VkIGJ5IGEgbW91c2UgZHJhZworICAgICAgICBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSA9
IEV4dGVuZGVkU2VsZWN0aW9uOwogICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0
aW9uKHRhcmdldFBvc2l0aW9uKTsKICAgICB9CiAKQEAgLTczMSw3ICs3NDYsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgZQogICAgIC8vIHByZXNzIGFuZCBpdCdzIG5vdCBhIGNvbnRleHQgbWVu
dSBjbGljay4gIFdlIGRvIHRoaXMgc28gd2hlbiBjbGlja2luZwogICAgIC8vIG9uIHRoZSBzZWxl
Y3Rpb24sIHRoZSBzZWxlY3Rpb24gZ29lcyBhd2F5LiAgSG93ZXZlciwgaWYgd2UgYXJlCiAgICAg
Ly8gZWRpdGluZywgcGxhY2UgdGhlIGNhcmV0LgotICAgIGlmIChtX21vdXNlRG93bldhc1Npbmds
ZUNsaWNrSW5TZWxlY3Rpb24gJiYgIW1fYmVnYW5TZWxlY3RpbmdUZXh0CisgICAgaWYgKG1fbW91
c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbiAmJiBtX3NlbGVjdGlvbkluaXRpYXRpb25T
dGF0ZSAhPSBFeHRlbmRlZFNlbGVjdGlvbgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
ICAgICAgICAmJiBtX2RyYWdTdGFydFBvcyA9PSBldmVudC5ldmVudCgpLnBvcygpCiAjZW5kaWYK
QEAgLTIzMjgsMjkgKzIzNDMsNiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KiB0aW1lcikKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAKLS8vIFdoZXRoZXIgb3Igbm90IGEgbW91c2UgZG93
biBjYW4gYmVnaW4gdGhlIGNyZWF0aW9uIG9mIGEgc2VsZWN0aW9uLiAgRmlyZXMgdGhlIHNlbGVj
dFN0YXJ0IGV2ZW50LgotYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0
KE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICAvLyBTb21lIGNvbnRyb2xzIGFuZCBpbWFnZXMg
Y2FuJ3Qgc3RhcnQgYSBzZWxlY3Qgb24gYSBtb3VzZSBkb3duLgotICAgIGlmICghbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgCi0g
ICAgcmV0dXJuIG5vZGUtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c2VsZWN0c3RhcnRFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwotfQotCi0jaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKLWJvb2wgRXZlbnRIYW5kbGVyOjpjYW5Nb3VzZURyYWdFeHRlbmRTZWxlY3QoTm9kZSog
bm9kZSkKLXsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgCi0gICAgcmV0dXJuIG5vZGUtPmRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VsZWN0c3RhcnRFdmVudCwgdHJ1ZSwgdHJ1ZSkp
OwotfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KIHZvaWQgRXZlbnRIYW5kbGVy
OjpzZXRSZXNpemluZ0ZyYW1lU2V0KEhUTUxGcmFtZVNldEVsZW1lbnQqIGZyYW1lU2V0KQogewog
ICAgIG1fZnJhbWVTZXRCZWluZ1Jlc2l6ZWQgPSBmcmFtZVNldDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IDJiZWZhZjM1NTg0YzUwNTM0NmY0MjgyYWVjMDQ2NTJiMjAzNjIxMmEu
LjIzODE0NGE5NTYwNTk5ZjlmODhhNjZhZTJhMzE3ZDU2YWZlZTUxMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50
SW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiVGV4dEdyYW51bGFyaXR5LmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
QEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgU1ZHRWxlbWVudEluc3RhbmNlOwogY2xhc3MgU2Nyb2xs
YmFyOwogY2xhc3MgVGV4dEV2ZW50OwogY2xhc3MgVG91Y2hFdmVudDsKK2NsYXNzIFZpc2libGVT
ZWxlY3Rpb247CiBjbGFzcyBXaGVlbEV2ZW50OwogY2xhc3MgV2lkZ2V0OwogCkBAIC0yNDUsNiAr
MjQ3LDcgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiAgICAg
Ym9vbCBldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3Q7
CisgICAgYm9vbCBzZXRTZWxlY3Rpb25JZlBvc3NpYmxlKE5vZGUqLCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiwgVGV4dEdyYW51bGFyaXR5KTsKICAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJv
bU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIHZv
aWQgc2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKQEAgLTI3MSwxMSArMjc0LDYgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgaG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKTsKIAotICAgIHN0
YXRpYyBib29sIGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KE5vZGUqKTsKLSNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotICAgIHN0YXRpYyBib29sIGNhbk1vdXNlRHJhZ0V4dGVuZFNlbGVjdChOb2Rl
Kik7Ci0jZW5kaWYKLQogICAgIHZvaWQgaGFuZGxlQXV0b3Njcm9sbChSZW5kZXJPYmplY3QqKTsK
ICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbFRpbWVyKCk7CiAgICAgdm9pZCBzZXRBdXRvc2Nyb2xs
UmVuZGVyZXIoUmVuZGVyT2JqZWN0Kik7CkBAIC0zNzcsNyArMzc1LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbW91c2VEb3duTWF5U3RhcnREcmFnOwogI2VuZGlmCiAgICAgYm9vbCBtX21vdXNl
RG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb247Ci0gICAgYm9vbCBtX2JlZ2FuU2VsZWN0aW5n
VGV4dDsKKyAgICBlbnVtIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVk
U2VsZWN0aW9uLCBQbGFjZWRDYXJldCwgRXh0ZW5kZWRTZWxlY3Rpb24gfTsKKyAgICBTZWxlY3Rp
b25Jbml0aWF0aW9uU3RhdGUgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGU7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQogICAgIEludFBvaW50IG1fZHJhZ1N0YXJ0UG9zOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92973</attachid>
            <date>2011-05-10 10:25:18 -0700</date>
            <delta_ts>2011-05-11 04:54:21 -0700</delta_ts>
            <desc>Added the forgotten tests</desc>
            <filename>bug-19489-20110510102517.patch</filename>
            <type>text/plain</type>
            <size>26122</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYwNjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYWRlZmJjMDNkNjE4NzVhOGQwYzc2
M2ExNDg5ZTQ3ZTU2OGYzMmZmLi5hZWFmZWQzMjUyMGFmM2M0ZGU2NWJiZDQwZDJkMDk3YmFlMDhm
NGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUtMTAgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZm9yIGV2ZXJ5IG1vdXNlIG1vdmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg5CisKKyAgICAg
ICAgQWRkZWQgdGVzdHMgdG8gZW5zdXJlIHNlbGVjdHN0YXJ0IGlzIGRpc3BhdGNoZXMgZXhhY3Rs
eSBvbmNlIHdoZW4gc2VsZWN0aW5nIHRleHQgYnkgYSBtb3VzZSBkcmFnLAorICAgICAgICBhIG1v
dXNlIGNsaWNrLCBhIGRvdWJsZSBjbGljaywgb3IgYSB0cmlwbGUgY2xpY2suIEFsc28gcmViYXNl
bGluZWQgYSB0ZXN0IHRoYXQgcHJldmlvdXNseSBsb2dnZWQKKyAgICAgICAgZXh0cmEgc2VsZWN0
c3RhcnQgZGlzcGF0Y2hlcy4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5
LWRvdWJsZS10cmlwbGUtY2xpY2tzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy5odG1sOgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LXNpbmdsZS1jbGljay13aXRoLXNoaWZ0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnkt
c2luZ2xlLWNsaWNrLXdpdGgtc2hpZnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDUtMDggIEFiaGlz
aGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3Rh
cnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFjM2MyMTQwZDdiYzA2MGY3ZTg4NDFmN2MwYWQ1YjFjMDZmZTgxNmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1k
b3VibGUtdHJpcGxlLWNsaWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0
ZXN0IGVuc3VyZXMgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZXhhY3RseSBvbmNlIHdoZW4gc2VsZWN0
aW5nIHRleHQgYnkgYSBtb3VzZSBkcmFnLgorCitJbml0aWFsIHN0YXRlOiBQQVNTCitNb3VzZSBk
b3duOiBQQVNTCitNb3VzZSB1cDogUEFTUworU2Vjb25kIG1vdXNlIGRvd246IFBBU1MKK1NlY29u
ZCBtb3VzZSB1cDogUEFTUworVGhpcmQgbW91c2UgZG93bjogRkFJTCAtIGV4cGVjdGVkIHNlbGVj
dGlvbiB0byBiZSAiaGVsbG8gd29ybGQiIGJ1dCB3YXMgImhlbGxvIHdvcmxkCisiCitUaGlyZCBt
b3VzZSB1cDogRkFJTCAtIGV4cGVjdGVkIHNlbGVjdGlvbiB0byBiZSAiaGVsbG8gd29ybGQiIGJ1
dCB3YXMgImhlbGxvIHdvcmxkCisiCitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kb3VibGUtdHJpcGxlLWNsaWNrcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3Mu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOGMwZGViYzYyOGFjNjYzZWQzNWM2MDYwM2ZkMTg1MDhiZTllY2Ix
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQt
YnktZG91YmxlLXRyaXBsZS1jbGlja3MuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBp
cyBmaXJlZCBleGFjdGx5IG9uY2Ugd2hlbiBzZWxlY3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcu
Cis8L3A+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTogNTBweDsgcGFkZGluZzogMTBweDsnPmhlbGxv
IHdvcmxkPC9zcGFuPjxwcmU+PHNjcmlwdD4KKwordmFyIHNwYW4gPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnc3BhbicpWzBdOworc3Bhbi5mb2N1cygpOworCit2YXIgc2VsZWN0U3Rh
cnRDb3VudCA9IDA7CitzcGFuLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgZnVuY3Rp
b24gKGV2ZW50KSB7IHNlbGVjdFN0YXJ0Q291bnQrKzsgfSk7CisKK2Z1bmN0aW9uIGV4cGVjdCh0
aXRsZSwgZXhwZWN0ZWRDb3VudCwgZXhwZWN0ZWRUeXBlLCBleHBlY3RlZFN0cmluZykgeworICAg
IGRvY3VtZW50LndyaXRlKHRpdGxlICsgJzogJyk7CisgICAgdmFyIGFjdHVhbFNlbGVjdGlvblR5
cGUgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQgPyAnY2FyZXQnIDogJ3Jhbmdl
JzsKKyAgICB2YXIgYWN0dWFsU3RyaW5nID0gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCk7CisKKyAgICBpZiAoc2VsZWN0U3RhcnRDb3VudCAhPSBleHBlY3RlZENvdW50KQorICAgICAg
ICBkb2N1bWVudC53cml0ZWxuKCdGQUlMIC0gZXhwZWN0ZWQgJyArIGV4cGVjdGVkQ291bnQgKyAn
IGV2ZW50cyBidXQgZ290ICcgKyBzZWxlY3RTdGFydENvdW50ICsgJyBldmVudHMnKTsKKyAgICBl
bHNlIGlmIChhY3R1YWxTZWxlY3Rpb25UeXBlICE9IGV4cGVjdGVkVHlwZSkKKyAgICAgICAgZG9j
dW1lbnQud3JpdGVsbignRkFJTCAtIGV4cGVjdGVkIHNlbGVjdGlvbiB0byBiZSAnICsgZXhwZWN0
ZWRUeXBlICsgJyBidXQgd2FzICcgKyBhY3R1YWxTZWxlY3Rpb25UeXBlKTsKKyAgICBlbHNlIGlm
IChhY3R1YWxTdHJpbmcgJiYgYWN0dWFsU3RyaW5nICE9IGV4cGVjdGVkU3RyaW5nKQorICAgICAg
ICBkb2N1bWVudC53cml0ZWxuKCdGQUlMIC0gZXhwZWN0ZWQgc2VsZWN0aW9uIHRvIGJlICInICsg
ZXhwZWN0ZWRTdHJpbmcgKyAnIiBidXQgd2FzICInICsgYWN0dWFsU3RyaW5nICsgJyInKTsKKyAg
ICBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJ1BBU1MnKTsKK30KKworaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICBkb2N1
bWVudC53cml0ZSgnVGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50U2VuZGVyJyk7CitlbHNlIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgeSA9IHNwYW4u
b2Zmc2V0VG9wICsgc3Bhbi5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV4cGVjdCgnSW5pdGlhbCBz
dGF0ZScsIDAsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zm
c2V0TGVmdCArIDUsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV4cGVj
dCgnTW91c2UgZG93bicsIDEsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJk
KDIwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV4cGVjdCgnTW91c2UgdXAn
LCAxLCAnY2FyZXQnKTsKKworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXhwZWN0KCdTZWNvbmQgbW91c2UgZG93bics
IDIsICdyYW5nZScsICdoZWxsbycpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV4cGVjdCgnU2Vjb25kIG1vdXNlIHVw
JywgMiwgJ3JhbmdlJywgJ2hlbGxvJyk7CisKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgy
MDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV4cGVjdCgnVGhpcmQgbW91
c2UgZG93bicsIDMsICdyYW5nZScsICdoZWxsbyB3b3JsZCcpOworICAgIGV2ZW50U2VuZGVyLmxl
YXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV4cGVjdCgn
VGhpcmQgbW91c2UgdXAnLCAzLCAncmFuZ2UnLCAnaGVsbG8gd29ybGQnKTsKKworICAgIGRvY3Vt
ZW50LndyaXRlbG4oJ0RvbmUuJyk7CisgICAgc3Bhbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNw
YW4pOworfQorCis8L3NjcmlwdD48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjJjYTNkZWM1MzA2MWI0NTA2YjMzNDM2ZGZmZjY3MzY1NzA2YWZjOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5
LWRyYWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHNl
bGVjdHN0YXJ0IGlzIGZpcmVkIGV4YWN0bHkgb25jZSB3aGVuIHNlbGVjdGluZyB0ZXh0IGJ5IGEg
bW91c2UgZHJhZy4KKworSW5pdGlhbCBzdGF0ZTogUEFTUworTW91c2UgZG93bjogUEFTUworTW92
aW5nIHNsaWdodGx5IHRvIHRoZSByaWdodDogUEFTUworTW92aW5nIHNsaWdodGx5IHRvIHRoZSBs
ZWZ0OiBQQVNTCitNb3ZpbmcgdG8gdGhlIHJpZ2h0OiBQQVNTCitNb3ZpbmcgZnVydGhlciB0byB0
aGUgcmlnaHQ6IFBBU1MKK01vdmluZyBiYWNrIHRvIHRoZSBsZWZ0OiBQQVNTCitNb3ZpbmcgdG8g
dGhlIHJpZ2h0IGFnYWluOiBQQVNTCitNb3VzZSBkb3duIG9uIHRoZSByaWdodDogUEFTUworTW92
aW5nIHRvIHRoZSBsZWZ0OiBQQVNTCitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMzZWY1MDZmY2FhODJj
NDA3NzM5YWI3YjFkYzc5MzFhM2Q2M2UyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWcuaHRtbApAQCAtMCwwICsxLDgxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyBzZWxl
Y3RzdGFydCBpcyBmaXJlZCBleGFjdGx5IG9uY2Ugd2hlbiBzZWxlY3RpbmcgdGV4dCBieSBhIG1v
dXNlIGRyYWcuCis8L3A+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTogNTBweDsgcGFkZGluZzogMTBw
eDsnIGNvbnRlbnRlZGl0YWJsZT5oZWxsbworPC9zcGFuPjxwcmU+PHNjcmlwdD4KKwordmFyIHNw
YW4gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBdOworc3Bhbi5mb2N1
cygpOworCit2YXIgc2VsZWN0U3RhcnRDb3VudCA9IDA7CitzcGFuLmFkZEV2ZW50TGlzdGVuZXIo
J3NlbGVjdHN0YXJ0JywgZnVuY3Rpb24gKGV2ZW50KSB7IHNlbGVjdFN0YXJ0Q291bnQrKzsgfSk7
CisKK2Z1bmN0aW9uIGV4cGVjdCh0aXRsZSwgZXhwZWN0ZWRDb3VudCwgZXhwZWN0ZWRUeXBlKSB7
CisgICAgZG9jdW1lbnQud3JpdGUodGl0bGUgKyAnOiAnKTsKKyAgICB2YXIgYWN0dWFsU2VsZWN0
aW9uVHlwZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5pc0NvbGxhcHNlZCA/ICdjYXJldCcgOiAn
cmFuZ2UnOworCisgICAgaWYgKHNlbGVjdFN0YXJ0Q291bnQgIT0gZXhwZWN0ZWRDb3VudCkKKyAg
ICAgICAgZG9jdW1lbnQud3JpdGVsbignRkFJTCAtIGV4cGVjdGVkICcgKyBleHBlY3RlZENvdW50
ICsgJyBldmVudHMgYnV0IGdvdCAnICsgc2VsZWN0U3RhcnRDb3VudCArICcgZXZlbnRzJyk7Cisg
ICAgZWxzZSBpZiAoYWN0dWFsU2VsZWN0aW9uVHlwZSAhPSBleHBlY3RlZFR5cGUpCisgICAgICAg
IGRvY3VtZW50LndyaXRlbG4oJ0ZBSUwgLSBleHBlY3RlZCBzZWxlY3Rpb24gdG8gYmUgJyArIGV4
cGVjdGVkVHlwZSArICcgYnV0IHdhcyAnICsgYWN0dWFsU2VsZWN0aW9uVHlwZSk7CisgICAgZWxz
ZQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdQQVNTJyk7Cit9CisKK2lmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgZG9jdW1lbnQu
d3JpdGUoJ1RoaXMgdGVzdCByZXF1aXJlcyBldmVudFNlbmRlcicpOworZWxzZSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIHkgPSBzcGFuLm9mZnNl
dFRvcCArIHNwYW4ub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGZ1bmN0aW9uIGxlYXBGb3J3YXJk
QW5kTW92ZSh4KSB7CisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIHgsIHkpOworICAg
IH0KKworICAgIGV4cGVjdCgnSW5pdGlhbCBzdGF0ZScsIDAsICdjYXJldCcpOworICAgIGV2ZW50
U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Bh
bi5vZmZzZXRMZWZ0ICsgNSwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ZXhwZWN0KCdNb3VzZSBkb3duJywgMSwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1v
dmUoNSk7CisgICAgZXhwZWN0KCdNb3Zpbmcgc2xpZ2h0bHkgdG8gdGhlIHJpZ2h0JywgMSwgJ2Nh
cmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoLTUpOworICAgIGV4cGVjdCgnTW92aW5n
IHNsaWdodGx5IHRvIHRoZSBsZWZ0JywgMSwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFu
ZE1vdmUoc3Bhbi5vZmZzZXRXaWR0aCAvIDIpOworICAgIGV4cGVjdCgnTW92aW5nIHRvIHRoZSBy
aWdodCcsIDEsICdyYW5nZScpOworCisgICAgbGVhcEZvcndhcmRBbmRNb3ZlKHNwYW4ub2Zmc2V0
V2lkdGgpOworICAgIGV4cGVjdCgnTW92aW5nIGZ1cnRoZXIgdG8gdGhlIHJpZ2h0JywgMSwgJ3Jh
bmdlJyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoMCk7CisgICAgZXhwZWN0KCdNb3Zpbmcg
YmFjayB0byB0aGUgbGVmdCcsIDEsICdjYXJldCcpOworCisgICAgbGVhcEZvcndhcmRBbmRNb3Zl
KHNwYW4ub2Zmc2V0V2lkdGgpOworICAgIGV4cGVjdCgnTW92aW5nIHRvIHRoZSByaWdodCBhZ2Fp
bicsIDEsICdyYW5nZScpOworCisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihzcGFuLCAwKTsKKyAgICBldmVudFNlbmRlci5s
ZWFwRm9yd2FyZCgxMDAwKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zm
c2V0TGVmdCArIHNwYW4ub2Zmc2V0V2lkdGggLSA1LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICBleHBlY3QoJ01vdXNlIGRvd24gb24gdGhlIHJpZ2h0JywgMiwgJ2NhcmV0
Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoc3Bhbi5vZmZzZXRXaWR0aCAvIDIpOworICAg
IGV4cGVjdCgnTW92aW5nIHRvIHRoZSBsZWZ0JywgMiwgJ3JhbmdlJyk7CisKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CisKKyAgICBkb2N1bWVudC53cml0ZWxuKCdEb25lLicpOworICAgIHNw
YW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzcGFuKTsKK30KKworPC9zY3JpcHQ+PC9wcmU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxl
Y3RzdGFydC1ieS1zaW5nbGUtY2xpY2std2l0aC1zaGlmdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1zaW5nbGUtY2xpY2std2l0aC1zaGlmdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyMmE5MDYwMjhmZTU1YmM1ODNlZjFiZGE2YWE3OGFi
MTgzNmE4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVj
dHN0YXJ0LWJ5LXNpbmdsZS1jbGljay13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitUaGlzIHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBpcyBmaXJlZCBleGFjdGx5IG9u
Y2Ugd2hlbiBzZWxlY3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcuCisKK0luaXRpYWwgc3RhdGU6
IFBBU1MKK01vdXNlIGRvd246IFBBU1MKK01vdXNlIHVwOiBQQVNTCitNb3ZpbmcgdG8gdGhlIHJp
Z2h0OiBQQVNTCitTZWNvbmQgbW91c2UgZG93bjogUEFTUworU2Vjb25kIG1vdXNlIHVwOiBQQVNT
CitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFy
dC1ieS1zaW5nbGUtY2xpY2std2l0aC1zaGlmdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2VsZWN0c3RhcnQtYnktc2luZ2xlLWNsaWNrLXdpdGgtc2hpZnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYzNkNTM2NThhZjkxYmJiZTIyYTAyYWQ0NzA1N2RjMDg3NTA2MWVhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktc2luZ2xlLWNsaWNr
LXdpdGgtc2hpZnQuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBpcyBmaXJlZCBleGFj
dGx5IG9uY2Ugd2hlbiBzZWxlY3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcuCis8L3A+PHNwYW4g
c3R5bGU9J2ZvbnQtc2l6ZTogNTBweDsgcGFkZGluZzogMTBweDsnPmhlbGxvIHdvcmxkCis8L3Nw
YW4+PHByZT48c2NyaXB0PgorCit2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdzcGFuJylbMF07CitzcGFuLmZvY3VzKCk7CisKK3ZhciBzZWxlY3RTdGFydENvdW50ID0g
MDsKK3NwYW4uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoZXZlbnQp
IHsgc2VsZWN0U3RhcnRDb3VudCsrOyB9KTsKKworZnVuY3Rpb24gZXhwZWN0KHRpdGxlLCBleHBl
Y3RlZENvdW50LCBleHBlY3RlZFR5cGUpIHsKKyAgICBkb2N1bWVudC53cml0ZSh0aXRsZSArICc6
ICcpOworICAgIHZhciBhY3R1YWxTZWxlY3Rpb25UeXBlID0gd2luZG93LmdldFNlbGVjdGlvbigp
LmlzQ29sbGFwc2VkID8gJ2NhcmV0JyA6ICdyYW5nZSc7CisKKyAgICBpZiAoc2VsZWN0U3RhcnRD
b3VudCAhPSBleHBlY3RlZENvdW50KQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdGQUlMIC0g
ZXhwZWN0ZWQgJyArIGV4cGVjdGVkQ291bnQgKyAnIGV2ZW50cyBidXQgZ290ICcgKyBzZWxlY3RT
dGFydENvdW50ICsgJyBldmVudHMnKTsKKyAgICBlbHNlIGlmIChhY3R1YWxTZWxlY3Rpb25UeXBl
ICE9IGV4cGVjdGVkVHlwZSkKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbignRkFJTCAtIGV4cGVj
dGVkIHNlbGVjdGlvbiB0byBiZSAnICsgZXhwZWN0ZWRUeXBlICsgJyBidXQgd2FzICcgKyBhY3R1
YWxTZWxlY3Rpb25UeXBlKTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJ1BB
U1MnKTsKK30KKworaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5l
dmVudFNlbmRlcikKKyAgICBkb2N1bWVudC53cml0ZSgnVGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50
U2VuZGVyJyk7CitlbHNlIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKKyAgICB2YXIgeSA9IHNwYW4ub2Zmc2V0VG9wICsgc3Bhbi5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgIGV4cGVjdCgnSW5pdGlhbCBzdGF0ZScsIDAsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIDUsIHkpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgIGV4cGVjdCgnTW91c2UgZG93bicsIDEsICdjYXJldCcpOworICAgIGV2
ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
ICAgIGV4cGVjdCgnTW91c2UgdXAnLCAxLCAnY2FyZXQnKTsKKworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIHNwYW4ub2Zmc2V0V2lkdGggLSA1LCB5KTsKKyAg
ICBleHBlY3QoJ01vdmluZyB0byB0aGUgcmlnaHQnLCAxLCAnY2FyZXQnKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZURvd24oMCwgWydzaGlmdEtleSddKTsKKyAgICBleHBlY3QoJ1NlY29uZCBtb3Vz
ZSBkb3duJywgMiwgJ3JhbmdlJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXhwZWN0KCdTZWNvbmQgbW91c2UgdXAn
LCAyLCAncmFuZ2UnKTsKKworICAgIGRvY3VtZW50LndyaXRlbG4oJ0RvbmUuJyk7CisgICAgc3Bh
bi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNwYW4pOworfQorCis8L3NjcmlwdD48L3ByZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2V2ZW50cy9vYmpjLWV2ZW50LWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvb2JqYy1ldmVudC1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDVhMTdm
ZWY5ODIxMWY5ZmVjODFjYjU4YjQ0YWViODc4MzA2NjUzMjQuLmMzNTM0NGRhYTJmYTAxMjMwMTYz
MWQ1MzE0NmY0MDY4YzZhYmM3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2V2ZW50cy9vYmpjLWV2ZW50LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL29iamMtZXZlbnQtYXBpLWV4cGVjdGVkLnR4dApA
QCAtMzQxLDExICszNDEsNiBAQCBldmVudCB0eXBlOiAgICAgIG1vdXNlbW92ZQogICBzY3JlZW5Y
OiAgICAgICAtOTk5OQogICBzY3JlZW5ZOiAgICAgICAtOTk5OQogICBtb2RpZmllciBrZXlzOiBj
OjAgczowIGE6MCBtOjAKLWV2ZW50IHR5cGU6ICAgICAgc2VsZWN0c3RhcnQKLSAgdGFyZ2V0OiAg
ICAgICAgPGh0bWw+Ci0gIGV2ZW50UGhhc2U6ICAgIDMKLSAgYnViYmxlczogICAgICAgMQotICBj
YW5jZWxhYmxlOiAgICAxCiBldmVudCB0eXBlOiAgICAgIG1vdXNldXAKICAgdGFyZ2V0OiAgICAg
ICAgPGh0bWw+CiAgIGV2ZW50UGhhc2U6ICAgIDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYWQ2YzJiOTg3MTY5
MmExNzQwZmQyMDQ5ZDNkMGU1MjdlNDg2NTk4Li4yZjMyOThhZTQzMmY0OWIzMmI0MTE4OGQwZjhh
NjgzOTYyYzdkZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDUtMTAgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZm9yIGV2ZXJ5IG1v
dXNlIG1vdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDg5CisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBkaXNwYXRjaCBzZWxlY3RzdGFydCBl
dmVudCBpbW1lZGlhdGVseSBiZWZvcmUgbW9kaWZ5aW5nIHNlbGVjdGlvbiBpbgorICAgICAgICBo
YW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayBhbmQgdXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEcmFnLgorCisgICAgICAgIEFsc28gcmVwbGFjZWQgYSBib29sZWFuIEV2ZW50SGFuZGxlcjo6
bV9iZWdhblNlbGVjdGluZ1RleHQgYnkgYW4gZW51bS12YWx1ZWQgbV9zZWxlY3Rpb25Jbml0aWF0
aW9uU3RhdGUKKyAgICAgICAgdG8gcmV0YWluIDMgc3RhdGVzOgorICAgICAgICAxLiBIYXZlTm90
U3RhcnRlZFNlbGVjdGlvbiAtIFNlbGVjdGlvbiBoYXMgbm90IGJlZW4gc2V0IGJ5IGEgbW91c2Ug
ZHJhZyBvciBhIG1vdXNlIGNsaWNrCisgICAgICAgIDIuIFBsYWNlZENhcmV0IC0gQSBjYXJldCB3
YXMgcGxhY2VkIGJ5IGEgbW91c2UgY2xpY2ssIGRvdWJsZSBjbGljaywgb3IgdHJpcGxlIGNsaWNr
LCBhbmQgaXMgYWJvdXQKKyAgICAgICAgdG8gcmVwbGFjZSBzZWxlY3Rpb24gaWYgYSBtb3VzZSBk
cmFnIG5ldmVyIG9jY3Vycy4KKyAgICAgICAgMy4gRXh0ZW5kZWRTZWxlY3Rpb24gLSBBIHJhbmdl
IHNlbGVjdGlvbiB3YXMgc2V0IGJ5IGEgbW91c2UgY2xpY2ssIGEgZG91YmxlIGNsaWNrLCBhIHRy
aXBsZSBjbGljaywKKyAgICAgICAgb3IgYSBtb3VzZSBkcmFnOyBvdGhlcndpc2UgYSBjYXJldCBz
ZWxlY3Rpb24gd2FzIHNldCBieSBhIG1vdXNlIGRyYWcuCisKKyAgICAgICAgU3RhdGUgMSBjb3Jy
ZXNwb25kcyB0byBtX2JlZ2FuU2VsZWN0aW5nVGV4dCBiZWluZyBmYWxzZSBhbmQgc3RhdGUgMyBj
b3JyZXNwb25kcyB0byBtX2JlZ2FuU2VsZWN0aW5nVGV4dAorICAgICAgICBiZWluZyB0cnVlLiBT
dGF0ZSAyIGlzIHVzZWQgaW4gdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnIHRvIGF2b2lkIGRp
c3BhdGNoaW5nIHNlbGVjdHN0YXJ0IHR3aWNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRz
L3NlbGVjdHN0YXJ0LWJ5LWRvdWJsZS10cmlwbGUtY2xpY2tzLmh0bWwKKyAgICAgICAgICAgICAg
ZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy5odG1sCisgICAgICAgICAgICAgIGZhc3Qv
ZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LXNpbmdsZS1jbGljay13aXRoLXNoaWZ0Lmh0bWwKKworICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDogUmVtb3ZlZCBjYW5Nb3VzZURyYWdFeHRlbmRT
ZWxlY3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6IElu
aXRpYWxpemVzIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6
c2hvdWxkU3RhcnRTZWxlY3Rpb24pOiBSZXR1cm5zIHRydWUgb25seSBpZiBzZWxlY3RzdGFydCB3
YXMgc3VjY2Vzc2Z1bGx5IGZpcmVkCisgICAgICAgIGFuZCBkZWZhdWx0IGFjdGlvbiB3YXMgbm90
IHByZXZlbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0U2VsZWN0aW9u
SWZQb3NzaWJsZSk6IFVwZGF0ZXMgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgYW5kIG1vZGlm
aWVzCisgICAgICAgIHRoZSBzZWxlY3Rpb24gaWYgc2hvdWxkU3RhcnRTZWxlY3Rpb24gcmV0dXJu
cyB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29y
ZEZyb21Nb3VzZUV2ZW50KTogQ2FsbHMgc2V0U2VsZWN0aW9uSWZQb3NzaWJsZS4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VF
dmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZVByZXNzRXZlbnREb3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdCk6IE5vIGxvbmdl
ciBkaXNwYXRjaGVzIHN0YXJ0c2VsZWN0OyBhbHNvIHJlbmFtZWQgZnJvbQorICAgICAgICBFdmVu
dEhhbmRsZXI6OmNhbk1vdXNlRG93blN0YXJ0U2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOiBObyBsb25nZXIgY2FsbHMgY2FuTW91
c2VEcmFnRXh0ZW5kU2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5k
bGVNb3VzZURyYWdnZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVw
ZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyk6IEV4aXQgZWFybHkgaWYgbV9zZWxlY3Rpb25Jbml0
aWF0aW9uU3RhdGUgaXMKKyAgICAgICAgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gYW5kIHNob3Vs
ZFN0YXJ0U2VsZWN0aW9uIHJldHVybnMgZmFsc2UuIFNpbmNlIHNldFNlbGVjdGlvbklmUG9zc2li
bGUgZGlzcGF0Y2hlcworICAgICAgICBzZWxlY3RzdGFydCBldmVudCBiZWZvcmUgYXNzaWduaW5n
IFBsYWNlZENhcmV0IG9yIEV4dGVuZGVkU2VsZWN0aW9uIHRvIG1fc2VsZWN0aW9uSW5pdGlhdGlv
blN0YXRlLAorICAgICAgICB0aGVyZSBpcyBubyBuZWVkIHRvIGRpc3BhdGNoIGV2ZW50IGZvciB0
aG9zZSB0d28gY2FzZXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1v
dXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOiBSZW1vdmVk
IGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0IGFuZCBjYW5Nb3VzZURyYWdFeHRlbmRTZWxlY3QgZnJv
bSBFdmVudEhhbmRsZXIKKyAgICAgICAgYW5kIGFkZGVkIHNldFNlbGVjdGlvbklmUG9zc2libGUu
CisKIDIwMTEtMDUtMDkgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IGE3MTJiN2M2ODE1MGQ4ZTgyZjlkNjAyMzZiYzhmNTZmNDZhMTUwNGYuLjM2
ZDJmMGEwNGY4OWMwNjEwY2UwNjBjODQwNDkyZjI2MmYzMDBmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50
SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyhmYWxz
ZSkKICNlbmRpZgogICAgICwgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uKGZh
bHNlKQotICAgICwgbV9iZWdhblNlbGVjdGluZ1RleHQoZmFsc2UpCisgICAgLCBtX3NlbGVjdGlv
bkluaXRpYXRpb25TdGF0ZShIYXZlTm90U3RhcnRlZFNlbGVjdGlvbikKICAgICAsIG1fcGFuU2Ny
b2xsSW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZChmYWxz
ZSkKICAgICAsIG1fc3ByaW5nTG9hZGVkUGFuU2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKQEAgLTI3
MCw2ICsyNzAsMzEgQEAgc3RhdGljIHZvaWQgc2V0Tm9uRGlyZWN0aW9uYWxTZWxlY3Rpb25JZk5l
ZWRlZChGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9uLCBjb25zdAogICAgICAgICBzZWxlY3Rpb24t
PnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9u
YWxTZWxlY3Rpb24pOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkU3RhcnRTZWxlY3Rp
b24oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIG5vZGUtPmRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VsZWN0c3RhcnRFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwor
fQorCitib29sIEV2ZW50SGFuZGxlcjo6c2V0U2VsZWN0aW9uSWZQb3NzaWJsZShOb2RlKiB0YXJn
ZXROb2RlLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIFRleHRHcmFudWxh
cml0eSBncmFudWxhcml0eSkKK3sKKyAgICBpZiAoIXNob3VsZFN0YXJ0U2VsZWN0aW9uKHRhcmdl
dE5vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobmV3U2VsZWN0aW9uLmlz
UmFuZ2UoKSkKKyAgICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNl
bGVjdGlvbjsKKyAgICBlbHNlIHsKKyAgICAgICAgZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFu
dWxhcml0eTsKKyAgICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBQbGFjZWRDYXJl
dDsKKyAgICB9CisKKyAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJh
bWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKworICAgIHJldHVy
biB0cnVlOworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91
c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCiB7CiAg
ICAgTm9kZSogaW5uZXJOb2RlID0gdGFyZ2V0Tm9kZShyZXN1bHQpOwpAQCAtMjc3LDIwICszMDIs
MTUgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmUKIAogICAgIGlmIChpbm5lck5vZGUgJiYgaW5u
ZXJOb2RlLT5yZW5kZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpIHsKICAgICAg
ICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhpbm5lck5vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9y
UG9pbnQocmVzdWx0LmxvY2FsUG9pbnQoKSkpOwotICAgICAgICBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eTsKICAgICAgICAgaWYgKHBvcy5pc05vdE51
bGwoKSkgewogICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3Mp
OwogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdy
YW51bGFyaXR5KTsKICAgICAgICAgfQotICAgIAotICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlz
UmFuZ2UoKSkgewotICAgICAgICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7Ci0g
ICAgICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgICAgICBpZiAo
cmVzdWx0LmV2ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgbV9mcmFtZS0+ZWRpdG9yKCktPmlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpKSAKLSAgICAgICAgICAgICAgICBuZXdT
ZWxlY3Rpb24uYXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKCk7ICAgICAgICAgICAgCi0gICAgICAg
IH0KIAotICAgICAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUt
PnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgaWYgKG5l
d1NlbGVjdGlvbi5pc1JhbmdlKCkgJiYgcmVzdWx0LmV2ZW50KCkuY2xpY2tDb3VudCgpID09IDIg
JiYgbV9mcmFtZS0+ZWRpdG9yKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
KSAKKyAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5hcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UoKTsK
KworICAgICAgICBzZXRTZWxlY3Rpb25JZlBvc3NpYmxlKGlubmVyTm9kZSwgbmV3U2VsZWN0aW9u
LCBXb3JkR3JhbnVsYXJpdHkpOwogICAgIH0KIH0KIApAQCAtMzA3LDE0ICszMjcsOCBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdAogICAgICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKGlubmVyTm9k
ZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKSk7CiAg
ICAgICAgIGlmIChwb3MuaXNOb3ROdWxsKCkgJiYgcG9zLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoVVJMRWxlbWVudCkpCiAgICAgICAgICAgICBuZXdT
ZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUo
VVJMRWxlbWVudCk7Ci0gICAgCi0gICAgICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSA9
IENoYXJhY3RlckdyYW51bGFyaXR5OwotICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzUmFuZ2Uo
KSkgewotICAgICAgICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7Ci0gICAgICAg
ICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgIH0KIAotICAgICAgICBz
ZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigpLCBu
ZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uSWZQb3NzaWJs
ZShpbm5lck5vZGUsIG5ld1NlbGVjdGlvbiwgV29yZEdyYW51bGFyaXR5KTsKICAgICB9CiB9CiAK
QEAgLTMyOSw3ICszNDMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2
ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UgogICAgICAgICAvLyBz
ZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50LCBidXQgZG8gc2V0CiAgICAgICAgIC8vIG1f
YmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQKICAg
ICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KLSAgICAgICAgbV9iZWdhblNl
bGVjdGluZ1RleHQgPSB0cnVlOworICAgICAgICBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSA9
IEV4dGVuZGVkU2VsZWN0aW9uOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0Q2xvc2VzdFdvcmRG
cm9tTW91c2VFdmVudChldmVudCk7CiAKQEAgLTM1MSwxNiArMzY1LDggQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFIKICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3Mp
OwogICAgICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShQYXJhZ3JhcGhH
cmFudWxhcml0eSk7CiAgICAgfQotICAgIAotICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSA9IENoYXJhY3RlckdyYW51bGFyaXR5OwotICAgIGlmIChuZXdTZWxlY3Rpb24uaXNSYW5nZSgp
KSB7Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gUGFyYWdyYXBoR3JhbnVsYXJpdHk7Ci0gICAgICAg
IG1fYmVnYW5TZWxlY3RpbmdUZXh0ID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzZXROb25EaXJlY3Rp
b25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24s
IGdyYW51bGFyaXR5KTsKIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzZXRTZWxlY3Rp
b25JZlBvc3NpYmxlKGlubmVyTm9kZSwgbmV3U2VsZWN0aW9uLCBQYXJhZ3JhcGhHcmFudWxhcml0
eSk7CiB9CiAKIHN0YXRpYyBpbnQgdGV4dERpc3RhbmNlKGNvbnN0IFBvc2l0aW9uJiBzdGFydCwg
Y29uc3QgUG9zaXRpb24mIGVuZCkKQEAgLTQxMSwyMCArNDE3LDI2IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSCiAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlv
bihlbmQsIHBvcyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3U2VsZWN0
aW9uID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgcG9zKTsKLSAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvcyk7Ci0g
ICAgICAgIH0KIAogICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFyaXR5
KCkgIT0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpIHsKICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0g
bV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFyaXR5KCk7CiAgICAgICAgICAgICBuZXdTZWxl
Y3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Z3JhbnVs
YXJpdHkoKSk7CiAgICAgICAgIH0KLQotICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRy
dWU7CiAgICAgfSBlbHNlCiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24o
dmlzaWJsZVBvcyk7CisgICAgCisgICAgcmV0dXJuIHNldFNlbGVjdGlvbklmUG9zc2libGUoaW5u
ZXJOb2RlLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KIAotICAgIHNldE5vbkRpcmVj
dGlvbmFsU2VsZWN0aW9uSWZOZWVkZWQobV9mcmFtZS0+c2VsZWN0aW9uKCksIG5ld1NlbGVjdGlv
biwgZ3JhbnVsYXJpdHkpOworc3RhdGljIGlubGluZSBib29sIGNhbk1vdXNlRG93blN0YXJ0U2Vs
ZWN0KE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24o
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00ODYs
NyArNDk4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKIAogICAgIGJvb2wgc3dhbGxvd0V2
ZW50ID0gZmFsc2U7CiAgICAgbV9tb3VzZVByZXNzZWQgPSB0cnVlOwotICAgIG1fYmVnYW5TZWxl
Y3RpbmdUZXh0ID0gZmFsc2U7CisgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBIYXZl
Tm90U3RhcnRlZFNlbGVjdGlvbjsKIAogICAgIGlmIChldmVudC5ldmVudCgpLmNsaWNrQ291bnQo
KSA9PSAyKQogICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnREb3Vi
bGVDbGljayhldmVudCk7CkBAIC01NjIsNyArNTc0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMm
IGUKICAgICAgICAgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBmYWxzZTsKICAgICB9
CiAKLSAgICBpZiAoIW1fYmVnYW5TZWxlY3RpbmdUZXh0KSB7CisgICAgaWYgKG1fc2VsZWN0aW9u
SW5pdGlhdGlvblN0YXRlICE9IEV4dGVuZGVkU2VsZWN0aW9uKSB7CiAgICAgICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6
OkFjdGl2ZSk7CiAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1fbW91c2VEb3duUG9zKTsK
ICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5sYXllcigpLT5oaXRU
ZXN0KHJlcXVlc3QsIHJlc3VsdCk7CkBAIC02NTEsOSArNjYzLDYgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRU
ZXN0UmVzdWwKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFj
YW5Nb3VzZURyYWdFeHRlbmRTZWxlY3QodGFyZ2V0KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
VmlzaWJsZVBvc2l0aW9uIHRhcmdldFBvc2l0aW9uID0gc2VsZWN0aW9uRXh0ZW50UmVzcGVjdGlu
Z0VkaXRpbmdCb3VuZGFyeShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCksIGhpdFRl
c3RSZXN1bHQubG9jYWxQb2ludCgpLCB0YXJnZXQpOwogCiAgICAgLy8gRG9uJ3QgbW9kaWZ5IHRo
ZSBzZWxlY3Rpb24gaWYgd2UncmUgbm90IG9uIGEgbm9kZS4KQEAgLTY3NCw4ICs2ODMsMTIgQEAg
dm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRU
ZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWwKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogI2Vu
ZGlmCiAKLSAgICBpZiAoIW1fYmVnYW5TZWxlY3RpbmdUZXh0KSB7Ci0gICAgICAgIG1fYmVnYW5T
ZWxlY3RpbmdUZXh0ID0gdHJ1ZTsKKyAgICBpZiAobV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUg
PT0gSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gJiYgIXNob3VsZFN0YXJ0U2VsZWN0aW9uKHRhcmdl
dCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0
ZSAhPSBFeHRlbmRlZFNlbGVjdGlvbikgeworICAgICAgICAvLyBBbHdheXMgZXh0ZW5kIHNlbGVj
dGlvbiBoZXJlIGJlY2F1c2UgaXQncyBjYXVzZWQgYnkgYSBtb3VzZSBkcmFnCisgICAgICAgIG1f
c2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0gRXh0ZW5kZWRTZWxlY3Rpb247CiAgICAgICAgIG5l
d1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24odGFyZ2V0UG9zaXRpb24pOwogICAgIH0KIApA
QCAtNzMxLDcgKzc0NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgLy8gcHJlc3Mg
YW5kIGl0J3Mgbm90IGEgY29udGV4dCBtZW51IGNsaWNrLiAgV2UgZG8gdGhpcyBzbyB3aGVuIGNs
aWNraW5nCiAgICAgLy8gb24gdGhlIHNlbGVjdGlvbiwgdGhlIHNlbGVjdGlvbiBnb2VzIGF3YXku
ICBIb3dldmVyLCBpZiB3ZSBhcmUKICAgICAvLyBlZGl0aW5nLCBwbGFjZSB0aGUgY2FyZXQuCi0g
ICAgaWYgKG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbiAmJiAhbV9iZWdhblNl
bGVjdGluZ1RleHQKKyAgICBpZiAobV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9u
ICYmIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlICE9IEV4dGVuZGVkU2VsZWN0aW9uCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgICAgICYmIG1fZHJhZ1N0YXJ0UG9zID09IGV2
ZW50LmV2ZW50KCkucG9zKCkKICNlbmRpZgpAQCAtMjMyOCwyOSArMjM0MSw2IEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxl
cj4qIHRpbWVyKQogICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsKIH0KIAotLy8g
V2hldGhlciBvciBub3QgYSBtb3VzZSBkb3duIGNhbiBiZWdpbiB0aGUgY3JlYXRpb24gb2YgYSBz
ZWxlY3Rpb24uICBGaXJlcyB0aGUgc2VsZWN0U3RhcnQgZXZlbnQuCi1ib29sIEV2ZW50SGFuZGxl
cjo6Y2FuTW91c2VEb3duU3RhcnRTZWxlY3QoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUg
fHwgIW5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIC8v
IFNvbWUgY29udHJvbHMgYW5kIGltYWdlcyBjYW4ndCBzdGFydCBhIHNlbGVjdCBvbiBhIG1vdXNl
IGRvd24uCi0gICAgaWYgKCFub2RlLT5jYW5TdGFydFNlbGVjdGlvbigpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAKLSAgICByZXR1cm4gbm9kZS0+ZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3RzdGFydEV2ZW50LCB0cnVlLCB0cnVlKSk7
Ci19Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1v
dXNlRHJhZ0V4dGVuZFNlbGVjdChOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAKLSAgICBy
ZXR1cm4gbm9kZS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxl
Y3RzdGFydEV2ZW50LCB0cnVlLCB0cnVlKSk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQ
UE9SVCkKLQogdm9pZCBFdmVudEhhbmRsZXI6OnNldFJlc2l6aW5nRnJhbWVTZXQoSFRNTEZyYW1l
U2V0RWxlbWVudCogZnJhbWVTZXQpCiB7CiAgICAgbV9mcmFtZVNldEJlaW5nUmVzaXplZCA9IGZy
YW1lU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggMmJlZmFmMzU1ODRjNTA1
MzQ2ZjQyODJhZWMwNDY1MmIyMDM2MjEyYS4uMjM4MTQ0YTk1NjA1OTlmOWY4OGE2NmFlMmEzMTdk
NTZhZmVlNTExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlw
ZXMuaCIKICNpbmNsdWRlICJUZXh0RXZlbnRJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJUZXh0R3Jh
bnVsYXJpdHkuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBTVkdFbGVt
ZW50SW5zdGFuY2U7CiBjbGFzcyBTY3JvbGxiYXI7CiBjbGFzcyBUZXh0RXZlbnQ7CiBjbGFzcyBU
b3VjaEV2ZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFdoZWVsRXZlbnQ7CiBj
bGFzcyBXaWRnZXQ7CiAKQEAgLTI0NSw2ICsyNDcsNyBAQCBwcml2YXRlOgogI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25zdDsKKyAgICBib29sIHNldFNlbGVjdGlvbklmUG9zc2li
bGUoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwogICAg
IHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJik7CiAgICAgdm9pZCBzZWxlY3RDbG9zZXN0V29yZE9yTGlua0Zyb21N
b3VzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKIApAQCAtMjcx
LDExICsyNzQsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBob3ZlclRpbWVyRmlyZWQoVGltZXI8
RXZlbnRIYW5kbGVyPiopOwogCi0gICAgc3RhdGljIGJvb2wgY2FuTW91c2VEb3duU3RhcnRTZWxl
Y3QoTm9kZSopOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIGJvb2wgY2Fu
TW91c2VEcmFnRXh0ZW5kU2VsZWN0KE5vZGUqKTsKLSNlbmRpZgotCiAgICAgdm9pZCBoYW5kbGVB
dXRvc2Nyb2xsKFJlbmRlck9iamVjdCopOwogICAgIHZvaWQgc3RhcnRBdXRvc2Nyb2xsVGltZXIo
KTsKICAgICB2b2lkIHNldEF1dG9zY3JvbGxSZW5kZXJlcihSZW5kZXJPYmplY3QqKTsKQEAgLTM3
Nyw3ICszNzUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWc7
CiAjZW5kaWYKICAgICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbjsK
LSAgICBib29sIG1fYmVnYW5TZWxlY3RpbmdUZXh0OworICAgIGVudW0gU2VsZWN0aW9uSW5pdGlh
dGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24sIFBsYWNlZENhcmV0LCBFeHRlbmRl
ZFNlbGVjdGlvbiB9OworICAgIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSBtX3NlbGVjdGlvbklu
aXRpYXRpb25TdGF0ZTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgSW50UG9pbnQg
bV9kcmFnU3RhcnRQb3M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93106</attachid>
            <date>2011-05-11 04:54:25 -0700</date>
            <delta_ts>2011-05-23 13:10:14 -0700</delta_ts>
            <desc>fixed a test</desc>
            <filename>bug-19489-20110511045424.patch</filename>
            <type>text/plain</type>
            <size>25996</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYwNjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYWRlZmJjMDNkNjE4NzVhOGQwYzc2
M2ExNDg5ZTQ3ZTU2OGYzMmZmLi5hZWFmZWQzMjUyMGFmM2M0ZGU2NWJiZDQwZDJkMDk3YmFlMDhm
NGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUtMTAgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZm9yIGV2ZXJ5IG1vdXNlIG1vdmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg5CisKKyAgICAg
ICAgQWRkZWQgdGVzdHMgdG8gZW5zdXJlIHNlbGVjdHN0YXJ0IGlzIGRpc3BhdGNoZXMgZXhhY3Rs
eSBvbmNlIHdoZW4gc2VsZWN0aW5nIHRleHQgYnkgYSBtb3VzZSBkcmFnLAorICAgICAgICBhIG1v
dXNlIGNsaWNrLCBhIGRvdWJsZSBjbGljaywgb3IgYSB0cmlwbGUgY2xpY2suIEFsc28gcmViYXNl
bGluZWQgYSB0ZXN0IHRoYXQgcHJldmlvdXNseSBsb2dnZWQKKyAgICAgICAgZXh0cmEgc2VsZWN0
c3RhcnQgZGlzcGF0Y2hlcy4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5
LWRvdWJsZS10cmlwbGUtY2xpY2tzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy5odG1sOgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LXNpbmdsZS1jbGljay13aXRoLXNoaWZ0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnkt
c2luZ2xlLWNsaWNrLXdpdGgtc2hpZnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDUtMDggIEFiaGlz
aGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3Rh
cnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZG91YmxlLXRyaXBsZS1jbGlja3MtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMwMDcwOTdkNmJhMzM5NzRjMTYzZDYzNDczYWQ3OTRiMWZiMGFmOTUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1k
b3VibGUtdHJpcGxlLWNsaWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0
ZXN0IGVuc3VyZXMgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZXhhY3RseSBvbmNlIHdoZW4gc2VsZWN0
aW5nIHRleHQgYnkgYSBtb3VzZSBkcmFnLgorCitJbml0aWFsIHN0YXRlOiBQQVNTCitNb3VzZSBk
b3duOiBQQVNTCitNb3VzZSB1cDogUEFTUworU2Vjb25kIG1vdXNlIGRvd246IFBBU1MKK1NlY29u
ZCBtb3VzZSB1cDogUEFTUworVGhpcmQgbW91c2UgZG93bjogUEFTUworVGhpcmQgbW91c2UgdXA6
IFBBU1MKK0RvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVj
dHN0YXJ0LWJ5LWRvdWJsZS10cmlwbGUtY2xpY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zZWxlY3RzdGFydC1ieS1kb3VibGUtdHJpcGxlLWNsaWNrcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1NjA3YjllYjY0ZjI2MmQ0NjIyYzFlZjNjYmJjZGZmNWJkMThhNjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1kb3VibGUtdHJpcGxl
LWNsaWNrcy5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHNlbGVjdHN0YXJ0IGlzIGZpcmVkIGV4YWN0bHkg
b25jZSB3aGVuIHNlbGVjdGluZyB0ZXh0IGJ5IGEgbW91c2UgZHJhZy4KKzwvcD48c3BhbiBzdHls
ZT0nZm9udC1zaXplOiA1MHB4OyBwYWRkaW5nOiAxMHB4Oyc+aGVsbG8gd29ybGQ8L3NwYW4+PHBy
ZT48c2NyaXB0PgorCit2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
cGFuJylbMF07CitzcGFuLmZvY3VzKCk7CisKK3ZhciBzZWxlY3RTdGFydENvdW50ID0gMDsKK3Nw
YW4uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoZXZlbnQpIHsgc2Vs
ZWN0U3RhcnRDb3VudCsrOyB9KTsKKworZnVuY3Rpb24gZXhwZWN0KHRpdGxlLCBleHBlY3RlZENv
dW50LCBleHBlY3RlZFR5cGUsIGV4cGVjdGVkU3RyaW5nKSB7CisgICAgZG9jdW1lbnQud3JpdGUo
dGl0bGUgKyAnOiAnKTsKKyAgICB2YXIgYWN0dWFsU2VsZWN0aW9uVHlwZSA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5pc0NvbGxhcHNlZCA/ICdjYXJldCcgOiAncmFuZ2UnOworICAgIHZhciBhY3R1
YWxTdHJpbmcgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKKworICAgIGlmIChz
ZWxlY3RTdGFydENvdW50ICE9IGV4cGVjdGVkQ291bnQpCisgICAgICAgIGRvY3VtZW50LndyaXRl
bG4oJ0ZBSUwgLSBleHBlY3RlZCAnICsgZXhwZWN0ZWRDb3VudCArICcgZXZlbnRzIGJ1dCBnb3Qg
JyArIHNlbGVjdFN0YXJ0Q291bnQgKyAnIGV2ZW50cycpOworICAgIGVsc2UgaWYgKGFjdHVhbFNl
bGVjdGlvblR5cGUgIT0gZXhwZWN0ZWRUeXBlKQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdG
QUlMIC0gZXhwZWN0ZWQgc2VsZWN0aW9uIHRvIGJlICcgKyBleHBlY3RlZFR5cGUgKyAnIGJ1dCB3
YXMgJyArIGFjdHVhbFNlbGVjdGlvblR5cGUpOworICAgIGVsc2UgaWYgKGFjdHVhbFN0cmluZyAm
JiBhY3R1YWxTdHJpbmcgIT0gZXhwZWN0ZWRTdHJpbmcpCisgICAgICAgIGRvY3VtZW50LndyaXRl
bG4oJ0ZBSUwgLSBleHBlY3RlZCBzZWxlY3Rpb24gdG8gYmUgIicgKyBleHBlY3RlZFN0cmluZyAr
ICciIGJ1dCB3YXMgIicgKyBhY3R1YWxTdHJpbmcgKyAnIicpOworICAgIGVsc2UKKyAgICAgICAg
ZG9jdW1lbnQud3JpdGVsbignUEFTUycpOworfQorCitpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciB8fCAhd2luZG93LmV2ZW50U2VuZGVyKQorICAgIGRvY3VtZW50LndyaXRlKCdUaGlz
IHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXInKTsKK2Vsc2UgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB5ID0gc3Bhbi5vZmZzZXRUb3AgKyBzcGFu
Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXhwZWN0KCdJbml0aWFsIHN0YXRlJywgMCwgJ2NhcmV0
Jyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Bhbi5vZmZzZXRMZWZ0ICsgNSwgeSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXhwZWN0KCdNb3VzZSBkb3duJywg
MSwgJ2NhcmV0Jyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXhwZWN0KCdNb3VzZSB1cCcsIDEsICdjYXJldCcpOwor
CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICBleHBlY3QoJ1NlY29uZCBtb3VzZSBkb3duJywgMiwgJ3JhbmdlJywgJ2hl
bGxvJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgZXhwZWN0KCdTZWNvbmQgbW91c2UgdXAnLCAyLCAncmFuZ2UnLCAn
aGVsbG8nKTsKKworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CisgICAgZXhwZWN0KCdUaGlyZCBtb3VzZSBkb3duJywgMywgJ3Jh
bmdlJywgJ2hlbGxvIHdvcmxkXG4nKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgyMDAp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBleHBlY3QoJ1RoaXJkIG1vdXNlIHVw
JywgMywgJ3JhbmdlJywgJ2hlbGxvIHdvcmxkXG4nKTsKKworICAgIGRvY3VtZW50LndyaXRlbG4o
J0RvbmUuJyk7CisgICAgc3Bhbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNwYW4pOworfQorCis8
L3NjcmlwdD48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktZHJhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjJjYTNkZWM1MzA2MWI0NTA2YjMzNDM2ZGZmZjY3MzY1NzA2YWZjOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWRyYWctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHNlbGVjdHN0YXJ0IGlz
IGZpcmVkIGV4YWN0bHkgb25jZSB3aGVuIHNlbGVjdGluZyB0ZXh0IGJ5IGEgbW91c2UgZHJhZy4K
KworSW5pdGlhbCBzdGF0ZTogUEFTUworTW91c2UgZG93bjogUEFTUworTW92aW5nIHNsaWdodGx5
IHRvIHRoZSByaWdodDogUEFTUworTW92aW5nIHNsaWdodGx5IHRvIHRoZSBsZWZ0OiBQQVNTCitN
b3ZpbmcgdG8gdGhlIHJpZ2h0OiBQQVNTCitNb3ZpbmcgZnVydGhlciB0byB0aGUgcmlnaHQ6IFBB
U1MKK01vdmluZyBiYWNrIHRvIHRoZSBsZWZ0OiBQQVNTCitNb3ZpbmcgdG8gdGhlIHJpZ2h0IGFn
YWluOiBQQVNTCitNb3VzZSBkb3duIG9uIHRoZSByaWdodDogUEFTUworTW92aW5nIHRvIHRoZSBs
ZWZ0OiBQQVNTCitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
ZWxlY3RzdGFydC1ieS1kcmFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3Rz
dGFydC1ieS1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMzZWY1MDZmY2FhODJjNDA3NzM5YWI3YjFk
Yzc5MzFhM2Q2M2UyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NlbGVjdHN0YXJ0LWJ5LWRyYWcuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBpcyBm
aXJlZCBleGFjdGx5IG9uY2Ugd2hlbiBzZWxlY3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcuCis8
L3A+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTogNTBweDsgcGFkZGluZzogMTBweDsnIGNvbnRlbnRl
ZGl0YWJsZT5oZWxsbworPC9zcGFuPjxwcmU+PHNjcmlwdD4KKwordmFyIHNwYW4gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBdOworc3Bhbi5mb2N1cygpOworCit2YXIg
c2VsZWN0U3RhcnRDb3VudCA9IDA7CitzcGFuLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0
JywgZnVuY3Rpb24gKGV2ZW50KSB7IHNlbGVjdFN0YXJ0Q291bnQrKzsgfSk7CisKK2Z1bmN0aW9u
IGV4cGVjdCh0aXRsZSwgZXhwZWN0ZWRDb3VudCwgZXhwZWN0ZWRUeXBlKSB7CisgICAgZG9jdW1l
bnQud3JpdGUodGl0bGUgKyAnOiAnKTsKKyAgICB2YXIgYWN0dWFsU2VsZWN0aW9uVHlwZSA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5pc0NvbGxhcHNlZCA/ICdjYXJldCcgOiAncmFuZ2UnOworCisg
ICAgaWYgKHNlbGVjdFN0YXJ0Q291bnQgIT0gZXhwZWN0ZWRDb3VudCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGVsbignRkFJTCAtIGV4cGVjdGVkICcgKyBleHBlY3RlZENvdW50ICsgJyBldmVudHMg
YnV0IGdvdCAnICsgc2VsZWN0U3RhcnRDb3VudCArICcgZXZlbnRzJyk7CisgICAgZWxzZSBpZiAo
YWN0dWFsU2VsZWN0aW9uVHlwZSAhPSBleHBlY3RlZFR5cGUpCisgICAgICAgIGRvY3VtZW50Lndy
aXRlbG4oJ0ZBSUwgLSBleHBlY3RlZCBzZWxlY3Rpb24gdG8gYmUgJyArIGV4cGVjdGVkVHlwZSAr
ICcgYnV0IHdhcyAnICsgYWN0dWFsU2VsZWN0aW9uVHlwZSk7CisgICAgZWxzZQorICAgICAgICBk
b2N1bWVudC53cml0ZWxuKCdQQVNTJyk7Cit9CisKK2lmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgZG9jdW1lbnQud3JpdGUoJ1RoaXMg
dGVzdCByZXF1aXJlcyBldmVudFNlbmRlcicpOworZWxzZSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIHkgPSBzcGFuLm9mZnNldFRvcCArIHNwYW4u
b2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGZ1bmN0aW9uIGxlYXBGb3J3YXJkQW5kTW92ZSh4KSB7
CisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIHgsIHkpOworICAgIH0KKworICAgIGV4
cGVjdCgnSW5pdGlhbCBzdGF0ZScsIDAsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVyLmRyYWdN
b2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Bhbi5vZmZzZXRMZWZ0
ICsgNSwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXhwZWN0KCdNb3Vz
ZSBkb3duJywgMSwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoNSk7CisgICAg
ZXhwZWN0KCdNb3Zpbmcgc2xpZ2h0bHkgdG8gdGhlIHJpZ2h0JywgMSwgJ2NhcmV0Jyk7CisKKyAg
ICBsZWFwRm9yd2FyZEFuZE1vdmUoLTUpOworICAgIGV4cGVjdCgnTW92aW5nIHNsaWdodGx5IHRv
IHRoZSBsZWZ0JywgMSwgJ2NhcmV0Jyk7CisKKyAgICBsZWFwRm9yd2FyZEFuZE1vdmUoc3Bhbi5v
ZmZzZXRXaWR0aCAvIDIpOworICAgIGV4cGVjdCgnTW92aW5nIHRvIHRoZSByaWdodCcsIDEsICdy
YW5nZScpOworCisgICAgbGVhcEZvcndhcmRBbmRNb3ZlKHNwYW4ub2Zmc2V0V2lkdGgpOworICAg
IGV4cGVjdCgnTW92aW5nIGZ1cnRoZXIgdG8gdGhlIHJpZ2h0JywgMSwgJ3JhbmdlJyk7CisKKyAg
ICBsZWFwRm9yd2FyZEFuZE1vdmUoMCk7CisgICAgZXhwZWN0KCdNb3ZpbmcgYmFjayB0byB0aGUg
bGVmdCcsIDEsICdjYXJldCcpOworCisgICAgbGVhcEZvcndhcmRBbmRNb3ZlKHNwYW4ub2Zmc2V0
V2lkdGgpOworICAgIGV4cGVjdCgnTW92aW5nIHRvIHRoZSByaWdodCBhZ2FpbicsIDEsICdyYW5n
ZScpOworCisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZXRQb3NpdGlvbihzcGFuLCAwKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgx
MDAwKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNwYW4ub2Zmc2V0TGVmdCArIHNw
YW4ub2Zmc2V0V2lkdGggLSA1LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAg
ICBleHBlY3QoJ01vdXNlIGRvd24gb24gdGhlIHJpZ2h0JywgMiwgJ2NhcmV0Jyk7CisKKyAgICBs
ZWFwRm9yd2FyZEFuZE1vdmUoc3Bhbi5vZmZzZXRXaWR0aCAvIDIpOworICAgIGV4cGVjdCgnTW92
aW5nIHRvIHRoZSBsZWZ0JywgMiwgJ3JhbmdlJyk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CisKKyAgICBkb2N1bWVudC53cml0ZWxuKCdEb25lLicpOworICAgIHNwYW4ucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChzcGFuKTsKK30KKworPC9zY3JpcHQ+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1z
aW5nbGUtY2xpY2std2l0aC1zaGlmdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zZWxlY3RzdGFydC1ieS1zaW5nbGUtY2xpY2std2l0aC1zaGlmdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGUyMmE5MDYwMjhmZTU1YmM1ODNlZjFiZGE2YWE3OGFiMTgzNmE4MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LXNp
bmdsZS1jbGljay13aXRoLXNoaWZ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlz
IHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBpcyBmaXJlZCBleGFjdGx5IG9uY2Ugd2hlbiBzZWxl
Y3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcuCisKK0luaXRpYWwgc3RhdGU6IFBBU1MKK01vdXNl
IGRvd246IFBBU1MKK01vdXNlIHVwOiBQQVNTCitNb3ZpbmcgdG8gdGhlIHJpZ2h0OiBQQVNTCitT
ZWNvbmQgbW91c2UgZG93bjogUEFTUworU2Vjb25kIG1vdXNlIHVwOiBQQVNTCitEb25lLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1ieS1zaW5nbGUt
Y2xpY2std2l0aC1zaGlmdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3Rh
cnQtYnktc2luZ2xlLWNsaWNrLXdpdGgtc2hpZnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzNkNTM2NThh
ZjkxYmJiZTIyYTAyYWQ0NzA1N2RjMDg3NTA2MWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktc2luZ2xlLWNsaWNrLXdpdGgtc2hpZnQu
aHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgZW5zdXJlcyBzZWxlY3RzdGFydCBpcyBmaXJlZCBleGFjdGx5IG9uY2Ugd2hl
biBzZWxlY3RpbmcgdGV4dCBieSBhIG1vdXNlIGRyYWcuCis8L3A+PHNwYW4gc3R5bGU9J2ZvbnQt
c2l6ZTogNTBweDsgcGFkZGluZzogMTBweDsnPmhlbGxvIHdvcmxkCis8L3NwYW4+PHByZT48c2Ny
aXB0PgorCit2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylb
MF07CitzcGFuLmZvY3VzKCk7CisKK3ZhciBzZWxlY3RTdGFydENvdW50ID0gMDsKK3NwYW4uYWRk
RXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoZXZlbnQpIHsgc2VsZWN0U3Rh
cnRDb3VudCsrOyB9KTsKKworZnVuY3Rpb24gZXhwZWN0KHRpdGxlLCBleHBlY3RlZENvdW50LCBl
eHBlY3RlZFR5cGUpIHsKKyAgICBkb2N1bWVudC53cml0ZSh0aXRsZSArICc6ICcpOworICAgIHZh
ciBhY3R1YWxTZWxlY3Rpb25UeXBlID0gd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2Vk
ID8gJ2NhcmV0JyA6ICdyYW5nZSc7CisKKyAgICBpZiAoc2VsZWN0U3RhcnRDb3VudCAhPSBleHBl
Y3RlZENvdW50KQorICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdGQUlMIC0gZXhwZWN0ZWQgJyAr
IGV4cGVjdGVkQ291bnQgKyAnIGV2ZW50cyBidXQgZ290ICcgKyBzZWxlY3RTdGFydENvdW50ICsg
JyBldmVudHMnKTsKKyAgICBlbHNlIGlmIChhY3R1YWxTZWxlY3Rpb25UeXBlICE9IGV4cGVjdGVk
VHlwZSkKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbignRkFJTCAtIGV4cGVjdGVkIHNlbGVjdGlv
biB0byBiZSAnICsgZXhwZWN0ZWRUeXBlICsgJyBidXQgd2FzICcgKyBhY3R1YWxTZWxlY3Rpb25U
eXBlKTsKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJ1BBU1MnKTsKK30KKwor
aWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5ldmVudFNlbmRlcikK
KyAgICBkb2N1bWVudC53cml0ZSgnVGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50U2VuZGVyJyk7Citl
bHNlIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIg
eSA9IHNwYW4ub2Zmc2V0VG9wICsgc3Bhbi5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV4cGVjdCgn
SW5pdGlhbCBzdGF0ZScsIDAsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHNwYW4ub2Zmc2V0TGVmdCArIDUsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ICAgIGV4cGVjdCgnTW91c2UgZG93bicsIDEsICdjYXJldCcpOworICAgIGV2ZW50U2VuZGVyLmxl
YXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV4cGVjdCgn
TW91c2UgdXAnLCAxLCAnY2FyZXQnKTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNw
YW4ub2Zmc2V0TGVmdCArIHNwYW4ub2Zmc2V0V2lkdGggLSA1LCB5KTsKKyAgICBleHBlY3QoJ01v
dmluZyB0byB0aGUgcmlnaHQnLCAxLCAnY2FyZXQnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oMCwgWydzaGlmdEtleSddKTsKKyAgICBleHBlY3QoJ1NlY29uZCBtb3VzZSBkb3duJywgMiwg
J3JhbmdlJyk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CisgICAgZXhwZWN0KCdTZWNvbmQgbW91c2UgdXAnLCAyLCAncmFuZ2Un
KTsKKworICAgIGRvY3VtZW50LndyaXRlbG4oJ0RvbmUuJyk7CisgICAgc3Bhbi5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKHNwYW4pOworfQorCis8L3NjcmlwdD48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9vYmpj
LWV2ZW50LWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9l
dmVudHMvb2JqYy1ldmVudC1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDVhMTdmZWY5ODIxMWY5ZmVj
ODFjYjU4YjQ0YWViODc4MzA2NjUzMjQuLmMzNTM0NGRhYTJmYTAxMjMwMTYzMWQ1MzE0NmY0MDY4
YzZhYmM3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50
cy9vYmpjLWV2ZW50LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZXZlbnRzL29iamMtZXZlbnQtYXBpLWV4cGVjdGVkLnR4dApAQCAtMzQxLDExICsz
NDEsNiBAQCBldmVudCB0eXBlOiAgICAgIG1vdXNlbW92ZQogICBzY3JlZW5YOiAgICAgICAtOTk5
OQogICBzY3JlZW5ZOiAgICAgICAtOTk5OQogICBtb2RpZmllciBrZXlzOiBjOjAgczowIGE6MCBt
OjAKLWV2ZW50IHR5cGU6ICAgICAgc2VsZWN0c3RhcnQKLSAgdGFyZ2V0OiAgICAgICAgPGh0bWw+
Ci0gIGV2ZW50UGhhc2U6ICAgIDMKLSAgYnViYmxlczogICAgICAgMQotICBjYW5jZWxhYmxlOiAg
ICAxCiBldmVudCB0eXBlOiAgICAgIG1vdXNldXAKICAgdGFyZ2V0OiAgICAgICAgPGh0bWw+CiAg
IGV2ZW50UGhhc2U6ICAgIDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYWQ2YzJiOTg3MTY5MmExNzQwZmQyMDQ5
ZDNkMGU1MjdlNDg2NTk4Li4yZjMyOThhZTQzMmY0OWIzMmI0MTE4OGQwZjhhNjgzOTYyYzdkZWIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDUtMTAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc2VsZWN0c3RhcnQgaXMgZmlyZWQgZm9yIGV2ZXJ5IG1vdXNlIG1vdmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDg5CisKKyAg
ICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBkaXNwYXRjaCBzZWxlY3RzdGFydCBldmVudCBpbW1lZGlh
dGVseSBiZWZvcmUgbW9kaWZ5aW5nIHNlbGVjdGlvbiBpbgorICAgICAgICBoYW5kbGVNb3VzZVBy
ZXNzRXZlbnRTaW5nbGVDbGljayBhbmQgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnLgorCisg
ICAgICAgIEFsc28gcmVwbGFjZWQgYSBib29sZWFuIEV2ZW50SGFuZGxlcjo6bV9iZWdhblNlbGVj
dGluZ1RleHQgYnkgYW4gZW51bS12YWx1ZWQgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUKKyAg
ICAgICAgdG8gcmV0YWluIDMgc3RhdGVzOgorICAgICAgICAxLiBIYXZlTm90U3RhcnRlZFNlbGVj
dGlvbiAtIFNlbGVjdGlvbiBoYXMgbm90IGJlZW4gc2V0IGJ5IGEgbW91c2UgZHJhZyBvciBhIG1v
dXNlIGNsaWNrCisgICAgICAgIDIuIFBsYWNlZENhcmV0IC0gQSBjYXJldCB3YXMgcGxhY2VkIGJ5
IGEgbW91c2UgY2xpY2ssIGRvdWJsZSBjbGljaywgb3IgdHJpcGxlIGNsaWNrLCBhbmQgaXMgYWJv
dXQKKyAgICAgICAgdG8gcmVwbGFjZSBzZWxlY3Rpb24gaWYgYSBtb3VzZSBkcmFnIG5ldmVyIG9j
Y3Vycy4KKyAgICAgICAgMy4gRXh0ZW5kZWRTZWxlY3Rpb24gLSBBIHJhbmdlIHNlbGVjdGlvbiB3
YXMgc2V0IGJ5IGEgbW91c2UgY2xpY2ssIGEgZG91YmxlIGNsaWNrLCBhIHRyaXBsZSBjbGljaywK
KyAgICAgICAgb3IgYSBtb3VzZSBkcmFnOyBvdGhlcndpc2UgYSBjYXJldCBzZWxlY3Rpb24gd2Fz
IHNldCBieSBhIG1vdXNlIGRyYWcuCisKKyAgICAgICAgU3RhdGUgMSBjb3JyZXNwb25kcyB0byBt
X2JlZ2FuU2VsZWN0aW5nVGV4dCBiZWluZyBmYWxzZSBhbmQgc3RhdGUgMyBjb3JyZXNwb25kcyB0
byBtX2JlZ2FuU2VsZWN0aW5nVGV4dAorICAgICAgICBiZWluZyB0cnVlLiBTdGF0ZSAyIGlzIHVz
ZWQgaW4gdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnIHRvIGF2b2lkIGRpc3BhdGNoaW5nIHNl
bGVjdHN0YXJ0IHR3aWNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0
LWJ5LWRvdWJsZS10cmlwbGUtY2xpY2tzLmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
c2VsZWN0c3RhcnQtYnktZHJhZy5odG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NlbGVj
dHN0YXJ0LWJ5LXNpbmdsZS1jbGljay13aXRoLXNoaWZ0Lmh0bWwKKworICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDogUmVtb3ZlZCBjYW5Nb3VzZURyYWdFeHRlbmRTZWxlY3QuCisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6IEluaXRpYWxpemVzIG1f
c2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkU3RhcnRT
ZWxlY3Rpb24pOiBSZXR1cm5zIHRydWUgb25seSBpZiBzZWxlY3RzdGFydCB3YXMgc3VjY2Vzc2Z1
bGx5IGZpcmVkCisgICAgICAgIGFuZCBkZWZhdWx0IGFjdGlvbiB3YXMgbm90IHByZXZlbnRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0U2VsZWN0aW9uSWZQb3NzaWJsZSk6
IFVwZGF0ZXMgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgYW5kIG1vZGlmaWVzCisgICAgICAg
IHRoZSBzZWxlY3Rpb24gaWYgc2hvdWxkU3RhcnRTZWxlY3Rpb24gcmV0dXJucyB0cnVlLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2
ZW50KTogQ2FsbHMgc2V0U2VsZWN0aW9uSWZQb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRE
b3VibGVDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
UHJlc3NFdmVudFRyaXBsZUNsaWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpjYW5Nb3VzZURvd25TdGFydFNlbGVjdCk6IE5vIGxvbmdlciBkaXNwYXRjaGVz
IHN0YXJ0c2VsZWN0OyBhbHNvIHJlbmFtZWQgZnJvbQorICAgICAgICBFdmVudEhhbmRsZXI6OmNh
bk1vdXNlRG93blN0YXJ0U2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVNb3VzZVByZXNzRXZlbnQpOiBObyBsb25nZXIgY2FsbHMgY2FuTW91c2VEcmFnRXh0ZW5k
U2VsZWN0LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdn
ZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlv
bkZvck1vdXNlRHJhZyk6IEV4aXQgZWFybHkgaWYgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUg
aXMKKyAgICAgICAgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gYW5kIHNob3VsZFN0YXJ0U2VsZWN0
aW9uIHJldHVybnMgZmFsc2UuIFNpbmNlIHNldFNlbGVjdGlvbklmUG9zc2libGUgZGlzcGF0Y2hl
cworICAgICAgICBzZWxlY3RzdGFydCBldmVudCBiZWZvcmUgYXNzaWduaW5nIFBsYWNlZENhcmV0
IG9yIEV4dGVuZGVkU2VsZWN0aW9uIHRvIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlLAorICAg
ICAgICB0aGVyZSBpcyBubyBuZWVkIHRvIGRpc3BhdGNoIGV2ZW50IGZvciB0aG9zZSB0d28gY2Fz
ZXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2
ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOiBSZW1vdmVkIGNhbk1vdXNlRG93
blN0YXJ0U2VsZWN0IGFuZCBjYW5Nb3VzZURyYWdFeHRlbmRTZWxlY3QgZnJvbSBFdmVudEhhbmRs
ZXIKKyAgICAgICAgYW5kIGFkZGVkIHNldFNlbGVjdGlvbklmUG9zc2libGUuCisKIDIwMTEtMDUt
MDkgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4
IGE3MTJiN2M2ODE1MGQ4ZTgyZjlkNjAyMzZiYzhmNTZmNDZhMTUwNGYuLjM2ZDJmMGEwNGY4OWMw
NjEwY2UwNjBjODQwNDkyZjI2MmYzMDBmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcihGcmFt
ZSogZnJhbWUpCiAgICAgLCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyhmYWxzZSkKICNlbmRpZgog
ICAgICwgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uKGZhbHNlKQotICAgICwg
bV9iZWdhblNlbGVjdGluZ1RleHQoZmFsc2UpCisgICAgLCBtX3NlbGVjdGlvbkluaXRpYXRpb25T
dGF0ZShIYXZlTm90U3RhcnRlZFNlbGVjdGlvbikKICAgICAsIG1fcGFuU2Nyb2xsSW5Qcm9ncmVz
cyhmYWxzZSkKICAgICAsIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZChmYWxzZSkKICAgICAsIG1f
c3ByaW5nTG9hZGVkUGFuU2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKQEAgLTI3MCw2ICsyNzAsMzEg
QEAgc3RhdGljIHZvaWQgc2V0Tm9uRGlyZWN0aW9uYWxTZWxlY3Rpb25JZk5lZWRlZChGcmFtZVNl
bGVjdGlvbiogc2VsZWN0aW9uLCBjb25zdAogICAgICAgICBzZWxlY3Rpb24tPnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24p
OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkU3RhcnRTZWxlY3Rpb24oTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgcmV0dXJuIG5vZGUtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc2VsZWN0c3RhcnRFdmVudCwgdHJ1ZSwgdHJ1ZSkpOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6c2V0U2VsZWN0aW9uSWZQb3NzaWJsZShOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKK3sKKyAgICBpZiAoIXNob3VsZFN0YXJ0U2VsZWN0aW9uKHRhcmdldE5vZGUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobmV3U2VsZWN0aW9uLmlzUmFuZ2UoKSkKKyAg
ICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKKyAg
ICBlbHNlIHsKKyAgICAgICAgZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eTsKKyAg
ICAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBQbGFjZWRDYXJldDsKKyAgICB9CisK
KyAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlv
bigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKworICAgIHJldHVybiB0cnVlOworfQor
CiB2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCiB7CiAgICAgTm9kZSogaW5u
ZXJOb2RlID0gdGFyZ2V0Tm9kZShyZXN1bHQpOwpAQCAtMjc3LDIwICszMDIsMTUgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmUKIAogICAgIGlmIChpbm5lck5vZGUgJiYgaW5uZXJOb2RlLT5yZW5k
ZXJlcigpICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpIHsKICAgICAgICAgVmlzaWJsZVBv
c2l0aW9uIHBvcyhpbm5lck5vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQocmVzdWx0
LmxvY2FsUG9pbnQoKSkpOwotICAgICAgICBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBD
aGFyYWN0ZXJHcmFudWxhcml0eTsKICAgICAgICAgaWYgKHBvcy5pc05vdE51bGwoKSkgewogICAg
ICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwogICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFyaXR5KTsK
ICAgICAgICAgfQotICAgIAotICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzUmFuZ2UoKSkgewot
ICAgICAgICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7Ci0gICAgICAgICAgICBt
X2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgICAgICBpZiAocmVzdWx0LmV2ZW50
KCkuY2xpY2tDb3VudCgpID09IDIgJiYgbV9mcmFtZS0+ZWRpdG9yKCktPmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpKSAKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uYXBw
ZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKCk7ICAgICAgICAgICAgCi0gICAgICAgIH0KIAotICAgICAg
ICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigp
LCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5p
c1JhbmdlKCkgJiYgcmVzdWx0LmV2ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgbV9mcmFtZS0+
ZWRpdG9yKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpKSAKKyAgICAgICAg
ICAgIG5ld1NlbGVjdGlvbi5hcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UoKTsKKworICAgICAgICBz
ZXRTZWxlY3Rpb25JZlBvc3NpYmxlKGlubmVyTm9kZSwgbmV3U2VsZWN0aW9uLCBXb3JkR3JhbnVs
YXJpdHkpOwogICAgIH0KIH0KIApAQCAtMzA3LDE0ICszMjcsOCBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdAogICAgICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKGlubmVyTm9kZS0+cmVuZGVyZXIo
KS0+cG9zaXRpb25Gb3JQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKSk7CiAgICAgICAgIGlmIChw
b3MuaXNOb3ROdWxsKCkgJiYgcG9zLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKS0+
aXNEZXNjZW5kYW50T2YoVVJMRWxlbWVudCkpCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUoVVJMRWxlbWVudCk7
Ci0gICAgCi0gICAgICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSA9IENoYXJhY3Rlckdy
YW51bGFyaXR5OwotICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzUmFuZ2UoKSkgewotICAgICAg
ICAgICAgZ3JhbnVsYXJpdHkgPSBXb3JkR3JhbnVsYXJpdHk7Ci0gICAgICAgICAgICBtX2JlZ2Fu
U2VsZWN0aW5nVGV4dCA9IHRydWU7Ci0gICAgICAgIH0KIAotICAgICAgICBzZXROb25EaXJlY3Rp
b25hbFNlbGVjdGlvbklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24s
IGdyYW51bGFyaXR5KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uSWZQb3NzaWJsZShpbm5lck5vZGUs
IG5ld1NlbGVjdGlvbiwgV29yZEdyYW51bGFyaXR5KTsKICAgICB9CiB9CiAKQEAgLTMyOSw3ICsz
NDMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xp
Y2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UgogICAgICAgICAvLyBzZWxlY3RDbG9zZXN0
V29yZEZyb21Nb3VzZUV2ZW50LCBidXQgZG8gc2V0CiAgICAgICAgIC8vIG1fYmVnYW5TZWxlY3Rp
bmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQKICAgICAgICAgLy8gZnJv
bSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KLSAgICAgICAgbV9iZWdhblNlbGVjdGluZ1RleHQg
PSB0cnVlOworICAgICAgICBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSA9IEV4dGVuZGVkU2Vs
ZWN0aW9uOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVu
dChldmVudCk7CiAKQEAgLTM1MSwxNiArMzY1LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFIK
ICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwogICAgICAgICBu
ZXdTZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShQYXJhZ3JhcGhHcmFudWxhcml0eSk7
CiAgICAgfQotICAgIAotICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSA9IENoYXJhY3Rl
ckdyYW51bGFyaXR5OwotICAgIGlmIChuZXdTZWxlY3Rpb24uaXNSYW5nZSgpKSB7Ci0gICAgICAg
IGdyYW51bGFyaXR5ID0gUGFyYWdyYXBoR3JhbnVsYXJpdHk7Ci0gICAgICAgIG1fYmVnYW5TZWxl
Y3RpbmdUZXh0ID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzZXROb25EaXJlY3Rpb25hbFNlbGVjdGlv
bklmTmVlZGVkKG1fZnJhbWUtPnNlbGVjdGlvbigpLCBuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5
KTsKIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzZXRTZWxlY3Rpb25JZlBvc3NpYmxl
KGlubmVyTm9kZSwgbmV3U2VsZWN0aW9uLCBQYXJhZ3JhcGhHcmFudWxhcml0eSk7CiB9CiAKIHN0
YXRpYyBpbnQgdGV4dERpc3RhbmNlKGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRp
b24mIGVuZCkKQEAgLTQxMSwyMCArNDE3LDI2IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSCiAg
ICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihlbmQsIHBvcyk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJs
ZVNlbGVjdGlvbihzdGFydCwgcG9zKTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvcyk7Ci0gICAgICAgIH0KIAog
ICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFyaXR5KCkgIT0gQ2hhcmFj
dGVyR3JhbnVsYXJpdHkpIHsKICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0gbV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPmdyYW51bGFyaXR5KCk7CiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uZXhwYW5k
VXNpbmdHcmFudWxhcml0eShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Z3JhbnVsYXJpdHkoKSk7CiAg
ICAgICAgIH0KLQotICAgICAgICBtX2JlZ2FuU2VsZWN0aW5nVGV4dCA9IHRydWU7CiAgICAgfSBl
bHNlCiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvcyk7
CisgICAgCisgICAgcmV0dXJuIHNldFNlbGVjdGlvbklmUG9zc2libGUoaW5uZXJOb2RlLCBuZXdT
ZWxlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KIAotICAgIHNldE5vbkRpcmVjdGlvbmFsU2VsZWN0
aW9uSWZOZWVkZWQobV9mcmFtZS0+c2VsZWN0aW9uKCksIG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJp
dHkpOworc3RhdGljIGlubGluZSBib29sIGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KE5vZGUqIG5v
ZGUpCit7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmICghbm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00ODYsNyArNDk4LDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKIAogICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7
CiAgICAgbV9tb3VzZVByZXNzZWQgPSB0cnVlOwotICAgIG1fYmVnYW5TZWxlY3RpbmdUZXh0ID0g
ZmFsc2U7CisgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBIYXZlTm90U3RhcnRlZFNl
bGVjdGlvbjsKIAogICAgIGlmIChldmVudC5ldmVudCgpLmNsaWNrQ291bnQoKSA9PSAyKQogICAg
ICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnREb3VibGVDbGljayhldmVu
dCk7CkBAIC01NjIsNyArNTc0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlRHJh
Z2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGUKICAgICAgICAg
bV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAo
IW1fYmVnYW5TZWxlY3RpbmdUZXh0KSB7CisgICAgaWYgKG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0
YXRlICE9IEV4dGVuZGVkU2VsZWN0aW9uKSB7CiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAg
ICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1fbW91c2VEb3duUG9zKTsKICAgICAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3Qs
IHJlc3VsdCk7CkBAIC02NTEsOSArNjYzLDYgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNl
bGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWwKICAg
ICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFjYW5Nb3VzZURyYWdF
eHRlbmRTZWxlY3QodGFyZ2V0KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgVmlzaWJsZVBvc2l0
aW9uIHRhcmdldFBvc2l0aW9uID0gc2VsZWN0aW9uRXh0ZW50UmVzcGVjdGluZ0VkaXRpbmdCb3Vu
ZGFyeShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCksIGhpdFRlc3RSZXN1bHQubG9j
YWxQb2ludCgpLCB0YXJnZXQpOwogCiAgICAgLy8gRG9uJ3QgbW9kaWZ5IHRoZSBzZWxlY3Rpb24g
aWYgd2UncmUgbm90IG9uIGEgbm9kZS4KQEAgLTY3NCw4ICs2ODMsMTIgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0JiBo
aXRUZXN0UmVzdWwKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSAgICBp
ZiAoIW1fYmVnYW5TZWxlY3RpbmdUZXh0KSB7Ci0gICAgICAgIG1fYmVnYW5TZWxlY3RpbmdUZXh0
ID0gdHJ1ZTsKKyAgICBpZiAobV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPT0gSGF2ZU5vdFN0
YXJ0ZWRTZWxlY3Rpb24gJiYgIXNob3VsZFN0YXJ0U2VsZWN0aW9uKHRhcmdldCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSAhPSBFeHRlbmRl
ZFNlbGVjdGlvbikgeworICAgICAgICAvLyBBbHdheXMgZXh0ZW5kIHNlbGVjdGlvbiBoZXJlIGJl
Y2F1c2UgaXQncyBjYXVzZWQgYnkgYSBtb3VzZSBkcmFnCisgICAgICAgIG1fc2VsZWN0aW9uSW5p
dGlhdGlvblN0YXRlID0gRXh0ZW5kZWRTZWxlY3Rpb247CiAgICAgICAgIG5ld1NlbGVjdGlvbiA9
IFZpc2libGVTZWxlY3Rpb24odGFyZ2V0UG9zaXRpb24pOwogICAgIH0KIApAQCAtNzMxLDcgKzc0
NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgLy8gcHJlc3MgYW5kIGl0J3Mgbm90
IGEgY29udGV4dCBtZW51IGNsaWNrLiAgV2UgZG8gdGhpcyBzbyB3aGVuIGNsaWNraW5nCiAgICAg
Ly8gb24gdGhlIHNlbGVjdGlvbiwgdGhlIHNlbGVjdGlvbiBnb2VzIGF3YXkuICBIb3dldmVyLCBp
ZiB3ZSBhcmUKICAgICAvLyBlZGl0aW5nLCBwbGFjZSB0aGUgY2FyZXQuCi0gICAgaWYgKG1fbW91
c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbiAmJiAhbV9iZWdhblNlbGVjdGluZ1RleHQK
KyAgICBpZiAobV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uICYmIG1fc2VsZWN0
aW9uSW5pdGlhdGlvblN0YXRlICE9IEV4dGVuZGVkU2VsZWN0aW9uCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKICAgICAgICAgICAgICYmIG1fZHJhZ1N0YXJ0UG9zID09IGV2ZW50LmV2ZW50KCku
cG9zKCkKICNlbmRpZgpAQCAtMjMyOCwyOSArMjM0MSw2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpm
YWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQog
ICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsKIH0KIAotLy8gV2hldGhlciBvciBu
b3QgYSBtb3VzZSBkb3duIGNhbiBiZWdpbiB0aGUgY3JlYXRpb24gb2YgYSBzZWxlY3Rpb24uICBG
aXJlcyB0aGUgc2VsZWN0U3RhcnQgZXZlbnQuCi1ib29sIEV2ZW50SGFuZGxlcjo6Y2FuTW91c2VE
b3duU3RhcnRTZWxlY3QoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJl
bmRlcmVyKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIC8vIFNvbWUgY29udHJv
bHMgYW5kIGltYWdlcyBjYW4ndCBzdGFydCBhIHNlbGVjdCBvbiBhIG1vdXNlIGRvd24uCi0gICAg
aWYgKCFub2RlLT5jYW5TdGFydFNlbGVjdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICAKLSAgICByZXR1cm4gbm9kZS0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5zZWxlY3RzdGFydEV2ZW50LCB0cnVlLCB0cnVlKSk7Ci19Ci0KLSNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQotYm9vbCBFdmVudEhhbmRsZXI6OmNhbk1vdXNlRHJhZ0V4dGVu
ZFNlbGVjdChOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXIo
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAKLSAgICByZXR1cm4gbm9kZS0+
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3RzdGFydEV2ZW50
LCB0cnVlLCB0cnVlKSk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKLQogdm9p
ZCBFdmVudEhhbmRsZXI6OnNldFJlc2l6aW5nRnJhbWVTZXQoSFRNTEZyYW1lU2V0RWxlbWVudCog
ZnJhbWVTZXQpCiB7CiAgICAgbV9mcmFtZVNldEJlaW5nUmVzaXplZCA9IGZyYW1lU2V0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggMmJlZmFmMzU1ODRjNTA1MzQ2ZjQyODJhZWMw
NDY1MmIyMDM2MjEyYS4uMjM4MTQ0YTk1NjA1OTlmOWY4OGE2NmFlMmEzMTdkNTZhZmVlNTExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNs
dWRlICJUZXh0RXZlbnRJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJUZXh0R3JhbnVsYXJpdHkuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBTVkdFbGVtZW50SW5zdGFuY2U7
CiBjbGFzcyBTY3JvbGxiYXI7CiBjbGFzcyBUZXh0RXZlbnQ7CiBjbGFzcyBUb3VjaEV2ZW50Owor
Y2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFdoZWVsRXZlbnQ7CiBjbGFzcyBXaWRnZXQ7
CiAKQEAgLTI0NSw2ICsyNDcsNyBAQCBwcml2YXRlOgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKSBjb25zdDsKKyAgICBib29sIHNldFNlbGVjdGlvbklmUG9zc2libGUoTm9kZSosIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwogICAgIHZvaWQgc2VsZWN0
Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJik7CiAgICAgdm9pZCBzZWxlY3RDbG9zZXN0V29yZE9yTGlua0Zyb21Nb3VzZUV2ZW50KGNv
bnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKIApAQCAtMjcxLDExICsyNzQsNiBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBob3ZlclRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVy
PiopOwogCi0gICAgc3RhdGljIGJvb2wgY2FuTW91c2VEb3duU3RhcnRTZWxlY3QoTm9kZSopOwot
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIGJvb2wgY2FuTW91c2VEcmFnRXh0
ZW5kU2VsZWN0KE5vZGUqKTsKLSNlbmRpZgotCiAgICAgdm9pZCBoYW5kbGVBdXRvc2Nyb2xsKFJl
bmRlck9iamVjdCopOwogICAgIHZvaWQgc3RhcnRBdXRvc2Nyb2xsVGltZXIoKTsKICAgICB2b2lk
IHNldEF1dG9zY3JvbGxSZW5kZXJlcihSZW5kZXJPYmplY3QqKTsKQEAgLTM3Nyw3ICszNzUsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWc7CiAjZW5kaWYKICAg
ICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbjsKLSAgICBib29sIG1f
YmVnYW5TZWxlY3RpbmdUZXh0OworICAgIGVudW0gU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsg
SGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24sIFBsYWNlZENhcmV0LCBFeHRlbmRlZFNlbGVjdGlvbiB9
OworICAgIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0
ZTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgSW50UG9pbnQgbV9kcmFnU3RhcnRQ
b3M7Cg==
</data>
<flag name="review"
          id="86213"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>