<?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>116642</bug_id>
          
          <creation_ts>2013-05-22 15:50:22 -0700</creation_ts>
          <short_desc>[Gstreamer] cleanup buffering and state updates</short_desc>
          <delta_ts>2013-06-20 14:06:52 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116817</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jer.noble</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>892580</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-22 15:50:22 -0700</bug_when>
    <thetext>Plans:
 - always do download buffering
 - some logic cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892586</commentid>
    <comment_count>1</comment_count>
      <attachid>202630</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-22 16:29:42 -0700</bug_when>
    <thetext>Created attachment 202630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892599</commentid>
    <comment_count>2</comment_count>
      <attachid>202633</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-22 17:15:47 -0700</bug_when>
    <thetext>Created attachment 202633
better to init members</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893230</commentid>
    <comment_count>3</comment_count>
      <attachid>202633</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-24 02:05:19 -0700</bug_when>
    <thetext>Comment on attachment 202633
better to init members

This needs some more work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893237</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-24 02:22:40 -0700</bug_when>
    <thetext>Please obsolete and clear the r flag instead of marking r- if you&apos;re not a reviewer yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893338</commentid>
    <comment_count>5</comment_count>
      <attachid>202831</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-24 09:50:50 -0700</bug_when>
    <thetext>Created attachment 202831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893964</commentid>
    <comment_count>6</comment_count>
      <attachid>202831</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-27 04:19:54 -0700</bug_when>
    <thetext>Comment on attachment 202831
Patch

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

It&apos;s odd that patch fixes http media tests for EFL, those seem to pass already in GTK at least.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1182
&gt; +        // Live pipelines go in PAUSED without prerolling.
&gt; +        m_isStreaming = true;
&gt; +        setDownloadBuffering();

Why moving this out of the test below?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1521
&gt; +    bool shouldDownload = !isLiveStream();
&gt; +    if (shouldDownload) {

No need for a local variable here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893988</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-27 05:28:04 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 202831 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=202831&amp;action=review
&gt; 
&gt; It&apos;s odd that patch fixes http media tests for EFL, those seem to pass already in GTK at least.

Indeed, that&apos;s strange. Event loop is different on EFL (that integrates the glib loop with it&apos;s own). I guess the difference is timing related.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1182
&gt; &gt; +        // Live pipelines go in PAUSED without prerolling.
&gt; &gt; +        m_isStreaming = true;
&gt; &gt; +        setDownloadBuffering();
&gt; 
&gt; Why moving this out of the test below?

To execute it ASAP. Btw GST_STATE_CHANGE_NO_PREROLL should only be returned in GST_STATE_PAUSED state, no? Actually I need something to test live streams, could you give me a link or smg?

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1521
&gt; &gt; +    bool shouldDownload = !isLiveStream();
&gt; &gt; +    if (shouldDownload) {
&gt; 
&gt; No need for a local variable here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894004</commentid>
    <comment_count>8</comment_count>
      <attachid>202978</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-27 06:03:52 -0700</bug_when>
    <thetext>Created attachment 202978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894005</commentid>
    <comment_count>9</comment_count>
      <attachid>202979</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-27 06:10:13 -0700</bug_when>
    <thetext>Created attachment 202979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894007</commentid>
    <comment_count>10</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-27 06:10:58 -0700</bug_when>
    <thetext>Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1182
&gt; &gt; &gt; +        // Live pipelines go in PAUSED without prerolling.
&gt; &gt; &gt; +        m_isStreaming = true;
&gt; &gt; &gt; +        setDownloadBuffering();
&gt; &gt; 
&gt; &gt; Why moving this out of the test below?
&gt; 
&gt; To execute it ASAP. Btw GST_STATE_CHANGE_NO_PREROLL should only be returned in GST_STATE_PAUSED state, no? Actually I need something to test live streams, could you give me a link or smg?
&gt; 

I removed this change. We can handle that separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894008</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-27 06:11:49 -0700</bug_when>
    <thetext>&gt; 
&gt; I removed this change. We can handle that separately.

Err, I mean all the change I introduced for live streams.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894275</commentid>
    <comment_count>12</comment_count>
      <attachid>202979</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-28 02:56:34 -0700</bug_when>
    <thetext>Comment on attachment 202979
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:419
&gt; +    GstState currentState, pendingState;
&gt; +    gst_element_get_state(m_playBin.get(), &amp;currentState, &amp;pendingState, 0);
&gt; +    if (currentState &lt; GST_STATE_PAUSED &amp;&amp; pendingState &lt;= GST_STATE_PAUSED)

Move this to ::changePipelineState() perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895850</commentid>
    <comment_count>13</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-31 03:28:41 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 202979 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=202979&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:419
&gt; &gt; +    GstState currentState, pendingState;
&gt; &gt; +    gst_element_get_state(m_playBin.get(), &amp;currentState, &amp;pendingState, 0);
&gt; &gt; +    if (currentState &lt; GST_STATE_PAUSED &amp;&amp; pendingState &lt;= GST_STATE_PAUSED)
&gt; 
&gt; Move this to ::changePipelineState() perhaps?

It won&apos;t work, in seek we use changePipelineState for reseting the pipeline. Also I was thinking of using it more consistently at every place where we change pipeline state (thus not using gst_element_set_state anywhere outside of this function) and update state variables in it accordingly to make sure they are valid all the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897806</commentid>
    <comment_count>14</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-06-06 09:13:13 -0700</bug_when>
    <thetext>Can we go on with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897825</commentid>
    <comment_count>15</comment_count>
      <attachid>202979</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-06-06 09:45:07 -0700</bug_when>
    <thetext>Comment on attachment 202979
Patch

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

Sorry I don&apos;t have time now for a full review but I&apos;ll try to do it tomorrow

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-860
&gt; -        gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED);

Where is this done now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897931</commentid>
    <comment_count>16</comment_count>
      <attachid>202979</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-06-06 14:43:54 -0700</bug_when>
    <thetext>Comment on attachment 202979
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-860
&gt;&gt; -        gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED);
&gt; 
&gt; Where is this done now?

updateStates also takes care of this, I think it is redundant (independently from the patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901761</commentid>
    <comment_count>17</comment_count>
      <attachid>202979</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-06-19 05:58:30 -0700</bug_when>
    <thetext>Comment on attachment 202979
Patch

Ok, sorry for the delay :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902314</commentid>
    <comment_count>18</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-06-20 14:06:35 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/151797</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202630</attachid>
            <date>2013-05-22 16:29:42 -0700</date>
            <delta_ts>2013-05-22 17:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116642-20130523012828.patch</filename>
            <type>text/plain</type>
            <size>10354</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTliNjNjYmQzYjRlMGI4
OWQ2MTE3NWZhOGU2MDM5ZmIyYjNmOWI4Ny4uNjI5M2VlNzE0NTdiMzk5YjhmYzhjMjQwZjlmMTA1
YTQxZDcwODI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA1LTIyICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBbR3N0cmVh
bWVyXSBjbGVhbnVwIGJ1ZmZlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWx3YXlzIGRvIGRvd25sb2FkIGJ1ZmZlcmluZy4gSXQgc2hvdWxkIG5v
dCBkaWZmZXIgaWYgcHJlbG9hZCBpcyAibm9uZSIgYmVjYXVzZQorICAgICAgICBpdCdzIGFib3V0
IHdoZW4gdG8gc3RhcnQgYnVmZmVyaW5nLCBub3QgYWJvdXQgaG93LiBUaGUgcGF0Y2ggYWxzbyB0
cmllcyB0byBjbGVhbgorICAgICAgICB1cCB0aGluZ3MgYSBiaXQuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBtZWRpYSB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIpOiBSZW1vdmVkIG1fc3RhcnRlZEJ1ZmZlcmluZywKKyAgICAgICAgdGhlcmUgaXMgbm8g
bW9yZSBmb3IgaXQgbm93LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjb21taXRMb2FkKTogU3RhcnQgdGhlIGZpbGwgdGltZXIgcmlnaHQgbm93IGluc3Rl
YWQgb2YgaW4KKyAgICAgICAgcmVhY3Rpb24gdG8gYSBidWZmZXJpbmcgbWVzc2FnZS4gTG9jYWwg
ZmlsZXMgbm90IGFsd2F5cyBnZW5lcmF0ZSBidWZmZXJpbmcgbWVzc2FnZS4gSXQgZGlkIG5vdAor
ICAgICAgICBjYXVzZWQgdGVzdCBmYWlsdXJlcyBzbyBmYXIgYmVjYXVzZSBvZiB0aGUgbGllIGlu
IG1heFRpbWVMb2FkZWQgKHNlZSBiZWxvdykuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5lU3RhdGUpOiBTdGFydCB0aGUgZmlsbCB0
aW1lciBpZiBnbyBmcm9tCisgICAgICAgIG51bGwgLyByZWFkeSBzdGF0ZSB0byBwYXVzZWQgb3Ig
cGxheWluZy4gSW4gdGhpcyBjYXNlIGJ1ZmZlcmluZyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYWdhaW4g
c28KKyAgICAgICAgd2UgbmVlZCB0byB0cmFjayBpdCdzIHN0YXRlLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMpOiBO
byBuZWVkIHRvIG9ic2VydmUgdGhlIHR5cGUgb2YgYnVmZmVyaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdGFydEZpbGxUaW1lcik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZmlsbFRpbWVyRmlyZWQpOiBJbnRyb2R1Y2VkIG1fZG93bmxvYWRGaW5pc2hlZCB0byB1cGRh
dGUKKyAgICAgICAgcmVhZHkgYW5kIG5ldHdvcmsgc3RhdGVzIGluIHVwZGF0ZVN0YXRlcyBiYXNl
ZCBvbiBpdC4gVGhlIHByZXZpb3VzbHkgdXNlZCBjb25kaXRpb24KKyAgICAgICAgLSAobWF4VGlt
ZUxvYWRlZCgpID09IGR1cmF0aW9uKCkpIC0gd2FzIG5vdCBjb3JyZWN0IGluIHRoZSBjYXNlIHdo
ZW4gZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKTogUmVtb3ZlZCBhIGxpZS4gSWYgdGhlIGZp
bGwgdGltZXIgaXMgbm90IGFjdGl2ZQorICAgICAgICBpdCBkb2VzIG5vdCBuZWNlc2FyaWx5IG1l
YW5zIHRoYXQgZG93bmxvYWQgaGFzIGJlZW4gZmluaXNoZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IFVzZSBtX2Rvd25sb2Fk
RmluaXNoZWQuIFJlbW92ZWQgYSByZWR1bmRhbnQgYnJhbmNoLAorICAgICAgICB0aGUgZWxzZSBi
ZWZvcmUgY292ZXJzIHRoaXMgY2FzZSAoZXZlbiBiZXR0ZXIpLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisKIDIwMTMtMDUtMjIgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGFzc2VydGlvbiBp
biB0aGUgZ2V0Q29tcHV0ZWRTdHlsZS1iYWNrZ3JvdW5kLXNob3J0aGFuZC5odG1sIHRlc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMDI5
MDYzMDA1NTA2ZTI4MTJmZDk3Y2Y4NTIzNWQ5MmU1YzRiNjU0NC4uNTZlYThlNTY3NTNkNDI0ZDJk
MzJmYTMzNzM5MTkyZWU5NTMzMDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIxNyw3ICsyMTcsNiBAQCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxh
eWVyKQogICAgICwgbV9wbGF5YmFja1JhdGUoMSkKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNl
KQogICAgICwgbV9tZWRpYUR1cmF0aW9uKDApCi0gICAgLCBtX3N0YXJ0ZWRCdWZmZXJpbmcoZmFs
c2UpCiAgICAgLCBtX2ZpbGxUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpmaWxsVGltZXJGaXJlZCkKICAgICAsIG1fbWF4VGltZUxvYWRlZCgwKQogICAgICwgbV9idWZm
ZXJpbmdQZXJjZW50YWdlKDApCkBAIC0zMzMsNiArMzMyLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmNvbW1pdExvYWQoKQogICAgIC8vIHN0YXJ0IHByb3ZpZGluZyBhbnl0
aGluZyB1c2VmdWwuCiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwg
R1NUX1NUQVRFX1BBVVNFRCk7CiAKKyAgICBzdGFydEZpbGxUaW1lcigpOwogICAgIHVwZGF0ZVN0
YXRlcygpOwogfQogCkBAIC0zODMsNiArMzgzLDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUgbmV3U3RhdGUpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGlmIChjdXJyZW50U3RhdGUgPD0gR1NUX1NUQVRF
X1JFQURZKQorICAgICAgICBzdGFydEZpbGxUaW1lcigpOworCiAgICAgTE9HX01FRElBX01FU1NB
R0UoIkNoYW5naW5nIHN0YXRlIGNoYW5nZSB0byAlcyBmcm9tICVzIHdpdGggJXMgcGVuZGluZyIs
IGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG5ld1N0YXRlKSwKICAgICAgICAgZ3N0X2VsZW1l
bnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25h
bWUocGVuZGluZykpOwogCkBAIC04MjcsMzMgKzgzMCwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6aGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVn
aW5zUgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1ZmZlcmlu
Z1N0YXRzKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiB7Ci0gICAgLy8gVGhpcyBpcyB0aGUgaW1tZWRp
YXRlIGJ1ZmZlcmluZyB0aGF0IG5lZWRzIHRvIGhhcHBlbiBzbyB3ZSBoYXZlCi0gICAgLy8gZW5v
dWdoIHRvIHBsYXkgcmlnaHQgbm93LgogICAgIG1fYnVmZmVyaW5nID0gdHJ1ZTsKICAgICBjb25z
dCBHc3RTdHJ1Y3R1cmUgKnN0cnVjdHVyZSA9IGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUobWVz
c2FnZSk7CiAgICAgZ3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwgImJ1ZmZlci1wZXJj
ZW50IiwgJm1fYnVmZmVyaW5nUGVyY2VudGFnZSk7CiAKICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
W0J1ZmZlcmluZ10gQnVmZmVyaW5nOiAlZCUlLiIsIG1fYnVmZmVyaW5nUGVyY2VudGFnZSk7CiAK
LSAgICBHc3RCdWZmZXJpbmdNb2RlIG1vZGU7Ci0gICAgZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVy
aW5nX3N0YXRzKG1lc3NhZ2UsICZtb2RlLCAwLCAwLCAwKTsKLSAgICBpZiAobW9kZSAhPSBHU1Rf
QlVGRkVSSU5HX0RPV05MT0FEKSB7Ci0gICAgICAgIHVwZGF0ZVN0YXRlcygpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gVGhpcyBpcyBvbi1kaXNrIGJ1ZmZlcmluZywgdGhhdCBh
bGxvd3MgdXMgdG8gZG93bmxvYWQgbXVjaCBtb3JlCi0gICAgLy8gdGhhbiBuZWVkZWQgZm9yIHJp
Z2h0IG5vdy4KLSAgICBpZiAoIW1fc3RhcnRlZEJ1ZmZlcmluZykgewotICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gU3RhcnRpbmcgb24tZGlzayBidWZmZXJpbmcuIik7Ci0K
LSAgICAgICAgbV9zdGFydGVkQnVmZmVyaW5nID0gdHJ1ZTsKLQotICAgICAgICBpZiAobV9maWxs
VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLQotICAg
ICAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGluZygwLjIpOwotICAgIH0KKyAgICB1cGRhdGVT
dGF0ZXMoKTsKIAogICAgIGlmICghbV9wYXVzZWQgJiYgbV9idWZmZXJpbmdQZXJjZW50YWdlIDwg
MTAwKSB7CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBEb3dubG9hZCBp
biBwcm9ncmVzcywgcGF1c2luZyBwaXBlbGluZS4iKTsKQEAgLTg2MSw2ICs4NDQsMTEgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0cyhHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgIH0KIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnN0YXJ0RmlsbFRpbWVyKCkKK3sKKyAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGlu
ZygwLjIpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVy
RmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiopCiB7CiAgICAgR3N0UXVl
cnkqIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcoR1NUX0ZPUk1BVF9QRVJDRU5UKTsK
QEAgLTg5NCw3ICs4ODIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmls
bFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbQogICAgICAgICBMT0df
TUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gVXBkYXRlZCBtYXhUaW1lTG9hZGVkOiAlZiIsIG1f
bWF4VGltZUxvYWRlZCk7CiAgICAgfQogCi0gICAgaWYgKGZpbGxTdGF0dXMgIT0gMTAwLjApIHsK
KyAgICBtX2Rvd25sb2FkRmluaXNoZWQgPSBmaWxsU3RhdHVzID09IDEwMC4wOworICAgIGlmICgh
bV9kb3dubG9hZEZpbmlzaGVkKSB7CiAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtOTAzLDcgKzg5Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
CiAgICAgLy8gY29ubmVjdGlvbiBpcyBjdXQuIEJ1ZmZlcmluZyBpcyBkb25lLCByZW1vdmUgdGhl
IGZpbGwgc291cmNlCiAgICAgLy8gZnJvbSB0aGUgbWFpbiBsb29wLgogICAgIG1fZmlsbFRpbWVy
LnN0b3AoKTsKLSAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSBmYWxzZTsKICAgICB1cGRhdGVTdGF0
ZXMoKTsKIH0KIApAQCAtOTI2LDggKzkxNCw4IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwLjBmOwogCiAg
ICAgZmxvYXQgbG9hZGVkID0gbV9tYXhUaW1lTG9hZGVkOwotICAgIGlmICghbG9hZGVkICYmICFt
X2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBsb2FkZWQgPSBkdXJhdGlvbigpOworICAg
IGlmIChtX2lzRW5kUmVhY2hlZCAmJiBtX21lZGlhRHVyYXRpb24pCisgICAgICAgIGxvYWRlZCA9
IG1fbWVkaWFEdXJhdGlvbjsKICAgICBMT0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDog
JWYiLCBsb2FkZWQpOwogICAgIHJldHVybiBsb2FkZWQ7CiB9CkBAIC0xMTEwLDcgKzEwOTgsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAg
ICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9SRUFEWSkgewogICAgICAgICAgICAgbV9yZWFkeVN0
YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsKICAgICAgICAgICAgIG1fbmV0d29ya1N0
YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5OwotICAgICAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBH
U1RfU1RBVEVfTlVMTCkgfHwgKG1heFRpbWVMb2FkZWQoKSA9PSBkdXJhdGlvbigpKSkgeworICAg
ICAgICB9IGVsc2UgaWYgKG1fZG93bmxvYWRGaW5pc2hlZCkgewogICAgICAgICAgICAgbV9uZXR3
b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGVkOwogICAgICAgICAgICAgbV9yZWFkeVN0YXRl
ID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwogICAgICAgICB9IGVsc2UgewpAQCAtMTEx
OCwxMSArMTEwNiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVT
dGF0ZXMoKQogICAgICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGlu
ZzsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2J1ZmZlcmluZyAmJiBzdGF0ZSAhPSBHU1Rf
U1RBVEVfUkVBRFkpIHsKLSAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpI
YXZlQ3VycmVudERhdGE7Ci0gICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVy
OjpMb2FkaW5nOwotICAgICAgICB9Ci0KICAgICAgICAgLy8gTm93IGxldCdzIHRyeSB0byBnZXQg
dGhlIHN0YXRlcyBpbiBtb3JlIGRldGFpbCB1c2luZwogICAgICAgICAvLyBpbmZvcm1hdGlvbiBm
cm9tIEdTdHJlYW1lciwgd2hpbGUgd2Ugc3luYyBzdGF0ZXMgd2hlcmUKICAgICAgICAgLy8gbmVl
ZGVkLgpAQCAtMTMzMSw2ICsxMzE0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgbmV3IHVy
aSBhbmQgc3RhcnQgcGxheWluZy4KICAgICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5
QmluLmdldCgpLCAidXJpIiwgbmV3VXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIE5VTEwpOwog
ICAgICAgICAgICAgICAgIG1fdXJsID0gbmV3VXJsOworICAgICAgICAgICAgICAgIHN0YXJ0Rmls
bFRpbWVyKCk7CiAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJp
bi5nZXQoKSwgR1NUX1NUQVRFX1BMQVlJTkcpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQpAQCAtMTMzOSw3ICsxMzIzLDYgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgIH0KICAgICBtX21lZGlhTG9j
YXRpb25DdXJyZW50SW5kZXgtLTsKICAgICByZXR1cm4gZmFsc2U7Ci0KIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWRTdGF0ZUNoYW5nZWQoKQpAQCAtMTM3MSw2ICsx
MzU0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiAgICAg
aWYgKCFtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJJc0xvb3Bpbmco
KSkgewogICAgICAgICBtX3BhdXNlZCA9IHRydWU7CiAgICAgICAgIGdzdF9lbGVtZW50X3NldF9z
dGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgbV9kb3dubG9h
ZEZpbmlzaGVkID0gZmFsc2U7CiAgICAgfQogfQogCkBAIC0xNTQ1LDEzICsxNTI5LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldERvd25sb2FkQnVmZmVyaW5nKCkKIAog
ICAgIEdzdFBsYXlGbGFncyBmbGFnczsKICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLmdldCgp
LCAiZmxhZ3MiLCAmZmxhZ3MsIE5VTEwpOwotICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5
ZXI6OkF1dG8pIHsKLSAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkVuYWJsaW5nIG9uLWRpc2sg
YnVmZmVyaW5nIik7Ci0gICAgICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJmbGFn
cyIsIGZsYWdzIHwgR1NUX1BMQVlfRkxBR19ET1dOTE9BRCwgTlVMTCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkRpc2FibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIp
OwotICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAiZmxhZ3MiLCBmbGFncyAm
IH5HU1RfUExBWV9GTEFHX0RPV05MT0FELCBOVUxMKTsKLSAgICB9CisgICAgZ19vYmplY3Rfc2V0
KG1fcGxheUJpbi5nZXQoKSwgImZsYWdzIiwgZmxhZ3MgfCBHU1RfUExBWV9GTEFHX0RPV05MT0FE
LCBOVUxMKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxv
YWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKQEAgLTE1NjEsOCArMTUzOSw2IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQ
cmVsb2FkIHByZWxvYWQpCiAKICAgICBtX3ByZWxvYWQgPSBwcmVsb2FkOwogCi0gICAgc2V0RG93
bmxvYWRCdWZmZXJpbmcoKTsKLQogICAgIGlmIChtX2RlbGF5aW5nTG9hZCAmJiBtX3ByZWxvYWQg
IT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICAgICAgICAgbV9kZWxheWluZ0xvYWQgPSBmYWxzZTsK
ICAgICAgICAgY29tbWl0TG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDk5YzZiMTg2NzA1NGM4MTkwOGI4ZmI5M2FkN2IzODJiMzE0ZmVk
OTEuLmY3ODQxMTdhYWYwZTgwZmQ4YjZmNjZiMzcwYzljN2UyZmFlOGI3NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTEyNCw2ICsxMjQsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXREb3dubG9hZEJ1ZmZlcmluZygpOwogICAgIHZvaWQg
cHJvY2Vzc0J1ZmZlcmluZ1N0YXRzKEdzdE1lc3NhZ2UqKTsKKyAgICB2b2lkIHN0YXJ0RmlsbFRp
bWVyKCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IHsg
cmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGl2ZVN0cmVhbSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0KQEAgLTE0OCw3ICsxNDksNyBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fcGxheWJhY2tSYXRlOwogICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7CiAg
ICAgbXV0YWJsZSBnZmxvYXQgbV9tZWRpYUR1cmF0aW9uOwotICAgIGJvb2wgbV9zdGFydGVkQnVm
ZmVyaW5nOworICAgIGJvb2wgbV9kb3dubG9hZEZpbmlzaGVkOwogICAgIFRpbWVyPE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcj4gbV9maWxsVGltZXI7CiAgICAgZmxvYXQgbV9tYXhUaW1lTG9h
ZGVkOwogICAgIGludCBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202633</attachid>
            <date>2013-05-22 17:15:47 -0700</date>
            <delta_ts>2013-05-24 04:05:31 -0700</delta_ts>
            <desc>better to init members</desc>
            <filename>bug-116642-20130523021433.patch</filename>
            <type>text/plain</type>
            <size>10387</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTliNjNjYmQzYjRlMGI4
OWQ2MTE3NWZhOGU2MDM5ZmIyYjNmOWI4Ny4uNjI5M2VlNzE0NTdiMzk5YjhmYzhjMjQwZjlmMTA1
YTQxZDcwODI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA1LTIyICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBbR3N0cmVh
bWVyXSBjbGVhbnVwIGJ1ZmZlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWx3YXlzIGRvIGRvd25sb2FkIGJ1ZmZlcmluZy4gSXQgc2hvdWxkIG5v
dCBkaWZmZXIgaWYgcHJlbG9hZCBpcyAibm9uZSIgYmVjYXVzZQorICAgICAgICBpdCdzIGFib3V0
IHdoZW4gdG8gc3RhcnQgYnVmZmVyaW5nLCBub3QgYWJvdXQgaG93LiBUaGUgcGF0Y2ggYWxzbyB0
cmllcyB0byBjbGVhbgorICAgICAgICB1cCB0aGluZ3MgYSBiaXQuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBtZWRpYSB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIpOiBSZW1vdmVkIG1fc3RhcnRlZEJ1ZmZlcmluZywKKyAgICAgICAgdGhlcmUgaXMgbm8g
bW9yZSBmb3IgaXQgbm93LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjb21taXRMb2FkKTogU3RhcnQgdGhlIGZpbGwgdGltZXIgcmlnaHQgbm93IGluc3Rl
YWQgb2YgaW4KKyAgICAgICAgcmVhY3Rpb24gdG8gYSBidWZmZXJpbmcgbWVzc2FnZS4gTG9jYWwg
ZmlsZXMgbm90IGFsd2F5cyBnZW5lcmF0ZSBidWZmZXJpbmcgbWVzc2FnZS4gSXQgZGlkIG5vdAor
ICAgICAgICBjYXVzZWQgdGVzdCBmYWlsdXJlcyBzbyBmYXIgYmVjYXVzZSBvZiB0aGUgbGllIGlu
IG1heFRpbWVMb2FkZWQgKHNlZSBiZWxvdykuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5lU3RhdGUpOiBTdGFydCB0aGUgZmlsbCB0
aW1lciBpZiBnbyBmcm9tCisgICAgICAgIG51bGwgLyByZWFkeSBzdGF0ZSB0byBwYXVzZWQgb3Ig
cGxheWluZy4gSW4gdGhpcyBjYXNlIGJ1ZmZlcmluZyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYWdhaW4g
c28KKyAgICAgICAgd2UgbmVlZCB0byB0cmFjayBpdCdzIHN0YXRlLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMpOiBO
byBuZWVkIHRvIG9ic2VydmUgdGhlIHR5cGUgb2YgYnVmZmVyaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdGFydEZpbGxUaW1lcik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZmlsbFRpbWVyRmlyZWQpOiBJbnRyb2R1Y2VkIG1fZG93bmxvYWRGaW5pc2hlZCB0byB1cGRh
dGUKKyAgICAgICAgcmVhZHkgYW5kIG5ldHdvcmsgc3RhdGVzIGluIHVwZGF0ZVN0YXRlcyBiYXNl
ZCBvbiBpdC4gVGhlIHByZXZpb3VzbHkgdXNlZCBjb25kaXRpb24KKyAgICAgICAgLSAobWF4VGlt
ZUxvYWRlZCgpID09IGR1cmF0aW9uKCkpIC0gd2FzIG5vdCBjb3JyZWN0IGluIHRoZSBjYXNlIHdo
ZW4gZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKTogUmVtb3ZlZCBhIGxpZS4gSWYgdGhlIGZp
bGwgdGltZXIgaXMgbm90IGFjdGl2ZQorICAgICAgICBpdCBkb2VzIG5vdCBuZWNlc2FyaWx5IG1l
YW5zIHRoYXQgZG93bmxvYWQgaGFzIGJlZW4gZmluaXNoZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IFVzZSBtX2Rvd25sb2Fk
RmluaXNoZWQuIFJlbW92ZWQgYSByZWR1bmRhbnQgYnJhbmNoLAorICAgICAgICB0aGUgZWxzZSBi
ZWZvcmUgY292ZXJzIHRoaXMgY2FzZSAoZXZlbiBiZXR0ZXIpLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisKIDIwMTMtMDUtMjIgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGFzc2VydGlvbiBp
biB0aGUgZ2V0Q29tcHV0ZWRTdHlsZS1iYWNrZ3JvdW5kLXNob3J0aGFuZC5odG1sIHRlc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMDI5
MDYzMDA1NTA2ZTI4MTJmZDk3Y2Y4NTIzNWQ5MmU1YzRiNjU0NC4uM2E0NWE0MmQ4Yzg2NzIwMTFk
ZDg2ZmEzNjE1Y2U4YjY1MmE1MDZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxh
eWVyKQogICAgICwgbV9wbGF5YmFja1JhdGUoMSkKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNl
KQogICAgICwgbV9tZWRpYUR1cmF0aW9uKDApCi0gICAgLCBtX3N0YXJ0ZWRCdWZmZXJpbmcoZmFs
c2UpCisgICAgLCBtX2Rvd25sb2FkRmluaXNoZWQoZmFsc2UpCiAgICAgLCBtX2ZpbGxUaW1lcih0
aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZCkKICAgICAs
IG1fbWF4VGltZUxvYWRlZCgwKQogICAgICwgbV9idWZmZXJpbmdQZXJjZW50YWdlKDApCkBAIC0z
MzMsNiArMzMzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbW1pdExv
YWQoKQogICAgIC8vIHN0YXJ0IHByb3ZpZGluZyBhbnl0aGluZyB1c2VmdWwuCiAgICAgZ3N0X2Vs
ZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX1BBVVNFRCk7CiAKKyAg
ICBzdGFydEZpbGxUaW1lcigpOwogICAgIHVwZGF0ZVN0YXRlcygpOwogfQogCkBAIC0zODMsNiAr
Mzg0LDkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5l
U3RhdGUoR3N0U3RhdGUgbmV3U3RhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIGlmIChjdXJyZW50U3RhdGUgPD0gR1NUX1NUQVRFX1JFQURZKQorICAgICAgICBzdGFydEZp
bGxUaW1lcigpOworCiAgICAgTE9HX01FRElBX01FU1NBR0UoIkNoYW5naW5nIHN0YXRlIGNoYW5n
ZSB0byAlcyBmcm9tICVzIHdpdGggJXMgcGVuZGluZyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9u
YW1lKG5ld1N0YXRlKSwKICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVu
dFN0YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOwogCkBAIC04Mjcs
MzMgKzgzMSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUGx1
Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5zUgogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1ZmZlcmluZ1N0YXRzKEdzdE1lc3NhZ2UqIG1lc3Nh
Z2UpCiB7Ci0gICAgLy8gVGhpcyBpcyB0aGUgaW1tZWRpYXRlIGJ1ZmZlcmluZyB0aGF0IG5lZWRz
IHRvIGhhcHBlbiBzbyB3ZSBoYXZlCi0gICAgLy8gZW5vdWdoIHRvIHBsYXkgcmlnaHQgbm93Lgog
ICAgIG1fYnVmZmVyaW5nID0gdHJ1ZTsKICAgICBjb25zdCBHc3RTdHJ1Y3R1cmUgKnN0cnVjdHVy
ZSA9IGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUobWVzc2FnZSk7CiAgICAgZ3N0X3N0cnVjdHVy
ZV9nZXRfaW50KHN0cnVjdHVyZSwgImJ1ZmZlci1wZXJjZW50IiwgJm1fYnVmZmVyaW5nUGVyY2Vu
dGFnZSk7CiAKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gQnVmZmVyaW5nOiAl
ZCUlLiIsIG1fYnVmZmVyaW5nUGVyY2VudGFnZSk7CiAKLSAgICBHc3RCdWZmZXJpbmdNb2RlIG1v
ZGU7Ci0gICAgZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nX3N0YXRzKG1lc3NhZ2UsICZtb2Rl
LCAwLCAwLCAwKTsKLSAgICBpZiAobW9kZSAhPSBHU1RfQlVGRkVSSU5HX0RPV05MT0FEKSB7Ci0g
ICAgICAgIHVwZGF0ZVN0YXRlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8g
VGhpcyBpcyBvbi1kaXNrIGJ1ZmZlcmluZywgdGhhdCBhbGxvd3MgdXMgdG8gZG93bmxvYWQgbXVj
aCBtb3JlCi0gICAgLy8gdGhhbiBuZWVkZWQgZm9yIHJpZ2h0IG5vdy4KLSAgICBpZiAoIW1fc3Rh
cnRlZEJ1ZmZlcmluZykgewotICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10g
U3RhcnRpbmcgb24tZGlzayBidWZmZXJpbmcuIik7Ci0KLSAgICAgICAgbV9zdGFydGVkQnVmZmVy
aW5nID0gdHJ1ZTsKLQotICAgICAgICBpZiAobV9maWxsVGltZXIuaXNBY3RpdmUoKSkKLSAgICAg
ICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLQotICAgICAgICBtX2ZpbGxUaW1lci5zdGFydFJl
cGVhdGluZygwLjIpOwotICAgIH0KKyAgICB1cGRhdGVTdGF0ZXMoKTsKIAogICAgIGlmICghbV9w
YXVzZWQgJiYgbV9idWZmZXJpbmdQZXJjZW50YWdlIDwgMTAwKSB7CiAgICAgICAgIExPR19NRURJ
QV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBEb3dubG9hZCBpbiBwcm9ncmVzcywgcGF1c2luZyBwaXBl
bGluZS4iKTsKQEAgLTg2MSw2ICs4NDUsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0cyhHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIH0K
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN0YXJ0RmlsbFRpbWVyKCkK
K3sKKyAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGluZygwLjIpOworfQorCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyPiopCiB7CiAgICAgR3N0UXVlcnkqIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25l
d19idWZmZXJpbmcoR1NUX0ZPUk1BVF9QRVJDRU5UKTsKQEAgLTg5NCw3ICs4ODMsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbQogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmlu
Z10gVXBkYXRlZCBtYXhUaW1lTG9hZGVkOiAlZiIsIG1fbWF4VGltZUxvYWRlZCk7CiAgICAgfQog
Ci0gICAgaWYgKGZpbGxTdGF0dXMgIT0gMTAwLjApIHsKKyAgICBtX2Rvd25sb2FkRmluaXNoZWQg
PSBmaWxsU3RhdHVzID09IDEwMC4wOworICAgIGlmICghbV9kb3dubG9hZEZpbmlzaGVkKSB7CiAg
ICAgICAgIHVwZGF0ZVN0YXRlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTAzLDcg
Kzg5Myw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJl
ZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAgICAgLy8gY29ubmVjdGlvbiBpcyBj
dXQuIEJ1ZmZlcmluZyBpcyBkb25lLCByZW1vdmUgdGhlIGZpbGwgc291cmNlCiAgICAgLy8gZnJv
bSB0aGUgbWFpbiBsb29wLgogICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLSAgICBtX3N0YXJ0ZWRC
dWZmZXJpbmcgPSBmYWxzZTsKICAgICB1cGRhdGVTdGF0ZXMoKTsKIH0KIApAQCAtOTI2LDggKzkx
NSw4IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiAwLjBmOwogCiAgICAgZmxvYXQgbG9hZGVkID0gbV9tYXhU
aW1lTG9hZGVkOwotICAgIGlmICghbG9hZGVkICYmICFtX2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICBsb2FkZWQgPSBkdXJhdGlvbigpOworICAgIGlmIChtX2lzRW5kUmVhY2hlZCAmJiBt
X21lZGlhRHVyYXRpb24pCisgICAgICAgIGxvYWRlZCA9IG1fbWVkaWFEdXJhdGlvbjsKICAgICBM
T0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDogJWYiLCBsb2FkZWQpOwogICAgIHJldHVy
biBsb2FkZWQ7CiB9CkBAIC0xMTEwLDcgKzEwOTksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFU
RV9SRUFEWSkgewogICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVN
ZXRhZGF0YTsKICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5
OwotICAgICAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RBVEVfTlVMTCkgfHwgKG1heFRp
bWVMb2FkZWQoKSA9PSBkdXJhdGlvbigpKSkgeworICAgICAgICB9IGVsc2UgaWYgKG1fZG93bmxv
YWRGaW5pc2hlZCkgewogICAgICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6
TG9hZGVkOwogICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91
Z2hEYXRhOwogICAgICAgICB9IGVsc2UgewpAQCAtMTExOCwxMSArMTEwNyw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICAgICAgbV9u
ZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGluZzsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChtX2J1ZmZlcmluZyAmJiBzdGF0ZSAhPSBHU1RfU1RBVEVfUkVBRFkpIHsKLSAgICAgICAg
ICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlQ3VycmVudERhdGE7Ci0gICAgICAg
ICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwotICAgICAgICB9Ci0K
ICAgICAgICAgLy8gTm93IGxldCdzIHRyeSB0byBnZXQgdGhlIHN0YXRlcyBpbiBtb3JlIGRldGFp
bCB1c2luZwogICAgICAgICAvLyBpbmZvcm1hdGlvbiBmcm9tIEdTdHJlYW1lciwgd2hpbGUgd2Ug
c3luYyBzdGF0ZXMgd2hlcmUKICAgICAgICAgLy8gbmVlZGVkLgpAQCAtMTMzMSw2ICsxMzE1LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQog
ICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgbmV3IHVyaSBhbmQgc3RhcnQgcGxheWluZy4KICAg
ICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAidXJpIiwgbmV3VXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIE5VTEwpOwogICAgICAgICAgICAgICAgIG1fdXJsID0g
bmV3VXJsOworICAgICAgICAgICAgICAgIHN0YXJ0RmlsbFRpbWVyKCk7CiAgICAgICAgICAgICAg
ICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX1BMQVlJ
TkcpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQpAQCAtMTMz
OSw3ICsxMzI0LDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0
TG9jYXRpb24oKQogICAgIH0KICAgICBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXgtLTsKICAg
ICByZXR1cm4gZmFsc2U7Ci0KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmxvYWRTdGF0ZUNoYW5nZWQoKQpAQCAtMTM3MSw2ICsxMzU1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiAgICAgaWYgKCFtX3BsYXllci0+bWVkaWFQbGF5
ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJJc0xvb3BpbmcoKSkgewogICAgICAgICBtX3BhdXNlZCA9
IHRydWU7CiAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdT
VF9TVEFURV9OVUxMKTsKKyAgICAgICAgbV9kb3dubG9hZEZpbmlzaGVkID0gZmFsc2U7CiAgICAg
fQogfQogCkBAIC0xNTQ1LDEzICsxNTMwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnNldERvd25sb2FkQnVmZmVyaW5nKCkKIAogICAgIEdzdFBsYXlGbGFncyBmbGFnczsK
ICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLmdldCgpLCAiZmxhZ3MiLCAmZmxhZ3MsIE5VTEwp
OwotICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6OkF1dG8pIHsKLSAgICAgICAgTE9H
X01FRElBX01FU1NBR0UoIkVuYWJsaW5nIG9uLWRpc2sgYnVmZmVyaW5nIik7Ci0gICAgICAgIGdf
b2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJmbGFncyIsIGZsYWdzIHwgR1NUX1BMQVlfRkxB
R19ET1dOTE9BRCwgTlVMTCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTE9HX01FRElBX01FU1NB
R0UoIkRpc2FibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIpOwotICAgICAgICBnX29iamVjdF9zZXQo
bV9wbGF5QmluLmdldCgpLCAiZmxhZ3MiLCBmbGFncyAmIH5HU1RfUExBWV9GTEFHX0RPV05MT0FE
LCBOVUxMKTsKLSAgICB9CisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbi5nZXQoKSwgImZsYWdz
IiwgZmxhZ3MgfCBHU1RfUExBWV9GTEFHX0RPV05MT0FELCBOVUxMKTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQg
cHJlbG9hZCkKQEAgLTE1NjEsOCArMTU0MCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiAKICAgICBt
X3ByZWxvYWQgPSBwcmVsb2FkOwogCi0gICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKLQogICAg
IGlmIChtX2RlbGF5aW5nTG9hZCAmJiBtX3ByZWxvYWQgIT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsK
ICAgICAgICAgbV9kZWxheWluZ0xvYWQgPSBmYWxzZTsKICAgICAgICAgY29tbWl0TG9hZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDk5YzZi
MTg2NzA1NGM4MTkwOGI4ZmI5M2FkN2IzODJiMzE0ZmVkOTEuLmY3ODQxMTdhYWYwZTgwZmQ4YjZm
NjZiMzcwYzljN2UyZmFlOGI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXREb3dubG9hZEJ1ZmZlcmluZygpOwogICAgIHZvaWQgcHJvY2Vzc0J1ZmZlcmluZ1N0YXRzKEdz
dE1lc3NhZ2UqKTsKKyAgICB2b2lkIHN0YXJ0RmlsbFRpbWVyKCk7CiAKICAgICB2aXJ0dWFsIFN0
cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzTGl2ZVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdHJlYW1p
bmc7IH0KQEAgLTE0OCw3ICsxNDksNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGxheWJhY2tS
YXRlOwogICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7CiAgICAgbXV0YWJsZSBnZmxvYXQgbV9tZWRp
YUR1cmF0aW9uOwotICAgIGJvb2wgbV9zdGFydGVkQnVmZmVyaW5nOworICAgIGJvb2wgbV9kb3du
bG9hZEZpbmlzaGVkOwogICAgIFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gbV9m
aWxsVGltZXI7CiAgICAgZmxvYXQgbV9tYXhUaW1lTG9hZGVkOwogICAgIGludCBtX2J1ZmZlcmlu
Z1BlcmNlbnRhZ2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202831</attachid>
            <date>2013-05-24 09:50:50 -0700</date>
            <delta_ts>2013-05-27 06:03:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116642-20130524184933.patch</filename>
            <type>text/plain</type>
            <size>18581</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTliNjNjYmQzYjRlMGI4
OWQ2MTE3NWZhOGU2MDM5ZmIyYjNmOWI4Ny4uZmMxNTA3ZWE1NTNkZjJmN2I5OGU5MDUyMGNiNTEw
N2U1YjIyYmFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTA1LTI0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR3N0cmVhbWVyXSBj
bGVhbnVwIGJ1ZmZlcmluZyBhbmQgc3RhdGUgdXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBtZWRpYSB0ZXN0
cywgZXNwZWNpYWxseSB0aGUgb25lcyB0aGF0IGhhdmUgYmVlbiB1bnNraXBwZWQuCisKKyAgICAg
ICAgQWx3YXlzIGRvIGRvd25sb2FkIGJ1ZmZlcmluZy4gSXQgc2hvdWxkIG5vdCBkaWZmZXIgaWYg
cHJlbG9hZCBpcyAibm9uZSIgYmVjYXVzZQorICAgICAgICBpdCdzIGFib3V0IHdoZW4gdG8gc3Rh
cnQgYnVmZmVyaW5nLCBub3QgYWJvdXQgaG93LiBGaXggYSBidW5jaCBvdGhlciBzdWJ0bGUgaXNz
dWVzCisgICAgICAgIHRvIG1ha2UgdGhpcyBjaGFuZ2UgZ28gc21vb3RobHkgd2l0aCB0aGUgdGVz
dHMuIEFzIGEgYm9udXMgc29tZSB0ZXN0cyB0aGF0IHdlcmUKKyAgICAgICAgZmFpbGluZyBzbyBm
YXIgc3RhcnRlZCB0byBwYXNzLgorICAgICAgICBJdCBpcyBwb3NzaWJsZSB0byBmdXJ0aGVyIHR3
ZWFrIHRoZSBidWZmZXJpbmcgaW4gYSB3YXkgdGhhdCB3aWxsIGVuYWJsZSB1cyB0byBzdXBwb3J0
CisgICAgICAgIGEgZGlmZmVyZW50IGFuZCBhcHByb3ByaWF0ZSBiZWhhdmlvciBmb3IgcHJlbG9h
ZD0ibWV0YWRhdGEiIGJ1dCBpdCBzaG91bGQgYmUgbWFuYWdlZAorICAgICAgICBhIGJpdCBkaWZm
ZXJlbnRseS4gSSB3aWxsIGltcGxlbWVudCBpdCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkKTogRG9uJ3QgY2FsbCBzZXREb3dubG9hZEJ1ZmZlcmluZwor
ICAgICAgICB5ZXQuIE5vdyBpdCBhbHNvIHJlc3BvbnNpYmxlIGZvciBzdGFydGluZyB0aGUgZmls
bCB0aW1lciBhbmQgaXQgdHVybmVkIG91dCB0aGF0CisgICAgICAgIHNldHRpbmcgdGhlIGRvd25s
b2FkIGZsYWcgYmVmb3JlIHRoZSBwaXBlbGluZSBpcyBzZXQgdG8gYSBzdGF0ZSBoYXMgbmVnYXRp
dmUKKyAgICAgICAgZWZmZWN0IG9uIHNvbWUgdGVzdHMuIE1vc3QgcHJvYmFibHkgR1N0cmVhbWVy
IHN0YXJ0cyBidWZmZXJpbmcgdG9vIGVhcmx5IGlmCisgICAgICAgIHdlIHNldCB0aGUgZG93bmxv
YWQgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y29tbWl0TG9hZCk6IENhbGwgc2V0RG93bmxvYWRCdWZmZXJpbmcgbm93LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5KTogRGl0dG8sIHBsdXMgc2V0
IG1fZGVsYXlpbmdMb2FkIHRvIGZhbHNlCisgICAgICAgIGJlY2F1c2Ugb3RoZXJ3aXNlIHNldFBy
ZWxvYWQgd2lsbCB3cm9uZ2x5IGFzc3VtZSB0aGF0IHRoZSBsb2FkIGhhcyBub3QgYmVlbiBjb21t
aXR0ZWQKKyAgICAgICAgeWV0IGlmIHByZXBhcmVUb1BsYXkgaXMgbm90IGNhbGxlZCBiZWZvcmUg
cGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGF1
c2UpOiBNYWtlIHN1cmUgd2UgZG9uJ3QgY29tbWl0IGEgbG9hZCBoZXJlCisgICAgICAgIGlmIGl0
IHdhcyBub3QgY29tbWl0dGVkIHlldCBieSBsb29raW5nIGluIHRoZSBwaXBlbGluZSBzdGF0ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1
ZmZlcmluZ1N0YXRzKTogTm8gbmVlZCB0byBvYnNlcnZlIHRoZQorICAgICAgICB0eXBlIG9mIGJ1
ZmZlcmluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZmlsbFRpbWVyRmlyZWQpOiBJbnRyb2R1Y2VkIG1fZG93bmxvYWRGaW5pc2hlZCB0byB1cGRhdGUK
KyAgICAgICAgcmVhZHkgYW5kIG5ldHdvcmsgc3RhdGVzIGluIHVwZGF0ZVN0YXRlcyBiYXNlZCBv
biBpdC4gVGhlIHByZXZpb3VzbHkgdXNlZCBjb25kaXRpb24KKyAgICAgICAgLSAobWF4VGltZUxv
YWRlZCgpID09IGR1cmF0aW9uKCkpIC0gd2FzIG5vdCBjb3JyZWN0IGluIHRoZSBjYXNlIHdoZW4g
ZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKTogUmVtb3ZlZCBhIGxpZS4gSWYgdGhlIGZpbGwg
dGltZXIgaXMgbm90IGFjdGl2ZQorICAgICAgICBpdCBkb2VzIG5vdCBuZWNlc2FyaWx5IG1lYW5z
IHRoYXQgZG93bmxvYWQgaGFzIGJlZW4gZmluaXNoZWQuIFRoaXMgbGllIHdhcyBhY3R1YWxseSBl
bnN1cmluZworICAgICAgICBhIGxvdCBvZiB0ZXN0cyB0byBwYXNzIGJlY2F1c2UgaXQgbWFkZSB0
aGUgY29uZGl0aW9uIChtYXhUaW1lTG9hZGVkKCkgPT0gZHVyYXRpb24oKSkgdHJ1ZS4KKyAgICAg
ICAgTm93IHRoYXQgc3RhdGUgdXBkYXRlcyBoYXMgYmVlbiBjbGVhbmVkIHVwIHdlIGRvbid0IG5l
ZWQgdG8gbGllLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVTdGF0ZXMpOiBNZXJnZSBhbGwgdGhlIHBhcnRzIHRoYXQgdGFrZXMgcGFydCBpbiB1
cGRhdGluZworICAgICAgICByZWFkeSBhbmQgbmV0d29yayBzdGF0ZXMuIEl0IHdhcyB1bnRyYWNr
YWJsZS4gVW5zZXQgZG93bmxvYWQgYnVmZmVyaW5nIGZvciBmb3IgbGl2ZSBzdHJlYW1zIGVhcmx5
IHNvCisgICAgICAgIHdlIGRvbid0IG5lZWQgdG8gcmVzdGFydCB0aGVtLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoK
KyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6IFJlbW92ZWQgbV9zdGFydGVk
QnVmZmVyaW5nIGJlY2F1c2UgdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQgbm93LgorCiAyMDEzLTA1
LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBhc3NlcnRpb24gaW4gdGhlIGdldENvbXB1dGVkU3R5bGUtYmFja2dyb3VuZC1zaG9ydGhhbmQu
aHRtbCB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDAyOTA2MzAwNTUwNmUyODEyZmQ5N2NmODUyMzVkOTJlNWM0YjY1NDQuLmI1OTlm
NmJiODhhOGM4OWNhMWQ1NjBiYzM4ODE2ZDU2NzQxZTBlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVk
aWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fcGxheWJhY2tSYXRlKDEpCiAgICAgLCBtX2Vycm9y
T2NjdXJlZChmYWxzZSkKICAgICAsIG1fbWVkaWFEdXJhdGlvbigwKQotICAgICwgbV9zdGFydGVk
QnVmZmVyaW5nKGZhbHNlKQorICAgICwgbV9kb3dubG9hZEZpbmlzaGVkKGZhbHNlKQogICAgICwg
bV9maWxsVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVy
RmlyZWQpCiAgICAgLCBtX21heFRpbWVMb2FkZWQoMCkKICAgICAsIG1fYnVmZmVyaW5nUGVyY2Vu
dGFnZSgwKQpAQCAtMjg4LDEwICsyODgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKICAgICBpZiAoa3VybC5pc0xvY2FsRmlsZSgp
KQogICAgICAgICBjbGVhblVybCA9IGNsZWFuVXJsLnN1YnN0cmluZygwLCBrdXJsLnBhdGhFbmQo
KSk7CiAKLSAgICBpZiAoIW1fcGxheUJpbikgeworICAgIGlmICghbV9wbGF5QmluKQogICAgICAg
ICBjcmVhdGVHU1RQbGF5QmluKCk7Ci0gICAgICAgIHNldERvd25sb2FkQnVmZmVyaW5nKCk7Ci0g
ICAgfQogCiAgICAgQVNTRVJUKG1fcGxheUJpbik7CiAKQEAgLTMzMyw2ICszMzEsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29tbWl0TG9hZCgpCiAgICAgLy8gc3RhcnQg
cHJvdmlkaW5nIGFueXRoaW5nIHVzZWZ1bC4KICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9w
bGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUEFVU0VEKTsKIAorICAgIHNldERvd25sb2FkQnVmZmVy
aW5nKCk7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKQEAgLTQwNywxMyArNDA2LDE3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5KCkKIHsKICAgICBpZiAoY2hhbmdl
UGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUExBWUlORykpIHsKICAgICAgICAgbV9pc0VuZFJlYWNo
ZWQgPSBmYWxzZTsKKyAgICAgICAgbV9kZWxheWluZ0xvYWQgPSBmYWxzZTsKKyAgICAgICAgc2V0
RG93bmxvYWRCdWZmZXJpbmcoKTsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIlBsYXkiKTsK
ICAgICB9CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXVzZSgpCiB7
Ci0gICAgaWYgKG1faXNFbmRSZWFjaGVkKQorICAgIEdzdFN0YXRlIGN1cnJlbnRTdGF0ZSwgcGVu
ZGluZ1N0YXRlOworICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZj
dXJyZW50U3RhdGUsICZwZW5kaW5nU3RhdGUsIDApOworICAgIGlmIChjdXJyZW50U3RhdGUgPCBH
U1RfU1RBVEVfUEFVU0VEICYmIHBlbmRpbmdTdGF0ZSA8PSBHU1RfU1RBVEVfUEFVU0VEKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFV
U0VEKSkKQEAgLTgyNywzOCArODMwLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1bHQoR3N0SW5zdGFsbFBsdWdpbnNSCiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3RhdHMoR3N0
TWVzc2FnZSogbWVzc2FnZSkKIHsKLSAgICAvLyBUaGlzIGlzIHRoZSBpbW1lZGlhdGUgYnVmZmVy
aW5nIHRoYXQgbmVlZHMgdG8gaGFwcGVuIHNvIHdlIGhhdmUKLSAgICAvLyBlbm91Z2ggdG8gcGxh
eSByaWdodCBub3cuCiAgICAgbV9idWZmZXJpbmcgPSB0cnVlOwogICAgIGNvbnN0IEdzdFN0cnVj
dHVyZSAqc3RydWN0dXJlID0gZ3N0X21lc3NhZ2VfZ2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKICAg
ICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0dXJlLCAiYnVmZmVyLXBlcmNlbnQiLCAmbV9i
dWZmZXJpbmdQZXJjZW50YWdlKTsKIAogICAgIExPR19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5n
XSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAotICAgIEdzdEJ1
ZmZlcmluZ01vZGUgbW9kZTsKLSAgICBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMo
bWVzc2FnZSwgJm1vZGUsIDAsIDAsIDApOwotICAgIGlmIChtb2RlICE9IEdTVF9CVUZGRVJJTkdf
RE9XTkxPQUQpIHsKLSAgICAgICAgdXBkYXRlU3RhdGVzKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICAvLyBUaGlzIGlzIG9uLWRpc2sgYnVmZmVyaW5nLCB0aGF0IGFsbG93cyB1cyB0
byBkb3dubG9hZCBtdWNoIG1vcmUKLSAgICAvLyB0aGFuIG5lZWRlZCBmb3IgcmlnaHQgbm93Lgot
ICAgIGlmICghbV9zdGFydGVkQnVmZmVyaW5nKSB7Ci0gICAgICAgIExPR19NRURJQV9NRVNTQUdF
KCJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNrIGJ1ZmZlcmluZy4iKTsKLQotICAgICAgICBt
X3N0YXJ0ZWRCdWZmZXJpbmcgPSB0cnVlOwotCi0gICAgICAgIGlmIChtX2ZpbGxUaW1lci5pc0Fj
dGl2ZSgpKQotICAgICAgICAgICAgbV9maWxsVGltZXIuc3RvcCgpOwotCi0gICAgICAgIG1fZmls
bFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuMik7Ci0gICAgfQotCi0gICAgaWYgKCFtX3BhdXNlZCAm
JiBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgPCAxMDApIHsKLSAgICAgICAgTE9HX01FRElBX01FU1NB
R0UoIltCdWZmZXJpbmddIERvd25sb2FkIGluIHByb2dyZXNzLCBwYXVzaW5nIHBpcGVsaW5lLiIp
OwotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RB
VEVfUEFVU0VEKTsKLSAgICB9CisgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI+KikKQEAgLTg5NCw3ICs4NzIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbQogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gVXBkYXRlZCBtYXhU
aW1lTG9hZGVkOiAlZiIsIG1fbWF4VGltZUxvYWRlZCk7CiAgICAgfQogCi0gICAgaWYgKGZpbGxT
dGF0dXMgIT0gMTAwLjApIHsKKyAgICBtX2Rvd25sb2FkRmluaXNoZWQgPSBmaWxsU3RhdHVzID09
IDEwMC4wOworICAgIGlmICghbV9kb3dubG9hZEZpbmlzaGVkKSB7CiAgICAgICAgIHVwZGF0ZVN0
YXRlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTAzLDcgKzg4Miw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtCiAgICAgLy8gY29ubmVjdGlvbiBpcyBjdXQuIEJ1ZmZlcmluZyBp
cyBkb25lLCByZW1vdmUgdGhlIGZpbGwgc291cmNlCiAgICAgLy8gZnJvbSB0aGUgbWFpbiBsb29w
LgogICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLSAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSBmYWxz
ZTsKICAgICB1cGRhdGVTdGF0ZXMoKTsKIH0KIApAQCAtOTI2LDggKzkwNCw4IEBAIGZsb2F0IE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgICAg
IHJldHVybiAwLjBmOwogCiAgICAgZmxvYXQgbG9hZGVkID0gbV9tYXhUaW1lTG9hZGVkOwotICAg
IGlmICghbG9hZGVkICYmICFtX2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBsb2FkZWQg
PSBkdXJhdGlvbigpOworICAgIGlmIChtX2lzRW5kUmVhY2hlZCAmJiBtX21lZGlhRHVyYXRpb24p
CisgICAgICAgIGxvYWRlZCA9IG1fbWVkaWFEdXJhdGlvbjsKICAgICBMT0dfTUVESUFfTUVTU0FH
RSgibWF4VGltZUxvYWRlZDogJWYiLCBsb2FkZWQpOwogICAgIHJldHVybiBsb2FkZWQ7CiB9CkBA
IC0xMDk3LDcgKzEwNzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBk
YXRlU3RhdGVzKCkKIAogICAgIGJvb2wgc2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNl
OwogICAgIHN3aXRjaCAoZ2V0U3RhdGVSZXN1bHQpIHsKLSAgICBjYXNlIEdTVF9TVEFURV9DSEFO
R0VfU1VDQ0VTUzoKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzogewogICAgICAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsIGdzdF9lbGVtZW50
X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGlu
ZykpOwogCiAgICAgICAgIGlmIChzdGF0ZSA8PSBHU1RfU1RBVEVfUkVBRFkpIHsKQEAgLTExMDYs
MjYgKzEwODQsNDUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0
YXRlcygpCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2FjaGVEdXJhdGlvbigpOwogCi0g
ICAgICAgIC8vIFRyeSB0byBmaWd1cmUgb3V0IHJlYWR5IGFuZCBuZXR3b3JrIHN0YXRlcy4KLSAg
ICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9SRUFEWSkgeworICAgICAgICBib29sIGRpZEJ1
ZmZlcmluZyA9IG1fYnVmZmVyaW5nOworCisgICAgICAgIC8vIFVwZGF0ZSByZWFkeSBhbmQgbmV0
d29yayBzdGF0ZXMuCisgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSBHU1Rf
U1RBVEVfTlVMTDoKKyAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZl
Tm90aGluZzsKKyAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR1NUX1NUQVRFX1JFQURZOgogICAg
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsKICAgICAg
ICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5OwotICAgICAgICB9IGVs
c2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RBVEVfTlVMTCkgfHwgKG1heFRpbWVMb2FkZWQoKSA9PSBk
dXJhdGlvbigpKSkgewotICAgICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6
TG9hZGVkOwotICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91
Z2hEYXRhOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gY3Vy
cmVudFRpbWUoKSA8IG1heFRpbWVMb2FkZWQoKSA/IE1lZGlhUGxheWVyOjpIYXZlRnV0dXJlRGF0
YSA6IE1lZGlhUGxheWVyOjpIYXZlQ3VycmVudERhdGE7Ci0gICAgICAgICAgICBtX25ldHdvcmtT
dGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwotICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBHU1RfU1RBVEVfUEFVU0VEOgorICAgICAgICBjYXNlIEdTVF9TVEFU
RV9QTEFZSU5HOgorICAgICAgICAgICAgaWYgKG1fYnVmZmVyaW5nKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9PSAxMDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIENvbXBsZXRlLiIpOworICAgICAgICAg
ICAgICAgICAgICBtX2J1ZmZlcmluZyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBtX3Jl
YWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUVub3VnaERhdGE7CisgICAgICAgICAgICAgICAg
ICAgIG1fbmV0d29ya1N0YXRlID0gbV9kb3dubG9hZEZpbmlzaGVkID8gTWVkaWFQbGF5ZXI6Oklk
bGUgOiBNZWRpYVBsYXllcjo6TG9hZGluZzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUN1cnJlbnRE
YXRhOworICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpM
b2FkaW5nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9kb3du
bG9hZEZpbmlzaGVkKSB7CisgICAgICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5
ZXI6OkhhdmVFbm91Z2hEYXRhOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVk
aWFQbGF5ZXI6OkxvYWRlZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
bV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOworICAgICAgICAgICAg
ICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7CisgICAgICAgICAgICB9
CiAKLSAgICAgICAgaWYgKG1fYnVmZmVyaW5nICYmIHN0YXRlICE9IEdTVF9TVEFURV9SRUFEWSkg
ewotICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVDdXJyZW50RGF0
YTsKLSAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAv
LyBOb3cgbGV0J3MgdHJ5IHRvIGdldCB0aGUgc3RhdGVzIGluIG1vcmUgZGV0YWlsIHVzaW5nCi0g
ICAgICAgIC8vIGluZm9ybWF0aW9uIGZyb20gR1N0cmVhbWVyLCB3aGlsZSB3ZSBzeW5jIHN0YXRl
cyB3aGVyZQotICAgICAgICAvLyBuZWVkZWQuCisgICAgICAgIC8vIFN5bmMgc3RhdGVzIHdoZXJl
IG5lZWRlZC4KICAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9QQVVTRUQpIHsKICAgICAg
ICAgICAgIGlmICghbV93ZWJraXRBdWRpb1NpbmspCiAgICAgICAgICAgICAgICAgdXBkYXRlQXVk
aW9TaW5rKCk7CkBAIC0xMTM2LDM5ICsxMTMzLDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICAgICAgICAgIG1fdm9sdW1lQW5kTXV0
ZUluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1f
YnVmZmVyaW5nICYmIG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9PSAxMDApIHsKLSAgICAgICAgICAg
ICAgICBtX2J1ZmZlcmluZyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fYnVmZmVyaW5nUGVy
Y2VudGFnZSA9IDA7Ci0gICAgICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6
OkhhdmVFbm91Z2hEYXRhOwotCi0gICAgICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIltC
dWZmZXJpbmddIENvbXBsZXRlLiIpOwotCi0gICAgICAgICAgICAgICAgaWYgKCFtX3BhdXNlZCkg
ewotICAgICAgICAgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVz
dGFydGluZyBwbGF5YmFjay4iKTsKLSAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0
X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX1BMQVlJTkcpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIW1fYnVmZmVyaW5nICYmIChjdXJyZW50VGlt
ZSgpIDwgZHVyYXRpb24oKSkpIHsKLSAgICAgICAgICAgICAgICBtX3BhdXNlZCA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAoZGlkQnVmZmVyaW5nICYmICFtX2J1ZmZlcmluZyAmJiAhbV9wYXVzZWQp
IHsKKyAgICAgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVzdGFy
dGluZyBwbGF5YmFjay4iKTsKKyAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUExBWUlORyk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZSBpZiAoc3RhdGUgPT0gR1NUX1NUQVRFX1BMQVlJTkcpIHsKLSAgICAgICAgICAg
IG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlRW5vdWdoRGF0YTsKICAgICAgICAgICAg
IG1fcGF1c2VkID0gZmFsc2U7CiAKICAgICAgICAgICAgIGlmIChtX2J1ZmZlcmluZyAmJiAhaXNM
aXZlU3RyZWFtKCkpIHsKLSAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXll
cjo6SGF2ZUN1cnJlbnREYXRhOwotICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVk
aWFQbGF5ZXI6OkxvYWRpbmc7Ci0KICAgICAgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
W0J1ZmZlcmluZ10gUGF1c2luZyBzdHJlYW0gZm9yIGJ1ZmZlcmluZy4iKTsKLQogICAgICAgICAg
ICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFURV9Q
QVVTRUQpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fcGF1
c2VkID0gdHJ1ZTsKIAotICAgICAgICAvLyBJcyBvbi1kaXNrIGJ1ZmZlcmluZyBpbiBwcm9ncmVz
cz8KLSAgICAgICAgaWYgKG1fZmlsbFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX25l
dHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwotCiAgICAgICAgIGlmIChtX2NoYW5n
aW5nUmF0ZSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2VkKCk7CiAgICAgICAg
ICAgICBtX2NoYW5naW5nUmF0ZSA9IGZhbHNlOwpAQCAtMTE4MCwxOCArMTE1OCwxMCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgfQog
CiAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfQVNZTkM6
CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJBc3luYzogU3RhdGU6ICVzLCBwZW5kaW5nOiAl
cyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVf
Z2V0X25hbWUocGVuZGluZykpOwotICAgICAgICAvLyBDaGFuZ2UgaW4gcHJvZ3Jlc3MKLQotICAg
ICAgICAvLyBPbi1kaXNrIGJ1ZmZlcmluZyB3YXMgYXR0ZW1wdGVkIGJ1dCB0aGUgbWVkaWEgaXMg
bGl2ZS4gVGhpcwotICAgICAgICAvLyBjYW4ndCB3b3JrIHNvIGRpc2FibGUgb24tZGlzayBidWZm
ZXJpbmcgYW5kIHJlc2V0IHRoZQotICAgICAgICAvLyBwaXBlbGluZS4KLSAgICAgICAgaWYgKHN0
YXRlID09IEdTVF9TVEFURV9SRUFEWSAmJiBpc0xpdmVTdHJlYW0oKSAmJiBtX3ByZWxvYWQgPT0g
TWVkaWFQbGF5ZXI6OkF1dG8pIHsKLSAgICAgICAgICAgIHNldFByZWxvYWQoTWVkaWFQbGF5ZXI6
Ok5vbmUpOwotICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQo
KSwgR1NUX1NUQVRFX05VTEwpOwotICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1f
cGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX1BBVVNFRCk7Ci0gICAgICAgIH0KKyAgICAgICAgLy8g
Q2hhbmdlIGluIHByb2dyZXNzLgogCiAgICAgICAgIC8vIEEgbGl2ZSBzdHJlYW0gd2FzIHBhdXNl
ZCwgcmVzZXQgdGhlIHBpcGVsaW5lLgogICAgICAgICBpZiAoc3RhdGUgPT0gR1NUX1NUQVRFX1BB
VVNFRCAmJiBwZW5kaW5nID09IEdTVF9TVEFURV9QTEFZSU5HICYmIGlzTGl2ZVN0cmVhbSgpKSB7
CkBAIC0xMjA3LDEzICsxMTc3LDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVTdGF0ZXMoKQogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9OT19QUkVST0xMOgog
ICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiTm8gcHJlcm9sbDogU3RhdGU6ICVzLCBwZW5kaW5n
OiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwgZ3N0X2VsZW1lbnRfc3Rh
dGVfZ2V0X25hbWUocGVuZGluZykpOwogCisgICAgICAgIC8vIExpdmUgcGlwZWxpbmVzIGdvIGlu
IFBBVVNFRCB3aXRob3V0IHByZXJvbGxpbmcuCisgICAgICAgIG1faXNTdHJlYW1pbmcgPSB0cnVl
OworICAgICAgICBzZXREb3dubG9hZEJ1ZmZlcmluZygpOworCiAgICAgICAgIGlmIChzdGF0ZSA9
PSBHU1RfU1RBVEVfUkVBRFkpCiAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXll
cjo6SGF2ZU5vdGhpbmc7CiAgICAgICAgIGVsc2UgaWYgKHN0YXRlID09IEdTVF9TVEFURV9QQVVT
RUQpIHsKICAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlRW5vdWdo
RGF0YTsKICAgICAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKLSAgICAgICAgICAgIC8vIExpdmUg
cGlwZWxpbmVzIGdvIGluIFBBVVNFRCB3aXRob3V0IHByZXJvbGxpbmcuCi0gICAgICAgICAgICBt
X2lzU3RyZWFtaW5nID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSBHU1RfU1RB
VEVfUExBWUlORykKICAgICAgICAgICAgIG1fcGF1c2VkID0gZmFsc2U7CiAKQEAgLTEzMzksNyAr
MTMxMSw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0
aW9uKCkKICAgICB9CiAgICAgbV9tZWRpYUxvY2F0aW9uQ3VycmVudEluZGV4LS07CiAgICAgcmV0
dXJuIGZhbHNlOwotCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2Fk
U3RhdGVDaGFuZ2VkKCkKQEAgLTEzNzEsNiArMTM0Miw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpkaWRFbmQoKQogICAgIGlmICghbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xp
ZW50KCktPm1lZGlhUGxheWVySXNMb29waW5nKCkpIHsKICAgICAgICAgbV9wYXVzZWQgPSB0cnVl
OwogICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RB
VEVfTlVMTCk7CisgICAgICAgIG1fZG93bmxvYWRGaW5pc2hlZCA9IGZhbHNlOwogICAgIH0KIH0K
IApAQCAtMTU0NSwxMiArMTUxNywxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6c2V0RG93bmxvYWRCdWZmZXJpbmcoKQogCiAgICAgR3N0UGxheUZsYWdzIGZsYWdzOwogICAg
IGdfb2JqZWN0X2dldChtX3BsYXlCaW4uZ2V0KCksICJmbGFncyIsICZmbGFncywgTlVMTCk7Ci0g
ICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXllcjo6QXV0bykgeworICAgIGJvb2wgc2hvdWxk
RG93bmxvYWQgPSAhaXNMaXZlU3RyZWFtKCk7CisgICAgaWYgKHNob3VsZERvd25sb2FkKSB7CiAg
ICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJFbmFibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIpOwog
ICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAiZmxhZ3MiLCBmbGFncyB8IEdT
VF9QTEFZX0ZMQUdfRE9XTkxPQUQsIE5VTEwpOworICAgICAgICBtX2ZpbGxUaW1lci5zdGFydFJl
cGVhdGluZygwLjIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJE
aXNhYmxpbmcgb24tZGlzayBidWZmZXJpbmciKTsKICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGxh
eUJpbi5nZXQoKSwgImZsYWdzIiwgZmxhZ3MgJiB+R1NUX1BMQVlfRkxBR19ET1dOTE9BRCwgTlVM
TCk7CisgICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKICAgICB9CiB9CiAKQEAgLTE1NjEsOCAr
MTUzNiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQcmVsb2FkKE1l
ZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiAKICAgICBtX3ByZWxvYWQgPSBwcmVsb2FkOwog
Ci0gICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKLQogICAgIGlmIChtX2RlbGF5aW5nTG9hZCAm
JiBtX3ByZWxvYWQgIT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICAgICAgICAgbV9kZWxheWluZ0xv
YWQgPSBmYWxzZTsKICAgICAgICAgY29tbWl0TG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDk5YzZiMTg2NzA1NGM4MTkwOGI4ZmI5M2Fk
N2IzODJiMzE0ZmVkOTEuLjc4ZTNlN2NlMzU4Mjg2YWRlZTRkZTZmMTg3ZDY4ZjUzYjYwYWQ0OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE0
OCw3ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGxheWJhY2tSYXRlOwogICAgIGJv
b2wgbV9lcnJvck9jY3VyZWQ7CiAgICAgbXV0YWJsZSBnZmxvYXQgbV9tZWRpYUR1cmF0aW9uOwot
ICAgIGJvb2wgbV9zdGFydGVkQnVmZmVyaW5nOworICAgIGJvb2wgbV9kb3dubG9hZEZpbmlzaGVk
OwogICAgIFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gbV9maWxsVGltZXI7CiAg
ICAgZmxvYXQgbV9tYXhUaW1lTG9hZGVkOwogICAgIGludCBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2U7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOGQ1ODc1ZjE5MzcxZjMxMjIxYTgzY2EzMGEyNzI5NjhkYjJiMDU4MC4uNjQ5ZjYy
OGM0Njc3NTI5NDE1MTFmYjUwNzAwNGM5YWIyMDYwM2M3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTA1LTI0ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAg
ICAgICBbR3N0cmVhbWVyXSBjbGVhbnVwIGJ1ZmZlcmluZyBhbmQgc3RhdGUgdXBkYXRlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGZhaWx1
cmUgZXhwZWN0YXRpb25zIGZyb20gdGVzdHMgdGhhdCBzdGFydGVkIHRvIHBhc3MuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wNS0yMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBNYWMgdGVzdCBleHBlY3RhdGlvbiBjb3JyZWN0aW9ucyBh
ZnRlciByMTUwNTQ1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBiZmQyNjhhZmVlOWFkMWIyNzU0YWI2OGRjNjc4MTliZTUwYjNmM2U0Li41NDJiYzk1ZDVm
M2MzMTQ3NGE3NDVkMDUzYjczN2E0ZWU0OTBjMDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg2NCwxNiArMTg2NCw3IEBAIHdlYmtpdC5vcmcvYi8x
MTQ2MTIgZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDUuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzExNTkxOSBmYXN0L2Nzcy92YXJpYWJsZXMvdmFyLWluc2lkZS1zaGFwZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgVW5pZGVudGlmaWVkIGZhaWxpbmcgbWVkaWEgdGVz
dHMKLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlh
bG9nLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRp
YS9yZW1vdmUtd2hpbGUtbG9hZGluZy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1
NDE5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY2FuY2VsLWxvYWQuaHRtbCBbIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWVycm9yLWFib3J0Lmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1sb2FkLXN1c3BlbmQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExNTQxOSBodHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2UuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzExNTQxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktcHJvZ3Jlc3MuaHRtbCBbIEZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlZGly
ZWN0Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1zZXJ2ZWQtYXMtdGV4dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1
NDE5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tdGhyb3R0bGVkLWxvYWQtbWV0YWRhdGEuaHRtbCBb
IEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExNTQxOSBtZWRpYS9tZWRpYS1jYW4tcGxheS1vZ2cu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExNTQxOSBtZWRpYS90cmFjay90cmFjay1h
dXRvbWF0aWMtc3VidGl0bGVzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU0MTkg
bWVkaWEvdmlkZW8tcG9zdGVyLWJhY2tncm91bmQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202978</attachid>
            <date>2013-05-27 06:03:52 -0700</date>
            <delta_ts>2013-05-27 06:10:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116642-20130527150232.patch</filename>
            <type>text/plain</type>
            <size>17487</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTliNjNjYmQzYjRlMGI4
OWQ2MTE3NWZhOGU2MDM5ZmIyYjNmOWI4Ny4uOGMwYjRkOThkMDQ4ODNlMTU0YWUxMzU1NWQwNmIy
YzllNDA5YWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTA1LTI0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR3N0cmVhbWVyXSBj
bGVhbnVwIGJ1ZmZlcmluZyBhbmQgc3RhdGUgdXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBtZWRpYSB0ZXN0
cywgZXNwZWNpYWxseSB0aGUgb25lcyB0aGF0IGhhdmUgYmVlbiB1bnNraXBwZWQuCisKKyAgICAg
ICAgQWx3YXlzIGRvIGRvd25sb2FkIGJ1ZmZlcmluZy4gSXQgc2hvdWxkIG5vdCBkaWZmZXIgaWYg
cHJlbG9hZCBpcyAibm9uZSIgYmVjYXVzZQorICAgICAgICBpdCdzIGFib3V0IHdoZW4gdG8gc3Rh
cnQgYnVmZmVyaW5nLCBub3QgYWJvdXQgaG93LiBGaXggYSBidW5jaCBvdGhlciBzdWJ0bGUgaXNz
dWVzCisgICAgICAgIHRvIG1ha2UgdGhpcyBjaGFuZ2UgZ28gc21vb3RobHkgd2l0aCB0aGUgdGVz
dHMuIEFzIGEgYm9udXMgc29tZSB0ZXN0cyB0aGF0IHdlcmUKKyAgICAgICAgZmFpbGluZyBzbyBm
YXIgc3RhcnRlZCB0byBwYXNzLgorICAgICAgICBJdCBpcyBwb3NzaWJsZSB0byBmdXJ0aGVyIHR3
ZWFrIHRoZSBidWZmZXJpbmcgaW4gYSB3YXkgdGhhdCB3aWxsIGVuYWJsZSB1cyB0byBzdXBwb3J0
CisgICAgICAgIGEgZGlmZmVyZW50IGFuZCBhcHByb3ByaWF0ZSBiZWhhdmlvciBmb3IgcHJlbG9h
ZD0ibWV0YWRhdGEiIGJ1dCBpdCBzaG91bGQgYmUgbWFuYWdlZAorICAgICAgICBhIGJpdCBkaWZm
ZXJlbnRseS4gSSB3aWxsIGltcGxlbWVudCBpdCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkKTogRG9uJ3QgY2FsbCBzZXREb3dubG9hZEJ1ZmZlcmluZwor
ICAgICAgICB5ZXQuIE5vdyBpdCBhbHNvIHJlc3BvbnNpYmxlIGZvciBzdGFydGluZyB0aGUgZmls
bCB0aW1lciBhbmQgaXQgdHVybmVkIG91dCB0aGF0CisgICAgICAgIHNldHRpbmcgdGhlIGRvd25s
b2FkIGZsYWcgYmVmb3JlIHRoZSBwaXBlbGluZSBpcyBzZXQgdG8gYSBzdGF0ZSBoYXMgbmVnYXRp
dmUKKyAgICAgICAgZWZmZWN0IG9uIHNvbWUgdGVzdHMuIE1vc3QgcHJvYmFibHkgR1N0cmVhbWVy
IHN0YXJ0cyBidWZmZXJpbmcgdG9vIGVhcmx5IGlmCisgICAgICAgIHdlIHNldCB0aGUgZG93bmxv
YWQgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y29tbWl0TG9hZCk6IENhbGwgc2V0RG93bmxvYWRCdWZmZXJpbmcgbm93LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5KTogRGl0dG8sIHBsdXMgc2V0
IG1fZGVsYXlpbmdMb2FkIHRvIGZhbHNlCisgICAgICAgIGJlY2F1c2Ugb3RoZXJ3aXNlIHNldFBy
ZWxvYWQgd2lsbCB3cm9uZ2x5IGFzc3VtZSB0aGF0IHRoZSBsb2FkIGhhcyBub3QgYmVlbiBjb21t
aXR0ZWQKKyAgICAgICAgeWV0IGlmIHByZXBhcmVUb1BsYXkgaXMgbm90IGNhbGxlZCBiZWZvcmUg
cGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGF1
c2UpOiBNYWtlIHN1cmUgd2UgZG9uJ3QgY29tbWl0IGEgbG9hZCBoZXJlCisgICAgICAgIGlmIGl0
IHdhcyBub3QgY29tbWl0dGVkIHlldCBieSBsb29raW5nIGluIHRoZSBwaXBlbGluZSBzdGF0ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1
ZmZlcmluZ1N0YXRzKTogTm8gbmVlZCB0byBvYnNlcnZlIHRoZQorICAgICAgICB0eXBlIG9mIGJ1
ZmZlcmluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZmlsbFRpbWVyRmlyZWQpOiBJbnRyb2R1Y2VkIG1fZG93bmxvYWRGaW5pc2hlZCB0byB1cGRhdGUK
KyAgICAgICAgcmVhZHkgYW5kIG5ldHdvcmsgc3RhdGVzIGluIHVwZGF0ZVN0YXRlcyBiYXNlZCBv
biBpdC4gVGhlIHByZXZpb3VzbHkgdXNlZCBjb25kaXRpb24KKyAgICAgICAgLSAobWF4VGltZUxv
YWRlZCgpID09IGR1cmF0aW9uKCkpIC0gd2FzIG5vdCBjb3JyZWN0IGluIHRoZSBjYXNlIHdoZW4g
ZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKTogUmVtb3ZlZCBhIGxpZS4gSWYgdGhlIGZpbGwg
dGltZXIgaXMgbm90IGFjdGl2ZQorICAgICAgICBpdCBkb2VzIG5vdCBuZWNlc2FyaWx5IG1lYW5z
IHRoYXQgZG93bmxvYWQgaGFzIGJlZW4gZmluaXNoZWQuIFRoaXMgbGllIHdhcyBhY3R1YWxseSBl
bnN1cmluZworICAgICAgICBhIGxvdCBvZiB0ZXN0cyB0byBwYXNzIGJlY2F1c2UgaXQgbWFkZSB0
aGUgY29uZGl0aW9uIChtYXhUaW1lTG9hZGVkKCkgPT0gZHVyYXRpb24oKSkgdHJ1ZS4KKyAgICAg
ICAgTm93IHRoYXQgc3RhdGUgdXBkYXRlcyBoYXMgYmVlbiBjbGVhbmVkIHVwIHdlIGRvbid0IG5l
ZWQgdG8gbGllLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVTdGF0ZXMpOiBNZXJnZSBhbGwgdGhlIHBhcnRzIHRoYXQgdGFrZXMgcGFydCBpbiB1
cGRhdGluZworICAgICAgICByZWFkeSBhbmQgbmV0d29yayBzdGF0ZXMuIEl0IHdhcyB1bnRyYWNr
YWJsZS4gVGhyZXJlIGlzIGJlaGF2aW9yYWwgY2hhbmdlIGFzIHdlbGwuIEkgcmVtb3ZlZCB0aGUK
KyAgICAgICAgfGN1cnJlbnRUaW1lKCkgPCBtYXhUaW1lTG9hZGVkKCl8IGNvbmRpdGlvbiBhbmQg
anVzdCBhbHdheXMgcmV0dXJuIEhhdmVGdXR1cmVEYXRhIGFmdGVyIHRoZSBidWZmZXJpbmcKKyAg
ICAgICAgcGhhc2UuIEZpcnN0LCBjdXJyZW50VGltZSgpIGlzIHplcm8gaWYgdGhlIHBvc2l0aW9u
IHF1ZXJ5IGZhaWxzLiBTZWNvbmQsIGl0IGRvZXMgbm90IHNlZW0gdG8gYmUgZ29vZAorICAgICAg
ICB0byBnbyBiYWNrIHRvIEhhdmVDdXJyZW50RGF0YSBpZiBidWZmZXJpbmcgaXMgbm90IG5lZWRl
ZCAoSGF2ZUN1cnJlbnREYXRhIG1lYW5zIHdlIG9ubHkgaGF2ZSB0aGUgYWN0dWFsCisgICAgICAg
IGZyYW1lIGJ1dCBubyBtb3JlKS4gVGhhdCBjaGFuZ2UgZGlkIG5vdCBtYWtlIGFueSBpbXBhY3Qg
b24gdGhlIHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6IFJlbW92ZWQgbV9zdGFydGVkQnVmZmVyaW5nIGJlY2F1c2UgdGhlcmUgaXMgbm8g
bmVlZCBmb3IgaXQgbm93LgorCiAyMDEzLTA1LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhc3NlcnRpb24gaW4gdGhlIGdldENvbXB1dGVk
U3R5bGUtYmFja2dyb3VuZC1zaG9ydGhhbmQuaHRtbCB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDAyOTA2MzAwNTUwNmUyODEyZmQ5
N2NmODUyMzVkOTJlNWM0YjY1NDQuLmZiMTkwYTE1ZjMwZDYyNjJmNDdmOTkzODcxMDA2NWYxNjhi
MGY2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fcGxh
eWJhY2tSYXRlKDEpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkKICAgICAsIG1fbWVkaWFE
dXJhdGlvbigwKQotICAgICwgbV9zdGFydGVkQnVmZmVyaW5nKGZhbHNlKQorICAgICwgbV9kb3du
bG9hZEZpbmlzaGVkKGZhbHNlKQogICAgICwgbV9maWxsVGltZXIodGhpcywgJk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQpCiAgICAgLCBtX21heFRpbWVMb2FkZWQo
MCkKICAgICAsIG1fYnVmZmVyaW5nUGVyY2VudGFnZSgwKQpAQCAtMjg4LDEwICsyODgsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkK
ICAgICBpZiAoa3VybC5pc0xvY2FsRmlsZSgpKQogICAgICAgICBjbGVhblVybCA9IGNsZWFuVXJs
LnN1YnN0cmluZygwLCBrdXJsLnBhdGhFbmQoKSk7CiAKLSAgICBpZiAoIW1fcGxheUJpbikgewor
ICAgIGlmICghbV9wbGF5QmluKQogICAgICAgICBjcmVhdGVHU1RQbGF5QmluKCk7Ci0gICAgICAg
IHNldERvd25sb2FkQnVmZmVyaW5nKCk7Ci0gICAgfQogCiAgICAgQVNTRVJUKG1fcGxheUJpbik7
CiAKQEAgLTMzMyw2ICszMzEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y29tbWl0TG9hZCgpCiAgICAgLy8gc3RhcnQgcHJvdmlkaW5nIGFueXRoaW5nIHVzZWZ1bC4KICAg
ICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUEFVU0VE
KTsKIAorICAgIHNldERvd25sb2FkQnVmZmVyaW5nKCk7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9
CiAKQEAgLTQwNywxMyArNDA2LDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwbGF5KCkKIHsKICAgICBpZiAoY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUExBWUlO
RykpIHsKICAgICAgICAgbV9pc0VuZFJlYWNoZWQgPSBmYWxzZTsKKyAgICAgICAgbV9kZWxheWlu
Z0xvYWQgPSBmYWxzZTsKKyAgICAgICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKICAgICAgICAg
TE9HX01FRElBX01FU1NBR0UoIlBsYXkiKTsKICAgICB9CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpwYXVzZSgpCiB7Ci0gICAgaWYgKG1faXNFbmRSZWFjaGVkKQorICAg
IEdzdFN0YXRlIGN1cnJlbnRTdGF0ZSwgcGVuZGluZ1N0YXRlOworICAgIGdzdF9lbGVtZW50X2dl
dF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZjdXJyZW50U3RhdGUsICZwZW5kaW5nU3RhdGUsIDAp
OworICAgIGlmIChjdXJyZW50U3RhdGUgPCBHU1RfU1RBVEVfUEFVU0VEICYmIHBlbmRpbmdTdGF0
ZSA8PSBHU1RfU1RBVEVfUEFVU0VEKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY2hhbmdl
UGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFVU0VEKSkKQEAgLTgyNywzOCArODMwLDEzIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1
bHQoR3N0SW5zdGFsbFBsdWdpbnNSCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojpwcm9jZXNzQnVmZmVyaW5nU3RhdHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKIHsKLSAgICAvLyBU
aGlzIGlzIHRoZSBpbW1lZGlhdGUgYnVmZmVyaW5nIHRoYXQgbmVlZHMgdG8gaGFwcGVuIHNvIHdl
IGhhdmUKLSAgICAvLyBlbm91Z2ggdG8gcGxheSByaWdodCBub3cuCiAgICAgbV9idWZmZXJpbmcg
PSB0cnVlOwogICAgIGNvbnN0IEdzdFN0cnVjdHVyZSAqc3RydWN0dXJlID0gZ3N0X21lc3NhZ2Vf
Z2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0
dXJlLCAiYnVmZmVyLXBlcmNlbnQiLCAmbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAogICAgIExP
R19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJp
bmdQZXJjZW50YWdlKTsKIAotICAgIEdzdEJ1ZmZlcmluZ01vZGUgbW9kZTsKLSAgICBnc3RfbWVz
c2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMobWVzc2FnZSwgJm1vZGUsIDAsIDAsIDApOwotICAg
IGlmIChtb2RlICE9IEdTVF9CVUZGRVJJTkdfRE9XTkxPQUQpIHsKLSAgICAgICAgdXBkYXRlU3Rh
dGVzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGlzIG9uLWRpc2sg
YnVmZmVyaW5nLCB0aGF0IGFsbG93cyB1cyB0byBkb3dubG9hZCBtdWNoIG1vcmUKLSAgICAvLyB0
aGFuIG5lZWRlZCBmb3IgcmlnaHQgbm93LgotICAgIGlmICghbV9zdGFydGVkQnVmZmVyaW5nKSB7
Ci0gICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNr
IGJ1ZmZlcmluZy4iKTsKLQotICAgICAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSB0cnVlOwotCi0g
ICAgICAgIGlmIChtX2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9maWxsVGlt
ZXIuc3RvcCgpOwotCi0gICAgICAgIG1fZmlsbFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuMik7Ci0g
ICAgfQotCi0gICAgaWYgKCFtX3BhdXNlZCAmJiBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgPCAxMDAp
IHsKLSAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIERvd25sb2FkIGluIHBy
b2dyZXNzLCBwYXVzaW5nIHBpcGVsaW5lLiIpOwotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUEFVU0VEKTsKLSAgICB9CisgICAgdXBkYXRl
U3RhdGVzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGlt
ZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KikKQEAgLTg5NCw3ICs4
NzIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQo
VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbQogICAgICAgICBMT0dfTUVESUFfTUVTU0FH
RSgiW0J1ZmZlcmluZ10gVXBkYXRlZCBtYXhUaW1lTG9hZGVkOiAlZiIsIG1fbWF4VGltZUxvYWRl
ZCk7CiAgICAgfQogCi0gICAgaWYgKGZpbGxTdGF0dXMgIT0gMTAwLjApIHsKKyAgICBtX2Rvd25s
b2FkRmluaXNoZWQgPSBmaWxsU3RhdHVzID09IDEwMC4wOworICAgIGlmICghbV9kb3dubG9hZEZp
bmlzaGVkKSB7CiAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtOTAzLDcgKzg4Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpm
aWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAgICAgLy8gY29u
bmVjdGlvbiBpcyBjdXQuIEJ1ZmZlcmluZyBpcyBkb25lLCByZW1vdmUgdGhlIGZpbGwgc291cmNl
CiAgICAgLy8gZnJvbSB0aGUgbWFpbiBsb29wLgogICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLSAg
ICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSBmYWxzZTsKICAgICB1cGRhdGVTdGF0ZXMoKTsKIH0KIApA
QCAtOTI2LDggKzkwNCw4IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4
VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwLjBmOwogCiAgICAgZmxvYXQgbG9h
ZGVkID0gbV9tYXhUaW1lTG9hZGVkOwotICAgIGlmICghbG9hZGVkICYmICFtX2ZpbGxUaW1lci5p
c0FjdGl2ZSgpKQotICAgICAgICBsb2FkZWQgPSBkdXJhdGlvbigpOworICAgIGlmIChtX2lzRW5k
UmVhY2hlZCAmJiBtX21lZGlhRHVyYXRpb24pCisgICAgICAgIGxvYWRlZCA9IG1fbWVkaWFEdXJh
dGlvbjsKICAgICBMT0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDogJWYiLCBsb2FkZWQp
OwogICAgIHJldHVybiBsb2FkZWQ7CiB9CkBAIC0xMDk3LDcgKzEwNzUsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKIAogICAgIGJvb2wgc2hvdWxk
VXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNlOwogICAgIHN3aXRjaCAoZ2V0U3RhdGVSZXN1bHQp
IHsKLSAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzoKKyAgICBjYXNlIEdTVF9TVEFU
RV9DSEFOR0VfU1VDQ0VTUzogewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU3RhdGU6ICVz
LCBwZW5kaW5nOiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwgZ3N0X2Vs
ZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOwogCiAgICAgICAgIGlmIChzdGF0ZSA8PSBH
U1RfU1RBVEVfUkVBRFkpIHsKQEAgLTExMDYsMjYgKzEwODQsNDUgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgY2FjaGVEdXJhdGlvbigpOwogCi0gICAgICAgIC8vIFRyeSB0byBmaWd1cmUgb3V0IHJl
YWR5IGFuZCBuZXR3b3JrIHN0YXRlcy4KLSAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9S
RUFEWSkgeworICAgICAgICBib29sIGRpZEJ1ZmZlcmluZyA9IG1fYnVmZmVyaW5nOworCisgICAg
ICAgIC8vIFVwZGF0ZSByZWFkeSBhbmQgbmV0d29yayBzdGF0ZXMuCisgICAgICAgIHN3aXRjaCAo
c3RhdGUpIHsKKyAgICAgICAgY2FzZSBHU1RfU1RBVEVfTlVMTDoKKyAgICAgICAgICAgIG1fcmVh
ZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsKKyAgICAgICAgICAgIG1fbmV0d29y
a1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgR1NUX1NUQVRFX1JFQURZOgogICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQ
bGF5ZXI6OkhhdmVNZXRhZGF0YTsKICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQ
bGF5ZXI6OkVtcHR5OwotICAgICAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RBVEVfTlVM
TCkgfHwgKG1heFRpbWVMb2FkZWQoKSA9PSBkdXJhdGlvbigpKSkgewotICAgICAgICAgICAgbV9u
ZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGVkOwotICAgICAgICAgICAgbV9yZWFkeVN0
YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gY3VycmVudFRpbWUoKSA8IG1heFRpbWVMb2FkZWQoKSA/
IE1lZGlhUGxheWVyOjpIYXZlRnV0dXJlRGF0YSA6IE1lZGlhUGxheWVyOjpIYXZlQ3VycmVudERh
dGE7Ci0gICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwot
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHU1RfU1RBVEVfUEFV
U0VEOgorICAgICAgICBjYXNlIEdTVF9TVEFURV9QTEFZSU5HOgorICAgICAgICAgICAgaWYgKG1f
YnVmZmVyaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9
PSAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJp
bmddIENvbXBsZXRlLiIpOworICAgICAgICAgICAgICAgICAgICBtX2J1ZmZlcmluZyA9IGZhbHNl
OworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUVu
b3VnaERhdGE7CisgICAgICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gbV9kb3dubG9h
ZEZpbmlzaGVkID8gTWVkaWFQbGF5ZXI6OklkbGUgOiBNZWRpYVBsYXllcjo6TG9hZGluZzsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUg
PSBNZWRpYVBsYXllcjo6SGF2ZUN1cnJlbnREYXRhOworICAgICAgICAgICAgICAgICAgICBtX25l
dHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAobV9kb3dubG9hZEZpbmlzaGVkKSB7CisgICAgICAgICAgICAg
ICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOworICAgICAgICAg
ICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRlZDsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6Okhh
dmVGdXR1cmVEYXRhOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5
ZXI6OkxvYWRpbmc7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fYnVmZmVyaW5nICYm
IHN0YXRlICE9IEdTVF9TVEFURV9SRUFEWSkgewotICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0g
TWVkaWFQbGF5ZXI6OkhhdmVDdXJyZW50RGF0YTsKLSAgICAgICAgICAgIG1fbmV0d29ya1N0YXRl
ID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBOb3cgbGV0J3MgdHJ5IHRvIGdldCB0aGUgc3Rh
dGVzIGluIG1vcmUgZGV0YWlsIHVzaW5nCi0gICAgICAgIC8vIGluZm9ybWF0aW9uIGZyb20gR1N0
cmVhbWVyLCB3aGlsZSB3ZSBzeW5jIHN0YXRlcyB3aGVyZQotICAgICAgICAvLyBuZWVkZWQuCisg
ICAgICAgIC8vIFN5bmMgc3RhdGVzIHdoZXJlIG5lZWRlZC4KICAgICAgICAgaWYgKHN0YXRlID09
IEdTVF9TVEFURV9QQVVTRUQpIHsKICAgICAgICAgICAgIGlmICghbV93ZWJraXRBdWRpb1Npbmsp
CiAgICAgICAgICAgICAgICAgdXBkYXRlQXVkaW9TaW5rKCk7CkBAIC0xMTM2LDM5ICsxMTMzLDIw
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAg
ICAgICAgICAgICAgIG1fdm9sdW1lQW5kTXV0ZUluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fYnVmZmVyaW5nICYmIG1fYnVmZmVyaW5nUGVyY2Vu
dGFnZSA9PSAxMDApIHsKLSAgICAgICAgICAgICAgICBtX2J1ZmZlcmluZyA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgIG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9IDA7Ci0gICAgICAgICAgICAgICAg
bV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwotCi0gICAgICAgICAg
ICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIENvbXBsZXRlLiIpOwotCi0gICAg
ICAgICAgICAgICAgaWYgKCFtX3BhdXNlZCkgewotICAgICAgICAgICAgICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVzdGFydGluZyBwbGF5YmFjay4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NU
QVRFX1BMQVlJTkcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
IW1fYnVmZmVyaW5nICYmIChjdXJyZW50VGltZSgpIDwgZHVyYXRpb24oKSkpIHsKLSAgICAgICAg
ICAgICAgICBtX3BhdXNlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGlkQnVmZmVyaW5nICYm
ICFtX2J1ZmZlcmluZyAmJiAhbV9wYXVzZWQpIHsKKyAgICAgICAgICAgICAgICBMT0dfTUVESUFf
TUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVzdGFydGluZyBwbGF5YmFjay4iKTsKKyAgICAgICAgICAg
ICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUExB
WUlORyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT0gR1NUX1NU
QVRFX1BMQVlJTkcpIHsKLSAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpI
YXZlRW5vdWdoRGF0YTsKICAgICAgICAgICAgIG1fcGF1c2VkID0gZmFsc2U7CiAKICAgICAgICAg
ICAgIGlmIChtX2J1ZmZlcmluZyAmJiAhaXNMaXZlU3RyZWFtKCkpIHsKLSAgICAgICAgICAgICAg
ICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUN1cnJlbnREYXRhOwotICAgICAgICAg
ICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7Ci0KICAgICAgICAg
ICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUGF1c2luZyBzdHJlYW0gZm9y
IGJ1ZmZlcmluZy4iKTsKLQogICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFURV9QQVVTRUQpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKIAotICAgICAgICAvLyBJcyBv
bi1kaXNrIGJ1ZmZlcmluZyBpbiBwcm9ncmVzcz8KLSAgICAgICAgaWYgKG1fZmlsbFRpbWVyLmlz
QWN0aXZlKCkpCi0gICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2Fk
aW5nOwotCiAgICAgICAgIGlmIChtX2NoYW5naW5nUmF0ZSkgewogICAgICAgICAgICAgbV9wbGF5
ZXItPnJhdGVDaGFuZ2VkKCk7CiAgICAgICAgICAgICBtX2NoYW5naW5nUmF0ZSA9IGZhbHNlOwpA
QCAtMTE4MCw2ICsxMTU4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVw
ZGF0ZVN0YXRlcygpCiAgICAgICAgIH0KIAogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiQXN5
bmM6IFN0YXRlOiAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShz
dGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKICAgICAgICAgLy8g
Q2hhbmdlIGluIHByb2dyZXNzCkBAIC0xMzM5LDcgKzEzMTgsNiBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgfQogICAgIG1fbWVkaWFM
b2NhdGlvbkN1cnJlbnRJbmRleC0tOwogICAgIHJldHVybiBmYWxzZTsKLQogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZFN0YXRlQ2hhbmdlZCgpCkBAIC0xMzcxLDYg
KzEzNDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkRW5kKCkKICAg
ICBpZiAoIW1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllcklzTG9vcGlu
ZygpKSB7CiAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0
X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX05VTEwpOworICAgICAgICBtX2Rvd25s
b2FkRmluaXNoZWQgPSBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTE1NDUsMTIgKzE1MjQsMTUgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldERvd25sb2FkQnVmZmVyaW5nKCkK
IAogICAgIEdzdFBsYXlGbGFncyBmbGFnczsKICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLmdl
dCgpLCAiZmxhZ3MiLCAmZmxhZ3MsIE5VTEwpOwotICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQ
bGF5ZXI6OkF1dG8pIHsKKyAgICBib29sIHNob3VsZERvd25sb2FkID0gIWlzTGl2ZVN0cmVhbSgp
OworICAgIGlmIChzaG91bGREb3dubG9hZCkgewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
RW5hYmxpbmcgb24tZGlzayBidWZmZXJpbmciKTsKICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGxh
eUJpbi5nZXQoKSwgImZsYWdzIiwgZmxhZ3MgfCBHU1RfUExBWV9GTEFHX0RPV05MT0FELCBOVUxM
KTsKKyAgICAgICAgbV9maWxsVGltZXIuc3RhcnRSZXBlYXRpbmcoMC4yKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiRGlzYWJsaW5nIG9uLWRpc2sgYnVmZmVyaW5n
Iik7CiAgICAgICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4uZ2V0KCksICJmbGFncyIsIGZsYWdz
ICYgfkdTVF9QTEFZX0ZMQUdfRE9XTkxPQUQsIE5VTEwpOworICAgICAgICBtX2ZpbGxUaW1lci5z
dG9wKCk7CiAgICAgfQogfQogCkBAIC0xNTYxLDggKzE1NDMsNiBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2Fk
KQogCiAgICAgbV9wcmVsb2FkID0gcHJlbG9hZDsKIAotICAgIHNldERvd25sb2FkQnVmZmVyaW5n
KCk7Ci0KICAgICBpZiAobV9kZWxheWluZ0xvYWQgJiYgbV9wcmVsb2FkICE9IE1lZGlhUGxheWVy
OjpOb25lKSB7CiAgICAgICAgIG1fZGVsYXlpbmdMb2FkID0gZmFsc2U7CiAgICAgICAgIGNvbW1p
dExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApp
bmRleCA5OWM2YjE4NjcwNTRjODE5MDhiOGZiOTNhZDdiMzgyYjMxNGZlZDkxLi43OGUzZTdjZTM1
ODI4NmFkZWU0ZGU2ZjE4N2Q2OGY1M2I2MGFkNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAg
ICBmbG9hdCBtX3BsYXliYWNrUmF0ZTsKICAgICBib29sIG1fZXJyb3JPY2N1cmVkOwogICAgIG11
dGFibGUgZ2Zsb2F0IG1fbWVkaWFEdXJhdGlvbjsKLSAgICBib29sIG1fc3RhcnRlZEJ1ZmZlcmlu
ZzsKKyAgICBib29sIG1fZG93bmxvYWRGaW5pc2hlZDsKICAgICBUaW1lcjxNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI+IG1fZmlsbFRpbWVyOwogICAgIGZsb2F0IG1fbWF4VGltZUxvYWRlZDsK
ICAgICBpbnQgbV9idWZmZXJpbmdQZXJjZW50YWdlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkNTg3NWYxOTM3MWYzMTIy
MWE4M2NhMzBhMjcyOTY4ZGIyYjA1ODAuLjA4YTZjNDk2OTNjZjAzMmM1YWQ3MWYyMWFmZDkzODI5
ZTU3ZmM1YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wNS0yNCAgQmFsYXpzIEtlbGVt
ZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dzdHJlYW1lcl0gY2xlYW51cCBi
dWZmZXJpbmcgYW5kIHN0YXRlIHVwZGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjY0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBmYWlsdXJlIGV4cGVjdGF0aW9ucyBmcm9tIHRlc3Rz
IHRoYXQgc3RhcnRlZCB0byBwYXNzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTMtMDUtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgTWFjIHRlc3QgZXhwZWN0YXRpb24gY29ycmVjdGlvbnMgYWZ0ZXIgcjE1MDU0
NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmZkMjY4
YWZlZTlhZDFiMjc1NGFiNjhkYzY3ODE5YmU1MGIzZjNlNC4uNTQyYmM5NWQ1ZjNjMzE0NzRhNzQ1
ZDA1M2I3MzdhNGVlNDkwYzAwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE4NjQsMTYgKzE4NjQsNyBAQCB3ZWJraXQub3JnL2IvMTE0NjEyIGVkaXRp
bmcvc3R5bGUvYmxvY2stc3R5bGUtMDA1Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8x
MTU5MTkgZmFzdC9jc3MvdmFyaWFibGVzL3Zhci1pbnNpZGUtc2hhcGUuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCiAjIFVuaWRlbnRpZmllZCBmYWlsaW5nIG1lZGlhIHRlc3RzCi13ZWJraXQu
b3JnL2IvMTE1NDE5IGh0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0dHAvdGVzdHMvbWVkaWEvcmVtb3ZlLXdo
aWxlLWxvYWRpbmcuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLWNhbmNlbC1sb2FkLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1hYm9ydC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC1zdXNw
ZW5kLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1sb2FkLXR3aWNlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkg
aHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXByb2dyZXNzLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZWRpcmVjdC5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vy
dmVkLWFzLXRleHQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLW1ldGFkYXRhLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8xMTU0MTkgbWVkaWEvbWVkaWEtY2FuLXBsYXktb2dnLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU0MTkgbWVkaWEvdHJhY2svdHJhY2stYXV0b21hdGljLXN1
YnRpdGxlcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTE1NDE5IG1lZGlhL3ZpZGVv
LXBvc3Rlci1iYWNrZ3JvdW5kLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202979</attachid>
            <date>2013-05-27 06:10:13 -0700</date>
            <delta_ts>2013-06-20 14:06:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116642-20130527150853.patch</filename>
            <type>text/plain</type>
            <size>17169</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTliNjNjYmQzYjRlMGI4
OWQ2MTE3NWZhOGU2MDM5ZmIyYjNmOWI4Ny4uOGMwYjRkOThkMDQ4ODNlMTU0YWUxMzU1NWQwNmIy
YzllNDA5YWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTA1LTI0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR3N0cmVhbWVyXSBj
bGVhbnVwIGJ1ZmZlcmluZyBhbmQgc3RhdGUgdXBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBtZWRpYSB0ZXN0
cywgZXNwZWNpYWxseSB0aGUgb25lcyB0aGF0IGhhdmUgYmVlbiB1bnNraXBwZWQuCisKKyAgICAg
ICAgQWx3YXlzIGRvIGRvd25sb2FkIGJ1ZmZlcmluZy4gSXQgc2hvdWxkIG5vdCBkaWZmZXIgaWYg
cHJlbG9hZCBpcyAibm9uZSIgYmVjYXVzZQorICAgICAgICBpdCdzIGFib3V0IHdoZW4gdG8gc3Rh
cnQgYnVmZmVyaW5nLCBub3QgYWJvdXQgaG93LiBGaXggYSBidW5jaCBvdGhlciBzdWJ0bGUgaXNz
dWVzCisgICAgICAgIHRvIG1ha2UgdGhpcyBjaGFuZ2UgZ28gc21vb3RobHkgd2l0aCB0aGUgdGVz
dHMuIEFzIGEgYm9udXMgc29tZSB0ZXN0cyB0aGF0IHdlcmUKKyAgICAgICAgZmFpbGluZyBzbyBm
YXIgc3RhcnRlZCB0byBwYXNzLgorICAgICAgICBJdCBpcyBwb3NzaWJsZSB0byBmdXJ0aGVyIHR3
ZWFrIHRoZSBidWZmZXJpbmcgaW4gYSB3YXkgdGhhdCB3aWxsIGVuYWJsZSB1cyB0byBzdXBwb3J0
CisgICAgICAgIGEgZGlmZmVyZW50IGFuZCBhcHByb3ByaWF0ZSBiZWhhdmlvciBmb3IgcHJlbG9h
ZD0ibWV0YWRhdGEiIGJ1dCBpdCBzaG91bGQgYmUgbWFuYWdlZAorICAgICAgICBhIGJpdCBkaWZm
ZXJlbnRseS4gSSB3aWxsIGltcGxlbWVudCBpdCBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2FkKTogRG9uJ3QgY2FsbCBzZXREb3dubG9hZEJ1ZmZlcmluZwor
ICAgICAgICB5ZXQuIE5vdyBpdCBhbHNvIHJlc3BvbnNpYmxlIGZvciBzdGFydGluZyB0aGUgZmls
bCB0aW1lciBhbmQgaXQgdHVybmVkIG91dCB0aGF0CisgICAgICAgIHNldHRpbmcgdGhlIGRvd25s
b2FkIGZsYWcgYmVmb3JlIHRoZSBwaXBlbGluZSBpcyBzZXQgdG8gYSBzdGF0ZSBoYXMgbmVnYXRp
dmUKKyAgICAgICAgZWZmZWN0IG9uIHNvbWUgdGVzdHMuIE1vc3QgcHJvYmFibHkgR1N0cmVhbWVy
IHN0YXJ0cyBidWZmZXJpbmcgdG9vIGVhcmx5IGlmCisgICAgICAgIHdlIHNldCB0aGUgZG93bmxv
YWQgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y29tbWl0TG9hZCk6IENhbGwgc2V0RG93bmxvYWRCdWZmZXJpbmcgbm93LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5KTogRGl0dG8sIHBsdXMgc2V0
IG1fZGVsYXlpbmdMb2FkIHRvIGZhbHNlCisgICAgICAgIGJlY2F1c2Ugb3RoZXJ3aXNlIHNldFBy
ZWxvYWQgd2lsbCB3cm9uZ2x5IGFzc3VtZSB0aGF0IHRoZSBsb2FkIGhhcyBub3QgYmVlbiBjb21t
aXR0ZWQKKyAgICAgICAgeWV0IGlmIHByZXBhcmVUb1BsYXkgaXMgbm90IGNhbGxlZCBiZWZvcmUg
cGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGF1
c2UpOiBNYWtlIHN1cmUgd2UgZG9uJ3QgY29tbWl0IGEgbG9hZCBoZXJlCisgICAgICAgIGlmIGl0
IHdhcyBub3QgY29tbWl0dGVkIHlldCBieSBsb29raW5nIGluIHRoZSBwaXBlbGluZSBzdGF0ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1
ZmZlcmluZ1N0YXRzKTogTm8gbmVlZCB0byBvYnNlcnZlIHRoZQorICAgICAgICB0eXBlIG9mIGJ1
ZmZlcmluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZmlsbFRpbWVyRmlyZWQpOiBJbnRyb2R1Y2VkIG1fZG93bmxvYWRGaW5pc2hlZCB0byB1cGRhdGUK
KyAgICAgICAgcmVhZHkgYW5kIG5ldHdvcmsgc3RhdGVzIGluIHVwZGF0ZVN0YXRlcyBiYXNlZCBv
biBpdC4gVGhlIHByZXZpb3VzbHkgdXNlZCBjb25kaXRpb24KKyAgICAgICAgLSAobWF4VGltZUxv
YWRlZCgpID09IGR1cmF0aW9uKCkpIC0gd2FzIG5vdCBjb3JyZWN0IGluIHRoZSBjYXNlIHdoZW4g
ZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKTogUmVtb3ZlZCBhIGxpZS4gSWYgdGhlIGZpbGwg
dGltZXIgaXMgbm90IGFjdGl2ZQorICAgICAgICBpdCBkb2VzIG5vdCBuZWNlc2FyaWx5IG1lYW5z
IHRoYXQgZG93bmxvYWQgaGFzIGJlZW4gZmluaXNoZWQuIFRoaXMgbGllIHdhcyBhY3R1YWxseSBl
bnN1cmluZworICAgICAgICBhIGxvdCBvZiB0ZXN0cyB0byBwYXNzIGJlY2F1c2UgaXQgbWFkZSB0
aGUgY29uZGl0aW9uIChtYXhUaW1lTG9hZGVkKCkgPT0gZHVyYXRpb24oKSkgdHJ1ZS4KKyAgICAg
ICAgTm93IHRoYXQgc3RhdGUgdXBkYXRlcyBoYXMgYmVlbiBjbGVhbmVkIHVwIHdlIGRvbid0IG5l
ZWQgdG8gbGllLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVTdGF0ZXMpOiBNZXJnZSBhbGwgdGhlIHBhcnRzIHRoYXQgdGFrZXMgcGFydCBpbiB1
cGRhdGluZworICAgICAgICByZWFkeSBhbmQgbmV0d29yayBzdGF0ZXMuIEl0IHdhcyB1bnRyYWNr
YWJsZS4gVGhyZXJlIGlzIGJlaGF2aW9yYWwgY2hhbmdlIGFzIHdlbGwuIEkgcmVtb3ZlZCB0aGUK
KyAgICAgICAgfGN1cnJlbnRUaW1lKCkgPCBtYXhUaW1lTG9hZGVkKCl8IGNvbmRpdGlvbiBhbmQg
anVzdCBhbHdheXMgcmV0dXJuIEhhdmVGdXR1cmVEYXRhIGFmdGVyIHRoZSBidWZmZXJpbmcKKyAg
ICAgICAgcGhhc2UuIEZpcnN0LCBjdXJyZW50VGltZSgpIGlzIHplcm8gaWYgdGhlIHBvc2l0aW9u
IHF1ZXJ5IGZhaWxzLiBTZWNvbmQsIGl0IGRvZXMgbm90IHNlZW0gdG8gYmUgZ29vZAorICAgICAg
ICB0byBnbyBiYWNrIHRvIEhhdmVDdXJyZW50RGF0YSBpZiBidWZmZXJpbmcgaXMgbm90IG5lZWRl
ZCAoSGF2ZUN1cnJlbnREYXRhIG1lYW5zIHdlIG9ubHkgaGF2ZSB0aGUgYWN0dWFsCisgICAgICAg
IGZyYW1lIGJ1dCBubyBtb3JlKS4gVGhhdCBjaGFuZ2UgZGlkIG5vdCBtYWtlIGFueSBpbXBhY3Qg
b24gdGhlIHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6IFJlbW92ZWQgbV9zdGFydGVkQnVmZmVyaW5nIGJlY2F1c2UgdGhlcmUgaXMgbm8g
bmVlZCBmb3IgaXQgbm93LgorCiAyMDEzLTA1LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhc3NlcnRpb24gaW4gdGhlIGdldENvbXB1dGVk
U3R5bGUtYmFja2dyb3VuZC1zaG9ydGhhbmQuaHRtbCB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDAyOTA2MzAwNTUwNmUyODEyZmQ5
N2NmODUyMzVkOTJlNWM0YjY1NDQuLjQzNmM5NzgwODZmYmFjZDU4OWFiY2YyYzVlYTZhNDJhNzUx
YzNkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fcGxh
eWJhY2tSYXRlKDEpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkKICAgICAsIG1fbWVkaWFE
dXJhdGlvbigwKQotICAgICwgbV9zdGFydGVkQnVmZmVyaW5nKGZhbHNlKQorICAgICwgbV9kb3du
bG9hZEZpbmlzaGVkKGZhbHNlKQogICAgICwgbV9maWxsVGltZXIodGhpcywgJk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQpCiAgICAgLCBtX21heFRpbWVMb2FkZWQo
MCkKICAgICAsIG1fYnVmZmVyaW5nUGVyY2VudGFnZSgwKQpAQCAtMjg4LDEwICsyODgsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkK
ICAgICBpZiAoa3VybC5pc0xvY2FsRmlsZSgpKQogICAgICAgICBjbGVhblVybCA9IGNsZWFuVXJs
LnN1YnN0cmluZygwLCBrdXJsLnBhdGhFbmQoKSk7CiAKLSAgICBpZiAoIW1fcGxheUJpbikgewor
ICAgIGlmICghbV9wbGF5QmluKQogICAgICAgICBjcmVhdGVHU1RQbGF5QmluKCk7Ci0gICAgICAg
IHNldERvd25sb2FkQnVmZmVyaW5nKCk7Ci0gICAgfQogCiAgICAgQVNTRVJUKG1fcGxheUJpbik7
CiAKQEAgLTMzMyw2ICszMzEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y29tbWl0TG9hZCgpCiAgICAgLy8gc3RhcnQgcHJvdmlkaW5nIGFueXRoaW5nIHVzZWZ1bC4KICAg
ICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUEFVU0VE
KTsKIAorICAgIHNldERvd25sb2FkQnVmZmVyaW5nKCk7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9
CiAKQEAgLTQwNywxMyArNDA2LDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwbGF5KCkKIHsKICAgICBpZiAoY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUExBWUlO
RykpIHsKICAgICAgICAgbV9pc0VuZFJlYWNoZWQgPSBmYWxzZTsKKyAgICAgICAgbV9kZWxheWlu
Z0xvYWQgPSBmYWxzZTsKKyAgICAgICAgc2V0RG93bmxvYWRCdWZmZXJpbmcoKTsKICAgICAgICAg
TE9HX01FRElBX01FU1NBR0UoIlBsYXkiKTsKICAgICB9CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpwYXVzZSgpCiB7Ci0gICAgaWYgKG1faXNFbmRSZWFjaGVkKQorICAg
IEdzdFN0YXRlIGN1cnJlbnRTdGF0ZSwgcGVuZGluZ1N0YXRlOworICAgIGdzdF9lbGVtZW50X2dl
dF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZjdXJyZW50U3RhdGUsICZwZW5kaW5nU3RhdGUsIDAp
OworICAgIGlmIChjdXJyZW50U3RhdGUgPCBHU1RfU1RBVEVfUEFVU0VEICYmIHBlbmRpbmdTdGF0
ZSA8PSBHU1RfU1RBVEVfUEFVU0VEKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY2hhbmdl
UGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFVU0VEKSkKQEAgLTgyNywzOCArODMwLDEzIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1
bHQoR3N0SW5zdGFsbFBsdWdpbnNSCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojpwcm9jZXNzQnVmZmVyaW5nU3RhdHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKIHsKLSAgICAvLyBU
aGlzIGlzIHRoZSBpbW1lZGlhdGUgYnVmZmVyaW5nIHRoYXQgbmVlZHMgdG8gaGFwcGVuIHNvIHdl
IGhhdmUKLSAgICAvLyBlbm91Z2ggdG8gcGxheSByaWdodCBub3cuCiAgICAgbV9idWZmZXJpbmcg
PSB0cnVlOwogICAgIGNvbnN0IEdzdFN0cnVjdHVyZSAqc3RydWN0dXJlID0gZ3N0X21lc3NhZ2Vf
Z2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKICAgICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3RydWN0
dXJlLCAiYnVmZmVyLXBlcmNlbnQiLCAmbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAogICAgIExP
R19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJp
bmdQZXJjZW50YWdlKTsKIAotICAgIEdzdEJ1ZmZlcmluZ01vZGUgbW9kZTsKLSAgICBnc3RfbWVz
c2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMobWVzc2FnZSwgJm1vZGUsIDAsIDAsIDApOwotICAg
IGlmIChtb2RlICE9IEdTVF9CVUZGRVJJTkdfRE9XTkxPQUQpIHsKLSAgICAgICAgdXBkYXRlU3Rh
dGVzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGlzIG9uLWRpc2sg
YnVmZmVyaW5nLCB0aGF0IGFsbG93cyB1cyB0byBkb3dubG9hZCBtdWNoIG1vcmUKLSAgICAvLyB0
aGFuIG5lZWRlZCBmb3IgcmlnaHQgbm93LgotICAgIGlmICghbV9zdGFydGVkQnVmZmVyaW5nKSB7
Ci0gICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNr
IGJ1ZmZlcmluZy4iKTsKLQotICAgICAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSB0cnVlOwotCi0g
ICAgICAgIGlmIChtX2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9maWxsVGlt
ZXIuc3RvcCgpOwotCi0gICAgICAgIG1fZmlsbFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuMik7Ci0g
ICAgfQotCi0gICAgaWYgKCFtX3BhdXNlZCAmJiBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgPCAxMDAp
IHsKLSAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIERvd25sb2FkIGluIHBy
b2dyZXNzLCBwYXVzaW5nIHBpcGVsaW5lLiIpOwotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUEFVU0VEKTsKLSAgICB9CisgICAgdXBkYXRl
U3RhdGVzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpmaWxsVGlt
ZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KikKQEAgLTg5NCw3ICs4
NzIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQo
VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbQogICAgICAgICBMT0dfTUVESUFfTUVTU0FH
RSgiW0J1ZmZlcmluZ10gVXBkYXRlZCBtYXhUaW1lTG9hZGVkOiAlZiIsIG1fbWF4VGltZUxvYWRl
ZCk7CiAgICAgfQogCi0gICAgaWYgKGZpbGxTdGF0dXMgIT0gMTAwLjApIHsKKyAgICBtX2Rvd25s
b2FkRmluaXNoZWQgPSBmaWxsU3RhdHVzID09IDEwMC4wOworICAgIGlmICghbV9kb3dubG9hZEZp
bmlzaGVkKSB7CiAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtOTAzLDcgKzg4Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpm
aWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAgICAgLy8gY29u
bmVjdGlvbiBpcyBjdXQuIEJ1ZmZlcmluZyBpcyBkb25lLCByZW1vdmUgdGhlIGZpbGwgc291cmNl
CiAgICAgLy8gZnJvbSB0aGUgbWFpbiBsb29wLgogICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLSAg
ICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSBmYWxzZTsKICAgICB1cGRhdGVTdGF0ZXMoKTsKIH0KIApA
QCAtOTI2LDggKzkwNCw4IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4
VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwLjBmOwogCiAgICAgZmxvYXQgbG9h
ZGVkID0gbV9tYXhUaW1lTG9hZGVkOwotICAgIGlmICghbG9hZGVkICYmICFtX2ZpbGxUaW1lci5p
c0FjdGl2ZSgpKQotICAgICAgICBsb2FkZWQgPSBkdXJhdGlvbigpOworICAgIGlmIChtX2lzRW5k
UmVhY2hlZCAmJiBtX21lZGlhRHVyYXRpb24pCisgICAgICAgIGxvYWRlZCA9IG1fbWVkaWFEdXJh
dGlvbjsKICAgICBMT0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDogJWYiLCBsb2FkZWQp
OwogICAgIHJldHVybiBsb2FkZWQ7CiB9CkBAIC0xMDk3LDcgKzEwNzUsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKIAogICAgIGJvb2wgc2hvdWxk
VXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNlOwogICAgIHN3aXRjaCAoZ2V0U3RhdGVSZXN1bHQp
IHsKLSAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzoKKyAgICBjYXNlIEdTVF9TVEFU
RV9DSEFOR0VfU1VDQ0VTUzogewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU3RhdGU6ICVz
LCBwZW5kaW5nOiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwgZ3N0X2Vs
ZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOwogCiAgICAgICAgIGlmIChzdGF0ZSA8PSBH
U1RfU1RBVEVfUkVBRFkpIHsKQEAgLTExMDYsMjYgKzEwODQsNDUgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgY2FjaGVEdXJhdGlvbigpOwogCi0gICAgICAgIC8vIFRyeSB0byBmaWd1cmUgb3V0IHJl
YWR5IGFuZCBuZXR3b3JrIHN0YXRlcy4KLSAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9S
RUFEWSkgeworICAgICAgICBib29sIGRpZEJ1ZmZlcmluZyA9IG1fYnVmZmVyaW5nOworCisgICAg
ICAgIC8vIFVwZGF0ZSByZWFkeSBhbmQgbmV0d29yayBzdGF0ZXMuCisgICAgICAgIHN3aXRjaCAo
c3RhdGUpIHsKKyAgICAgICAgY2FzZSBHU1RfU1RBVEVfTlVMTDoKKyAgICAgICAgICAgIG1fcmVh
ZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsKKyAgICAgICAgICAgIG1fbmV0d29y
a1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgR1NUX1NUQVRFX1JFQURZOgogICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQ
bGF5ZXI6OkhhdmVNZXRhZGF0YTsKICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQ
bGF5ZXI6OkVtcHR5OwotICAgICAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RBVEVfTlVM
TCkgfHwgKG1heFRpbWVMb2FkZWQoKSA9PSBkdXJhdGlvbigpKSkgewotICAgICAgICAgICAgbV9u
ZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGVkOwotICAgICAgICAgICAgbV9yZWFkeVN0
YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gY3VycmVudFRpbWUoKSA8IG1heFRpbWVMb2FkZWQoKSA/
IE1lZGlhUGxheWVyOjpIYXZlRnV0dXJlRGF0YSA6IE1lZGlhUGxheWVyOjpIYXZlQ3VycmVudERh
dGE7Ci0gICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwot
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHU1RfU1RBVEVfUEFV
U0VEOgorICAgICAgICBjYXNlIEdTVF9TVEFURV9QTEFZSU5HOgorICAgICAgICAgICAgaWYgKG1f
YnVmZmVyaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9
PSAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJp
bmddIENvbXBsZXRlLiIpOworICAgICAgICAgICAgICAgICAgICBtX2J1ZmZlcmluZyA9IGZhbHNl
OworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUVu
b3VnaERhdGE7CisgICAgICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gbV9kb3dubG9h
ZEZpbmlzaGVkID8gTWVkaWFQbGF5ZXI6OklkbGUgOiBNZWRpYVBsYXllcjo6TG9hZGluZzsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5U3RhdGUg
PSBNZWRpYVBsYXllcjo6SGF2ZUN1cnJlbnREYXRhOworICAgICAgICAgICAgICAgICAgICBtX25l
dHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAobV9kb3dubG9hZEZpbmlzaGVkKSB7CisgICAgICAgICAgICAg
ICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOworICAgICAgICAg
ICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRlZDsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6Okhh
dmVGdXR1cmVEYXRhOworICAgICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5
ZXI6OkxvYWRpbmc7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fYnVmZmVyaW5nICYm
IHN0YXRlICE9IEdTVF9TVEFURV9SRUFEWSkgewotICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0g
TWVkaWFQbGF5ZXI6OkhhdmVDdXJyZW50RGF0YTsKLSAgICAgICAgICAgIG1fbmV0d29ya1N0YXRl
ID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBOb3cgbGV0J3MgdHJ5IHRvIGdldCB0aGUgc3Rh
dGVzIGluIG1vcmUgZGV0YWlsIHVzaW5nCi0gICAgICAgIC8vIGluZm9ybWF0aW9uIGZyb20gR1N0
cmVhbWVyLCB3aGlsZSB3ZSBzeW5jIHN0YXRlcyB3aGVyZQotICAgICAgICAvLyBuZWVkZWQuCisg
ICAgICAgIC8vIFN5bmMgc3RhdGVzIHdoZXJlIG5lZWRlZC4KICAgICAgICAgaWYgKHN0YXRlID09
IEdTVF9TVEFURV9QQVVTRUQpIHsKICAgICAgICAgICAgIGlmICghbV93ZWJraXRBdWRpb1Npbmsp
CiAgICAgICAgICAgICAgICAgdXBkYXRlQXVkaW9TaW5rKCk7CkBAIC0xMTM2LDM5ICsxMTMzLDIw
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAg
ICAgICAgICAgICAgIG1fdm9sdW1lQW5kTXV0ZUluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fYnVmZmVyaW5nICYmIG1fYnVmZmVyaW5nUGVyY2Vu
dGFnZSA9PSAxMDApIHsKLSAgICAgICAgICAgICAgICBtX2J1ZmZlcmluZyA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgIG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9IDA7Ci0gICAgICAgICAgICAgICAg
bV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwotCi0gICAgICAgICAg
ICAgICAgTE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIENvbXBsZXRlLiIpOwotCi0gICAg
ICAgICAgICAgICAgaWYgKCFtX3BhdXNlZCkgewotICAgICAgICAgICAgICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVzdGFydGluZyBwbGF5YmFjay4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NU
QVRFX1BMQVlJTkcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
IW1fYnVmZmVyaW5nICYmIChjdXJyZW50VGltZSgpIDwgZHVyYXRpb24oKSkpIHsKLSAgICAgICAg
ICAgICAgICBtX3BhdXNlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGlkQnVmZmVyaW5nICYm
ICFtX2J1ZmZlcmluZyAmJiAhbV9wYXVzZWQpIHsKKyAgICAgICAgICAgICAgICBMT0dfTUVESUFf
TUVTU0FHRSgiW0J1ZmZlcmluZ10gUmVzdGFydGluZyBwbGF5YmFjay4iKTsKKyAgICAgICAgICAg
ICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBHU1RfU1RBVEVfUExB
WUlORyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT0gR1NUX1NU
QVRFX1BMQVlJTkcpIHsKLSAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpI
YXZlRW5vdWdoRGF0YTsKICAgICAgICAgICAgIG1fcGF1c2VkID0gZmFsc2U7CiAKICAgICAgICAg
ICAgIGlmIChtX2J1ZmZlcmluZyAmJiAhaXNMaXZlU3RyZWFtKCkpIHsKLSAgICAgICAgICAgICAg
ICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZUN1cnJlbnREYXRhOwotICAgICAgICAg
ICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7Ci0KICAgICAgICAg
ICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gUGF1c2luZyBzdHJlYW0gZm9y
IGJ1ZmZlcmluZy4iKTsKLQogICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BsYXlCaW4uZ2V0KCksIEdTVF9TVEFURV9QQVVTRUQpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKIAotICAgICAgICAvLyBJcyBv
bi1kaXNrIGJ1ZmZlcmluZyBpbiBwcm9ncmVzcz8KLSAgICAgICAgaWYgKG1fZmlsbFRpbWVyLmlz
QWN0aXZlKCkpCi0gICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2Fk
aW5nOwotCiAgICAgICAgIGlmIChtX2NoYW5naW5nUmF0ZSkgewogICAgICAgICAgICAgbV9wbGF5
ZXItPnJhdGVDaGFuZ2VkKCk7CiAgICAgICAgICAgICBtX2NoYW5naW5nUmF0ZSA9IGZhbHNlOwpA
QCAtMTE4MCw2ICsxMTU4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVw
ZGF0ZVN0YXRlcygpCiAgICAgICAgIH0KIAogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiQXN5
bmM6IFN0YXRlOiAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShz
dGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKICAgICAgICAgLy8g
Q2hhbmdlIGluIHByb2dyZXNzCkBAIC0xMzM5LDcgKzEzMTgsNiBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgfQogICAgIG1fbWVkaWFM
b2NhdGlvbkN1cnJlbnRJbmRleC0tOwogICAgIHJldHVybiBmYWxzZTsKLQogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZFN0YXRlQ2hhbmdlZCgpCkBAIC0xMzcxLDYg
KzEzNDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkRW5kKCkKICAg
ICBpZiAoIW1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllcklzTG9vcGlu
ZygpKSB7CiAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0
X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgR1NUX1NUQVRFX05VTEwpOworICAgICAgICBtX2Rvd25s
b2FkRmluaXNoZWQgPSBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTE1NDUsMTIgKzE1MjQsMTQgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldERvd25sb2FkQnVmZmVyaW5nKCkK
IAogICAgIEdzdFBsYXlGbGFncyBmbGFnczsKICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLmdl
dCgpLCAiZmxhZ3MiLCAmZmxhZ3MsIE5VTEwpOwotICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQ
bGF5ZXI6OkF1dG8pIHsKKyAgICBpZiAoIWlzTGl2ZVN0cmVhbSgpKSB7CiAgICAgICAgIExPR19N
RURJQV9NRVNTQUdFKCJFbmFibGluZyBvbi1kaXNrIGJ1ZmZlcmluZyIpOwogICAgICAgICBnX29i
amVjdF9zZXQobV9wbGF5QmluLmdldCgpLCAiZmxhZ3MiLCBmbGFncyB8IEdTVF9QTEFZX0ZMQUdf
RE9XTkxPQUQsIE5VTEwpOworICAgICAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGluZygwLjIp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJEaXNhYmxpbmcgb24t
ZGlzayBidWZmZXJpbmciKTsKICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbi5nZXQoKSwg
ImZsYWdzIiwgZmxhZ3MgJiB+R1NUX1BMQVlfRkxBR19ET1dOTE9BRCwgTlVMTCk7CisgICAgICAg
IG1fZmlsbFRpbWVyLnN0b3AoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA5OWM2YjE4NjcwNTRjODE5MDhiOGZiOTNhZDdi
MzgyYjMxNGZlZDkxLi43OGUzZTdjZTM1ODI4NmFkZWU0ZGU2ZjE4N2Q2OGY1M2I2MGFkNDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xNDgs
NyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3BsYXliYWNrUmF0ZTsKICAgICBib29s
IG1fZXJyb3JPY2N1cmVkOwogICAgIG11dGFibGUgZ2Zsb2F0IG1fbWVkaWFEdXJhdGlvbjsKLSAg
ICBib29sIG1fc3RhcnRlZEJ1ZmZlcmluZzsKKyAgICBib29sIG1fZG93bmxvYWRGaW5pc2hlZDsK
ICAgICBUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IG1fZmlsbFRpbWVyOwogICAg
IGZsb2F0IG1fbWF4VGltZUxvYWRlZDsKICAgICBpbnQgbV9idWZmZXJpbmdQZXJjZW50YWdlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDhkNTg3NWYxOTM3MWYzMTIyMWE4M2NhMzBhMjcyOTY4ZGIyYjA1ODAuLjA4YTZjNDk2
OTNjZjAzMmM1YWQ3MWYyMWFmZDkzODI5ZTU3ZmM1YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMy0wNS0yNCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0dzdHJlYW1lcl0gY2xlYW51cCBidWZmZXJpbmcgYW5kIHN0YXRlIHVwZGF0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjY0MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBmYWlsdXJl
IGV4cGVjdGF0aW9ucyBmcm9tIHRlc3RzIHRoYXQgc3RhcnRlZCB0byBwYXNzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDUtMjIgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFjIHRlc3QgZXhwZWN0YXRpb24g
Y29ycmVjdGlvbnMgYWZ0ZXIgcjE1MDU0NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYmZkMjY4YWZlZTlhZDFiMjc1NGFiNjhkYzY3ODE5YmU1MGIzZjNl
NC4uNTQyYmM5NWQ1ZjNjMzE0NzRhNzQ1ZDA1M2I3MzdhNGVlNDkwYzAwMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NjQsMTYgKzE4NjQsNyBAQCB3
ZWJraXQub3JnL2IvMTE0NjEyIGVkaXRpbmcvc3R5bGUvYmxvY2stc3R5bGUtMDA1Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU5MTkgZmFzdC9jc3MvdmFyaWFibGVzL3Zhci1pbnNp
ZGUtc2hhcGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiAjIFVuaWRlbnRpZmllZCBmYWls
aW5nIG1lZGlhIHRlc3RzCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0dHAvdGVzdHMvbWVkaWEvcmVs
b2FkLWFmdGVyLWRpYWxvZy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0
dHAvdGVzdHMvbWVkaWEvcmVtb3ZlLXdoaWxlLWxvYWRpbmcuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbmNlbC1sb2FkLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1l
cnJvci1hYm9ydC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tbG9hZC1zdXNwZW5kLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLXR3aWNlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXByb2dy
ZXNzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU0MTkgaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1yZWRpcmVjdC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTE1NDE5IGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2VydmVkLWFzLXRleHQuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzExNTQxOSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXRocm90dGxlZC1sb2FkLW1l
dGFkYXRhLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU0MTkgbWVkaWEvbWVkaWEt
Y2FuLXBsYXktb2dnLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTU0MTkgbWVkaWEv
dHJhY2svdHJhY2stYXV0b21hdGljLXN1YnRpdGxlcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTE1NDE5IG1lZGlhL3ZpZGVvLXBvc3Rlci1iYWNrZ3JvdW5kLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>