<?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>140116</bug_id>
          
          <creation_ts>2015-01-06 02:09:55 -0800</creation_ts>
          <short_desc>[GStreamer][MSE] ASSERT in MediaSourceGStreamer::addSourceBuffer</short_desc>
          <delta_ts>2015-12-09 00:14:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
    
    <cc>slomo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058940</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 02:09:55 -0800</bug_when>
    <thetext>ASSERTION FAILED: !m_adoptionIsRequired
0x00007fffed2980a8 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
321         *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) bt
#0  0x00007fffed2980a8 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
#1  0x00007ffff272740e in WTF::RefCountedBase::ref (this=0x7fff52867e78) at ../../Source/WTF/wtf/RefCounted.h:45
#2  0x00007ffff3eeabdb in WTF::refIfNotNull&lt;WebCore::SourceBufferPrivateGStreamer&gt; (ptr=0x7fff52867e70) at ../../Source/WTF/wtf/PassRefPtr.h:36
#3  0x00007ffff3eea93f in WTF::RefPtr&lt;WebCore::SourceBufferPrivateGStreamer&gt;::RefPtr (this=0x7fffffffc1e0, ptr=0x7fff52867e70) at ../../Source/WTF/wtf/RefPtr.h:43
#4  0x00007ffff3eea235 in WebCore::MediaSourceGStreamer::addSourceBuffer (this=0x7fff5283cc80, contentType=..., sourceBufferPrivate=...)
    at ../../Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:66
#5  0x00007ffff2c206d8 in WebCore::MediaSource::createSourceBufferPrivate (this=0x7fff527c4c60, type=..., ec=@0x7fffffffc39c: 0) at ../../Source/WebCore/Modules/mediasource/MediaSource.cpp:850
#6  0x00007ffff2c1f534 in WebCore::MediaSource::addSourceBuffer (this=0x7fff527c4c60, type=&quot;audio/mp4; codecs=\&quot;mp4a.40.2\&quot;&quot;, ec=@0x7fffffffc39c: 0)
    at ../../Source/WebCore/Modules/mediasource/MediaSource.cpp:541
#7  0x00007ffff3fd07e7 in WebCore::jsMediaSourcePrototypeFunctionAddSourceBuffer (exec=0x7fffffffc420) at DerivedSources/WebCore/JSMediaSource.cpp:304
#8  0x00007fff9b2e80b4 in ?? ()
#9  0x00007fffffffc490 in ?? ()
#10 0x00007fffed2403a7 in llint_entry () from /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18
Backtrace stopped: frame did not save the PC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058941</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 02:11:15 -0800</bug_when>
    <thetext>Sebastian fixed in his patch for Bug 140078, I&apos;ll upload the fix based on his patch here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058953</commentid>
    <comment_count>2</comment_count>
      <attachid>244045</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 02:55:51 -0800</bug_when>
    <thetext>Created attachment 244045
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058954</commentid>
    <comment_count>3</comment_count>
      <attachid>244046</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 02:58:26 -0800</bug_when>
    <thetext>Created attachment 244046
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058977</commentid>
    <comment_count>4</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2015-01-06 03:54:30 -0800</bug_when>
    <thetext>Seems good to me obviously ;) Thanks for extracting that part from my huge patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058991</commentid>
    <comment_count>5</comment_count>
      <attachid>244054</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 05:36:45 -0800</bug_when>
    <thetext>Created attachment 244054
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058992</commentid>
    <comment_count>6</comment_count>
      <attachid>244054</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 05:40:18 -0800</bug_when>
    <thetext>Comment on attachment 244054
patch

oops this is incomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058996</commentid>
    <comment_count>7</comment_count>
      <attachid>244057</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 06:43:57 -0800</bug_when>
    <thetext>Created attachment 244057
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058998</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-06 06:46:54 -0800</bug_when>
    <thetext>Attachment 244057 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:40:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059000</commentid>
    <comment_count>9</comment_count>
      <attachid>244058</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-06 06:54:55 -0800</bug_when>
    <thetext>Created attachment 244058
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059769</commentid>
    <comment_count>10</comment_count>
      <attachid>244058</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 02:41:43 -0800</bug_when>
    <thetext>Comment on attachment 244058
patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:65
&gt; +    for (auto it = m_sourceBuffers.begin(), end = m_sourceBuffers.end(); it != end; ++it)
&gt; +        (*it)-&gt;clearMediaSource();

This could be 

for (auto&amp; sourceBuffer : m_sourceBuffers)
    sourceBuffer.clearMediaSource();

&gt; Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:79
&gt; +    return m_client-&gt;addSourceBuffer(m_sourceBuffers.last(), contentType);

You could use sourceBufferPrivate.get() here instead of calling last() again.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:87
&gt; +    size_t index = m_sourceBuffers.find(buffer);
&gt; +    m_sourceBuffers.remove(index);

Shouldn&apos;t you also call clearMediaSource() here? Since it&apos;s removed from the vector here, it won&apos;t be called for this source bufer in the destructor. Since the order doesn&apos;t really matter, and we are always adding a new SourceBufferPrivateGStreamer, I wonder whether we could use a HashSet instead, and here you would just take the buffer can call clearMediaSource (if it&apos;s actually needed)

&gt; Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.h:50
&gt; +    MediaSourceClientGStreamer* client() const { return m_client.get(); }

Since m_client can&apos;t be null, you could return a reference instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059772</commentid>
    <comment_count>11</comment_count>
      <attachid>244058</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-01-08 03:17:35 -0800</bug_when>
    <thetext>Comment on attachment 244058
patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:68
&gt; +    SourceBufferPrivateClient::AppendResult result = m_mediaSource-&gt;client()-&gt;append(this, data, length);

Not in the scope of this bug, but MediaSourceClientGStreamer::append() doesn&apos;t have to operate on a PassRefPtr&lt;SourceBufferPrivate&gt; -- a simple reference to the SourceBufferPrivate object would do.

&gt; Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:85
&gt; +    m_mediaSource-&gt;client()-&gt;removedFromMediaSource(this);

Same here, MediaSourceClientGStreamer::removedFromMediaSource() could operate with a reference to the SourceBufferPrivate object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059775</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-08 03:30:45 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 244058 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244058&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:68
&gt; &gt; +    SourceBufferPrivateClient::AppendResult result = m_mediaSource-&gt;client()-&gt;append(this, data, length);
&gt; 
&gt; Not in the scope of this bug, but MediaSourceClientGStreamer::append()
&gt; doesn&apos;t have to operate on a PassRefPtr&lt;SourceBufferPrivate&gt; -- a simple
&gt; reference to the SourceBufferPrivate object would do.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:85
&gt; &gt; +    m_mediaSource-&gt;client()-&gt;removedFromMediaSource(this);
&gt; 
&gt; Same here, MediaSourceClientGStreamer::removedFromMediaSource() could
&gt; operate with a reference to the SourceBufferPrivate object.

Right, I think I&apos;ll fix this in a separate patch. Thanks for pointing it out!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059827</commentid>
    <comment_count>13</comment_count>
      <attachid>244262</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-01-08 08:45:43 -0800</bug_when>
    <thetext>Created attachment 244262
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060110</commentid>
    <comment_count>14</comment_count>
      <attachid>244262</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-09 02:47:05 -0800</bug_when>
    <thetext>Comment on attachment 244262
patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp:79
&gt; +    RefPtr&lt;SourceBufferPrivateGStreamer&gt; buffer = SourceBufferPrivateGStreamer::create(this);
&gt; +    m_sourceBuffers.add(buffer.get());
&gt; +    sourceBufferPrivate = buffer;

I&apos;m confused about the ownership now. In the previous patch you kept a reference in the Vector, why are you using raw pointers now? Is removeSourceBuffer always called before the SourceBufferPrivate object is deleted?

&gt; Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:86
&gt; +    m_mediaSource-&gt;removeSourceBuffer(this);
&gt; +    m_mediaSource-&gt;client().removedFromMediaSource(this);

hmm, now that I see this. It looks a bit weird to me that MediaSourceGStreamer::addSourceBuffer() calls MediaSourceClientGStreamer::addSourceBuffer() but removedFromMediaSource is called here instead of in MediaSourceGStreamer::removeSourceBuffer(). Also why does MediaSourceClientGStreamer::removedFromMediaSource() receive a PassRefPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147613</commentid>
    <comment_count>15</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-12-09 00:14:05 -0800</bug_when>
    <thetext>This likely isn&apos;t going to apply to the reworked MSE backend.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244045</attachid>
            <date>2015-01-06 02:55:51 -0800</date>
            <delta_ts>2015-01-06 02:58:26 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>5560</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0YjBkN2FkNjBiZDVmOGZiNzgxOGVhZTgzOTAyYWUxZTNlNTg2MDliIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIHwgIDcgKysrLS0tLQogLi4uL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5oICAgfCAgMyArKysK
IC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
IHwgIDUgKysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oICAgIHwgIDUgKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygr
KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3ODE5MS4uODhkZjAxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtNU0VdIEFTU0VSVCBpbiBN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAxMTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yZSBidWZmZXJzIGluIGEgdmVjdG9yLCBl
bnN1cmluZyBsZWdpdGltYXRlIG93bmVyc2hpcC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMTUtMDEtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybml6ZSBhbmQgc3RyZWFtbGluZSBIVE1MVG9rZW4g
YW5kIEF0b21pY0hUTUxUb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAK
aW5kZXggOGQzM2EyMC4uNjYxYmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC02MywxMCArNjMsOSBAQCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6fk1lZGlhU291
cmNlR1N0cmVhbWVyKCkKIAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6OkFkZFN0YXR1cyBNZWRpYVNv
dXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50
VHlwZSwgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+JiBzb3VyY2VCdWZmZXJQcml2YXRlKQog
ewotICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyID0gbmV3IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIobV9jbGll
bnQuZ2V0KCksIGNvbnRlbnRUeXBlKTsKLQotICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBhZG9w
dFJlZihzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmdldCgpKTsKLSAgICByZXR1cm4gbV9j
bGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLCBjb250
ZW50VHlwZSk7CisgICAgbV9zb3VyY2VCdWZmZXJzLmFwcGVuZChTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjpjcmVhdGUobV9jbGllbnQuZ2V0KCksIGNvbnRlbnRUeXBlKSk7CisgICAgc291
cmNlQnVmZmVyUHJpdmF0ZSA9IG1fc291cmNlQnVmZmVycy5sYXN0KCk7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5hZGRTb3VyY2VCdWZmZXIobV9zb3VyY2VCdWZmZXJzLmxhc3QoKSwgY29udGVudFR5
cGUpOwogfQogCiB2b2lkIE1lZGlhU291cmNlR1N0cmVhbWVyOjpkdXJhdGlvbkNoYW5nZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhU291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAppbmRleCBmMzBiMjlmLi4wNWY2YWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMzksNiArMzksOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI7
CisKIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBjYWxsZWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0
cmVhbWVyPwogY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFT
b3VyY2VQcml2YXRlIHsKIHB1YmxpYzoKQEAgLTU5LDYgKzYxLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqLCBX
ZWJLaXRNZWRpYVNyYyopOwogCisgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyPj4gbV9zb3VyY2VCdWZmZXJzOwogICAgIFJlZlB0cjxNZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lcj4gbV9jbGllbnQ7CiAgICAgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBtX21l
ZGlhU291cmNlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBi
YjUwODQwLi5mMmYxNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwCkBAIC00MCw2ICs0MCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK1Bhc3NSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3Ry
ZWFtZXI+IGNsaWVudCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihjbGllbnQsIGNv
bnRlbnRUeXBlKSk7Cit9CisKIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1l
cj4gY2xpZW50LCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCiAgICAgOiBtX3R5cGUo
Y29udGVudFR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA5NjBmODc2Li5mOGRkODFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTQzLDcg
KzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgewogcHVibGljOgot
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjZUNs
aWVudEdTdHJlYW1lcj4sIGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKFBhc3NSZWZQdHI8TWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXI+LCBjb25zdCBDb250ZW50VHlwZSYpOwogICAgIHZpcnR1YWwg
flNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRD
bGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopOwpAQCAtNjMsNiArNjMsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVz
KEF0b21pY1N0cmluZyk7CiAKIHByaXZhdGU6CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcihQYXNzUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiwgY29uc3QgQ29udGVu
dFR5cGUmKTsKKyAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI7CisK
ICAgICBDb250ZW50VHlwZSBtX3R5cGU7CiAgICAgUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyPiBtX2NsaWVudDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQ7Ci0tIAoyLjEuMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244046</attachid>
            <date>2015-01-06 02:58:26 -0800</date>
            <delta_ts>2015-01-06 05:36:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>5631</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3M2E4YmNlZTM0MTk2ZWU1ODBlOTFlYjM2ZjQzYmY0YTUxZWQzZjlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAgNyArKystLS0tCiAuLi4vcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmggIHwgIDMgKysrCiAu
Li4vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIHwg
IDUgKysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lci5oICAgfCAgNSArKysrLQogNSBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA1
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMzc4MTkxLi40ZjUxMjUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDEtMDYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdW01TRV0gQVNTRVJUIGluIE1lZGlh
U291cmNlR1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGJ1ZmZlcnMgaW4gYSB2ZWN0b3IsIGVuc3Vy
aW5nIGxlZ2l0aW1hdGUgb3duZXJzaGlwLgorICAgICAgICBCYXNlZCBvbiBhIHBhdGNoIGJ5IFNl
YmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+LgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAxNS0wMS0wNSAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIGFuZCBzdHJlYW1s
aW5lIEhUTUxUb2tlbiBhbmQgQXRvbWljSFRNTFRva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNl
R1N0cmVhbWVyLmNwcAppbmRleCA4ZDMzYTIwLi42NjFiZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTYzLDEwICs2Myw5IEBAIE1lZGlhU291cmNlR1N0cmVh
bWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIoKQogCiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6QWRk
U3RhdHVzIE1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVu
dFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1
ZmZlclByaXZhdGUpCiB7Ci0gICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+
IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBuZXcgU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcihtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUpOwotCi0gICAgc291cmNlQnVmZmVy
UHJpdmF0ZSA9IGFkb3B0UmVmKHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuZ2V0KCkpOwot
ICAgIHJldHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIsIGNvbnRlbnRUeXBlKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMuYXBwZW5kKFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtX2NsaWVudC5nZXQoKSwgY29udGVudFR5
cGUpKTsKKyAgICBzb3VyY2VCdWZmZXJQcml2YXRlID0gbV9zb3VyY2VCdWZmZXJzLmxhc3QoKTsK
KyAgICByZXR1cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihtX3NvdXJjZUJ1ZmZlcnMubGFz
dCgpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQgTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmR1cmF0
aW9uQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCmluZGV4IGYzMGIy
OWYuLjA1ZjZhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCkBAIC0zOSw2
ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjsKKwogLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIGNhbGxlZCBNZWRpYVNv
dXJjZVByaXZhdGVHU3RyZWFtZXI/CiBjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6
IHB1YmxpYyBNZWRpYVNvdXJjZVByaXZhdGUgewogcHVibGljOgpAQCAtNTksNiArNjEsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhU291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudCosIFdlYktpdE1lZGlhU3JjKik7CiAKKyAgICBWZWN0b3I8UmVmUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgUmVmUHRyPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiBtX2NsaWVudDsKICAgICBNZWRpYVNvdXJjZVByaXZh
dGVDbGllbnQqIG1fbWVkaWFTb3VyY2U7CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IGJiNTA4NDAuLmYyZjE3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQwLDYgKzQwLDExIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
PiBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNZWRpYVNv
dXJjZUNsaWVudEdTdHJlYW1lcj4gY2xpZW50LCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyKGNsaWVudCwgY29udGVudFR5cGUpKTsKK30KKwogU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihQYXNzUmVmUHRyPE1lZGlhU291cmNl
Q2xpZW50R1N0cmVhbWVyPiBjbGllbnQsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkK
ICAgICA6IG1fdHlwZShjb250ZW50VHlwZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDk2MGY4NzYu
LmY4ZGQ4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0
ZSB7CiBwdWJsaWM6Ci0gICAgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihQYXNzUmVmUHRy
PE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiwgY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoUGFz
c1JlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4sIGNvbnN0IENvbnRlbnRUeXBlJik7
CiAgICAgdmlydHVhbCB+U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcigpOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kik7CkBAIC02Myw2
ICs2Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5
Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKTsKIAogcHJpdmF0ZToKKyAgICBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyKFBhc3NSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+
LCBjb25zdCBDb250ZW50VHlwZSYpOworICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lcjsKKwogICAgIENvbnRlbnRUeXBlIG1fdHlwZTsKICAgICBSZWZQdHI8TWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXI+IG1fY2xpZW50OwogICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQqIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDsKLS0gCjIuMS4z
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244054</attachid>
            <date>2015-01-06 05:36:45 -0800</date>
            <delta_ts>2015-01-06 06:43:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6205</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5NmUwYjVhNWQzMDU2YjNlNDFhZjNkY2JmNDEzODNmZGQ5ODVmNTAxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAxMyArKysrKysrKysrLS0tCiAuLi4v
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmggIHwgIDUg
KysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgfCAgNSArKysrKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyLmggICB8ICA1ICsrKystCiA1IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlv
bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIzNzgxOTEuLjRmNTEyNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wMS0wNiAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bTVNFXSBBU1NFUlQg
aW4gTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcmUgYnVmZmVycyBpbiBhIHZlY3Rv
ciwgZW5zdXJpbmcgbGVnaXRpbWF0ZSBvd25lcnNoaXAuCisgICAgICAgIEJhc2VkIG9uIGEgcGF0
Y2ggYnkgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNl
R1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOgorCiAyMDE1LTAxLTA1
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm5pemUgYW5k
IHN0cmVhbWxpbmUgSFRNTFRva2VuIGFuZCBBdG9taWNIVE1MVG9rZW4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDhkMzNhMjAuLjUwM2RjNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNjMsMTAgKzYzLDE3IEBAIE1lZGlhU291
cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIoKQogCiBNZWRpYVNvdXJjZUdTdHJl
YW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIoY29u
c3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4m
IHNvdXJjZUJ1ZmZlclByaXZhdGUpCiB7Ci0gICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBuZXcgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcihtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUpOworICAgIG1fc291
cmNlQnVmZmVycy5hcHBlbmQoU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1f
Y2xpZW50LmdldCgpLCBjb250ZW50VHlwZSkpOworICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBt
X3NvdXJjZUJ1ZmZlcnMubGFzdCgpOworICAgIHJldHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVm
ZmVyKG1fc291cmNlQnVmZmVycy5sYXN0KCksIGNvbnRlbnRUeXBlKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZUdTdHJlYW1lcjo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGUq
IGJ1ZmZlcikKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VCdWZmZXJzLmNvbnRhaW5zKGJ1ZmZlcikp
OwogCi0gICAgc291cmNlQnVmZmVyUHJpdmF0ZSA9IGFkb3B0UmVmKHNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuZ2V0KCkpOwotICAgIHJldHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVmZmVy
KHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIsIGNvbnRlbnRUeXBlKTsKKyAgICBzaXplX3Qg
aW5kZXggPSBtX3NvdXJjZUJ1ZmZlcnMuZmluZChidWZmZXIpOworICAgIG1fc291cmNlQnVmZmVy
cy5yZW1vdmUoaW5kZXgpOwogfQogCiB2b2lkIE1lZGlhU291cmNlR1N0cmVhbWVyOjpkdXJhdGlv
bkNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAppbmRleCBmMzBiMjlm
Li45NzUxYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMzksNiAr
MzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI7CisKIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBjYWxsZWQgTWVkaWFTb3Vy
Y2VQcml2YXRlR1N0cmVhbWVyPwogY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFtZXIgZmluYWwgOiBw
dWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlIHsKIHB1YmxpYzoKQEAgLTQ2LDYgKzQ4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfk1lZGlhU291cmNlR1N0cmVhbWVyKCk7CiAKICAgICB2aXJ0dWFs
IEFkZFN0YXR1cyBhZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmLCBSZWZQdHI8U291
cmNlQnVmZmVyUHJpdmF0ZT4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVy
KFNvdXJjZUJ1ZmZlclByaXZhdGUqKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlvbkNoYW5n
ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWFya0VuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVz
KTsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0oKTsKQEAgLTU5LDYgKzYzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJj
ZVByaXZhdGVDbGllbnQqLCBXZWJLaXRNZWRpYVNyYyopOwogCisgICAgVmVjdG9yPFJlZlB0cjxT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPj4gbV9zb3VyY2VCdWZmZXJzOwogICAgIFJlZlB0
cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4gbV9jbGllbnQ7CiAgICAgTWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50KiBtX21lZGlhU291cmNlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
IG1fcmVhZHlTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAppbmRleCBiYjUwODQwLi5mMmYxNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC00MCw2ICs0MCwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcj4gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TWVk
aWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+IGNsaWVudCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRl
bnRUeXBlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcihjbGllbnQsIGNvbnRlbnRUeXBlKSk7Cit9CisKIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNv
dXJjZUNsaWVudEdTdHJlYW1lcj4gY2xpZW50LCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
cGUpCiAgICAgOiBtX3R5cGUoY29udGVudFR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA5NjBm
ODc2Li5mOGRkODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclBy
aXZhdGUgewogcHVibGljOgotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoUGFzc1Jl
ZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4sIGNvbnN0IENvbnRlbnRUeXBlJik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRl
KFBhc3NSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+LCBjb25zdCBDb250ZW50VHlw
ZSYpOwogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopOwpAQCAt
NjMsNiArNjMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5S
ZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyk7CiAKIHByaXZhdGU6CisgICAgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihQYXNzUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0cmVh
bWVyPiwgY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXI7CisKICAgICBDb250ZW50VHlwZSBtX3R5cGU7CiAgICAgUmVmUHRyPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiBtX2NsaWVudDsKICAgICBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50KiBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ7Ci0tIAoyLjEuMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244057</attachid>
            <date>2015-01-06 06:43:57 -0800</date>
            <delta_ts>2015-01-06 06:54:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>12859</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkMTU3MjcwZmFjNmU5OThlY2FmY2Y1NmU5YTg4NjY3NmUzN2Q1YzJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDI5ICsrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAyICstCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICA3ICsrLS0KIC4uLi9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwICAgIHwgMjQgKysrKysrKysrKysrLS0KIC4uLi9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCAgICAgIHwgIDcgKysrKwog
Li4uL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgfCAyNiAr
KysrKysrKysrLS0tLS0KIC4uLi9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICAgIHwgMzggKysrKysrKysrKysrLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCA5
OCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3ODE5MS4u
ODQ5NzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAxLTA2ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtN
U0VdIEFTU0VSVCBpbiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAxMTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yZSBidWZmZXJz
IGluIGEgdmVjdG9yLCBlbnN1cmluZyBsZWdpdGltYXRlIG93bmVyc2hpcC4gVGhlCisgICAgICAg
IGJ1ZmZlcnMgYXJlIGNsZWFyZWQgaW4gdGhlIE1lZGlhU291cmNlR1N0cmVhbWVyIGRlc3RydWN0
b3IgYW5kCisgICAgICAgIHdoZW4gdGhlIHJlbW92ZVNvdXJjZUJ1ZmZlciBtZXRob2QgaXMgaW52
b2tlZC4gVGhlIHBhdGNoIGFsc28gYWRkcworICAgICAgICBzdXBwb3J0IGZvciBjaGVja2luZyBi
dWZmZXJzIGNvbnRlbnQtdHlwZSBhbmQgY2xlYW5zIHVwIGEgYml0IHRoZQorICAgICAgICBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIG1ldGhvZHMgZGVjbGFyYXRpb25zLgorCisgICAgICAg
IEJhc2VkIG9uIGEgcGF0Y2ggYnkgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1
bGFyLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6cmVtb3ZlU291cmNlQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VH
U3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAxNS0wMS0wNSAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIGFuZCBzdHJlYW1saW5lIEhUTUxU
b2tlbiBhbmQgQXRvbWljSFRNTFRva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGNjNDc4Y2UuLjYwODA3OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBA
CiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNl
R1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggOTQ4MGIzYS4uYmY2M2YzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaApAQCAtMzksMTAgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmdIYXNoLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5j
bHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBf
R3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3Nh
Z2U7CiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwpAQCAtNjQsNiArNjAs
OCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSB7CiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcigpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisKICAgICBn
Ym9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdp
bkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CiAKQEAgLTE0MCw3ICsx
MzgsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogCiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggOGQzM2EyMC4uZmM1MjgwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zNSw3ICszNSw5IEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCisjaW5jbHVkZSAiQ29udGVu
dFR5cGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgogCkBAIC01
OSwxNCArNjEsMzAgQEAgTWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1lZGlhU291cmNlR1N0cmVhbWVy
KE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogbWVkaWFTb3VyY2UKIAogTWVkaWFTb3VyY2VHU3Ry
ZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJlYW1lcigpCiB7CisgICAgZm9yIChhdXRvIGl0ID0gbV9z
b3VyY2VCdWZmZXJzLmJlZ2luKCksIGVuZCA9IG1fc291cmNlQnVmZmVycy5lbmQoKTsgaXQgIT0g
ZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+Y2xlYXJNZWRpYVNvdXJjZSgpOwogfQogCiBNZWRp
YVNvdXJjZUdTdHJlYW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3Vy
Y2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1ZmZlclByaXZhdGUpCiB7Ci0gICAgUmVmUHRyPFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBuZXcg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUp
OworICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJh
bWV0ZXJzLmlzTWVkaWFTb3VyY2UgPSB0cnVlOworICAgIHBhcmFtZXRlcnMudHlwZSA9IGNvbnRl
bnRUeXBlLnR5cGUoKTsKKyAgICBwYXJhbWV0ZXJzLmNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFt
ZXRlcihBU0NJSUxpdGVyYWwoImNvZGVjcyIpKTsKKyAgICBpZiAoTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycykgPT0gTWVkaWFQbGF5ZXI6OklzTm90
U3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gTm90U3VwcG9ydGVkOworCisgICAgbV9zb3VyY2VC
dWZmZXJzLmFwcGVuZChTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUodGhpcykp
OworICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBtX3NvdXJjZUJ1ZmZlcnMubGFzdCgpOworICAg
IHJldHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVmZmVyKG1fc291cmNlQnVmZmVycy5sYXN0KCks
IGNvbnRlbnRUeXBlKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6cmVtb3ZlU291
cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGUqIGJ1ZmZlcikKK3sKKyAgICBBU1NFUlQobV9z
b3VyY2VCdWZmZXJzLmNvbnRhaW5zKGJ1ZmZlcikpOwogCi0gICAgc291cmNlQnVmZmVyUHJpdmF0
ZSA9IGFkb3B0UmVmKHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuZ2V0KCkpOwotICAgIHJl
dHVybiBtX2NsaWVudC0+YWRkU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIsIGNvbnRlbnRUeXBlKTsKKyAgICBzaXplX3QgaW5kZXggPSBtX3NvdXJjZUJ1ZmZlcnMuZmlu
ZChidWZmZXIpOworICAgIG1fc291cmNlQnVmZmVycy5yZW1vdmUoaW5kZXgpOwogfQogCiB2b2lk
IE1lZGlhU291cmNlR1N0cmVhbWVyOjpkdXJhdGlvbkNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFT
b3VyY2VHU3RyZWFtZXIuaAppbmRleCBmMzBiMjlmLi5jOThkNzBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMzksMTMgKzM5LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjsKKwogLy8gRklYTUU6
IFNob3VsZCB0aGlzIGJlIGNhbGxlZCBNZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXI/CiBjbGFz
cyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBNZWRpYVNvdXJjZVByaXZhdGUg
ewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG9wZW4oTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
KiwgV2ViS2l0TWVkaWFTcmMqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZUdTdHJlYW1lcigp
OwogCisgICAgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXIqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50LmdldCgpOyB9CisKICAgICB2aXJ0dWFsIEFkZFN0YXR1cyBhZGRTb3VyY2VC
dWZmZXIoY29uc3QgQ29udGVudFR5cGUmLCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mKTsK
KyAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKik7CisKICAg
ICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25DaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIG1hcmtF
bmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cyk7CiAgICAgdmlydHVhbCB2b2lkIHVubWFya0Vu
ZE9mU3RyZWFtKCk7CkBAIC01OSw2ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVk
aWFTb3VyY2VHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiwgV2ViS2l0TWVkaWFT
cmMqKTsKIAorICAgIFZlY3RvcjxSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4+
IG1fc291cmNlQnVmZmVyczsKICAgICBSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+
IG1fY2xpZW50OwogICAgIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogbV9tZWRpYVNvdXJjZTsK
ICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYmI1MDg0MC4uZDA3
ZTQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMzUsMTQgKzM1LDE4IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBV
U0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRlICJNZWRp
YVNvdXJjZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcihQYXNzUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVy
PiBjbGllbnQsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKLSAgICA6IG1fdHlwZShj
b250ZW50VHlwZSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1Bhc3NSZWZQdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcj4gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRl
KE1lZGlhU291cmNlR1N0cmVhbWVyKiBtZWRpYVNvdXJjZSkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIobWVkaWFTb3VyY2UpKTsKK30KKwor
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cihNZWRpYVNvdXJjZUdTdHJlYW1lciogbWVkaWFTb3VyY2UpCisgICAgOiBtX21lZGlhU291cmNl
KG1lZGlhU291cmNlKQogICAgICwgbV9yZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpIYXZlTm90aGlu
ZykKIHsKIH0KQEAgLTU4LDExICs2MiwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OnNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBjbGllbnQpCiAKIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBBU1NFUlQobV9jbGllbnQpOworICAg
IEFTU0VSVChtX21lZGlhU291cmNlKTsKICAgICBBU1NFUlQobV9zb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50KTsKIAotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCBy
ZXN1bHQgPSBtX2NsaWVudC0+YXBwZW5kKHRoaXMsIGRhdGEsIGxlbmd0aCk7Ci0gICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
dGhpcywgcmVzdWx0KTsKKyAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRSZXN1
bHQgcmVzdWx0ID0gbV9tZWRpYVNvdXJjZS0+Y2xpZW50KCktPmFwcGVuZCh0aGlzLCBkYXRhLCBs
ZW5ndGgpOworCisgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKKyAgICAgICAg
bV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29t
cGxldGUodGhpcywgcmVzdWx0KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjphYm9ydCgpCkBAIC03Miw3ICs3OCwxMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6OmFib3J0KCkKIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpy
ZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIHsKLSAgICBtX2NsaWVudC0+cmVtb3ZlZEZyb21NZWRp
YVNvdXJjZSh0aGlzKTsKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbWVkaWFTb3VyY2UtPnJlbW92ZVNvdXJjZUJ1ZmZlcih0aGlzKTsKKyAgICBtX21l
ZGlhU291cmNlLT5jbGllbnQoKS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSh0aGlzKTsKIH0KIAog
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVh
ZHlTdGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuaAppbmRleCA5NjBmODc2Li44ZjllOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM1LDM2ICszNSwzOCBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkNvbnRlbnRU
eXBlLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktp
dE1lZGlhU291cmNlR1N0cmVhbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
TWVkaWFTb3VyY2VHU3RyZWFtZXI7CisKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CiBwdWJsaWM6Ci0gICAgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihQYXNzUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyPiwgY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoTWVkaWFTb3VyY2VHU3RyZWFtZXIqKTsK
ICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKCk7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKTsKLQotICAgIHZp
cnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
ZEZyb21NZWRpYVNvdXJjZSgpOworICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsgbV9tZWRp
YVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGFib3J0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZmx1c2hBbmRFbnF1ZXVlTm9uRGlzcGxheWluZ1NhbXBsZXMoVmVjdG9yPFJl
ZlB0cjxNZWRpYVNhbXBsZT4+LCBBdG9taWNTdHJpbmcpOwotICAgIHZpcnR1YWwgdm9pZCBlbnF1
ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpOwotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNraW5nRm9y
TW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50
V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hBbmRFbnF1ZXVlTm9uRGlzcGxheWluZ1NhbXBsZXMoVmVjdG9yPFJlZlB0cjxNZWRpYVNh
bXBsZT4+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVl
U2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMo
QXRvbWljU3RyaW5nKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDb250ZW50VHlwZSBtX3R5
cGU7Ci0gICAgUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiBtX2NsaWVudDsKKyAg
ICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhU291cmNlR1N0cmVhbWVyKik7Cisg
ICAgZnJpZW5kIGNsYXNzIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyOworCisgICAgTWVkaWFT
b3VyY2VHU3RyZWFtZXIqIG1fbWVkaWFTb3VyY2U7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudCogbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwogICAgIE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlIG1fcmVhZHlTdGF0ZTsKIH07Ci0tIAoyLjEuMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244058</attachid>
            <date>2015-01-06 06:54:55 -0800</date>
            <delta_ts>2015-01-08 08:45:43 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>12857</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5NjgzMzNmN2RlZWY5YmRlNGVkZDI1MWIyNGU4OGQ5YjQwNGZjMTllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDI5ICsrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAyICstCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICA3ICsrLS0KIC4uLi9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwICAgIHwgMjQgKysrKysrKysrKysrLS0KIC4uLi9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCAgICAgIHwgIDcgKysrKwog
Li4uL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgfCAyNiAr
KysrKysrKysrLS0tLS0KIC4uLi9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5oICAgICAgIHwgMzggKysrKysrKysrKysrLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCA5
OCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3ODE5MS4u
ODQ5NzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAxLTA2ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtN
U0VdIEFTU0VSVCBpbiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAxMTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yZSBidWZmZXJz
IGluIGEgdmVjdG9yLCBlbnN1cmluZyBsZWdpdGltYXRlIG93bmVyc2hpcC4gVGhlCisgICAgICAg
IGJ1ZmZlcnMgYXJlIGNsZWFyZWQgaW4gdGhlIE1lZGlhU291cmNlR1N0cmVhbWVyIGRlc3RydWN0
b3IgYW5kCisgICAgICAgIHdoZW4gdGhlIHJlbW92ZVNvdXJjZUJ1ZmZlciBtZXRob2QgaXMgaW52
b2tlZC4gVGhlIHBhdGNoIGFsc28gYWRkcworICAgICAgICBzdXBwb3J0IGZvciBjaGVja2luZyBi
dWZmZXJzIGNvbnRlbnQtdHlwZSBhbmQgY2xlYW5zIHVwIGEgYml0IHRoZQorICAgICAgICBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIG1ldGhvZHMgZGVjbGFyYXRpb25zLgorCisgICAgICAg
IEJhc2VkIG9uIGEgcGF0Y2ggYnkgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1
bGFyLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6cmVtb3ZlU291cmNlQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VH
U3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAxNS0wMS0wNSAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIGFuZCBzdHJlYW1saW5lIEhUTUxU
b2tlbiBhbmQgQXRvbWljSFRNTFRva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGNjNDc4Y2UuLjYwODA3OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBA
CiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNl
R1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggOTQ4MGIzYS4uYmY2M2YzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaApAQCAtMzksMTAgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmdIYXNoLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5j
bHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBf
R3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3Nh
Z2U7CiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwpAQCAtNjQsNiArNjAs
OCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSB7CiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcigpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOworICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisKICAgICBn
Ym9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdp
bkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CiAKQEAgLTE0MCw3ICsx
MzgsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogCiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggOGQzM2EyMC4uN2VjZDQwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCisjaW5jbHVkZSAiQ29udGVu
dFR5cGUuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgpAQCAtNTks
MTQgKzYxLDMwIEBAIE1lZGlhU291cmNlR1N0cmVhbWVyOjpNZWRpYVNvdXJjZUdTdHJlYW1lcihN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqIG1lZGlhU291cmNlCiAKIE1lZGlhU291cmNlR1N0cmVh
bWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIoKQogeworICAgIGZvciAoYXV0byBpdCA9IG1fc291
cmNlQnVmZmVycy5iZWdpbigpLCBlbmQgPSBtX3NvdXJjZUJ1ZmZlcnMuZW5kKCk7IGl0ICE9IGVu
ZDsgKytpdCkKKyAgICAgICAgKCppdCktPmNsZWFyTWVkaWFTb3VyY2UoKTsKIH0KIAogTWVkaWFT
b3VyY2VHU3RyZWFtZXI6OkFkZFN0YXR1cyBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNl
QnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgUmVmUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGU+JiBzb3VyY2VCdWZmZXJQcml2YXRlKQogewotICAgIFJlZlB0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyID0gbmV3IFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIobV9jbGllbnQuZ2V0KCksIGNvbnRlbnRUeXBlKTsK
KyAgICBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1l
dGVycy5pc01lZGlhU291cmNlID0gdHJ1ZTsKKyAgICBwYXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50
VHlwZS50eXBlKCk7CisgICAgcGFyYW1ldGVycy5jb2RlY3MgPSBjb250ZW50VHlwZS5wYXJhbWV0
ZXIoQVNDSUlMaXRlcmFsKCJjb2RlY3MiKSk7CisgICAgaWYgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpID09IE1lZGlhUGxheWVyOjpJc05vdFN1
cHBvcnRlZCkKKyAgICAgICAgcmV0dXJuIE5vdFN1cHBvcnRlZDsKKworICAgIG1fc291cmNlQnVm
ZmVycy5hcHBlbmQoU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRoaXMpKTsK
KyAgICBzb3VyY2VCdWZmZXJQcml2YXRlID0gbV9zb3VyY2VCdWZmZXJzLmxhc3QoKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihtX3NvdXJjZUJ1ZmZlcnMubGFzdCgpLCBj
b250ZW50VHlwZSk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VHU3RyZWFtZXI6OnJlbW92ZVNvdXJj
ZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKiBidWZmZXIpCit7CisgICAgQVNTRVJUKG1fc291
cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKTsKIAotICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUg
PSBhZG9wdFJlZihzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmdldCgpKTsKLSAgICByZXR1
cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LCBjb250ZW50VHlwZSk7CisgICAgc2l6ZV90IGluZGV4ID0gbV9zb3VyY2VCdWZmZXJzLmZpbmQo
YnVmZmVyKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMucmVtb3ZlKGluZGV4KTsKIH0KIAogdm9pZCBN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6ZHVyYXRpb25DaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291
cmNlR1N0cmVhbWVyLmgKaW5kZXggZjMwYjI5Zi4uYzk4ZDcwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
U291cmNlR1N0cmVhbWVyLmgKQEAgLTM5LDEzICszOSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI7CisKIC8vIEZJWE1FOiBT
aG91bGQgdGhpcyBiZSBjYWxsZWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyPwogY2xhc3Mg
TWVkaWFTb3VyY2VHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBvcGVuKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCos
IFdlYktpdE1lZGlhU3JjKik7CiAgICAgdmlydHVhbCB+TWVkaWFTb3VyY2VHU3RyZWFtZXIoKTsK
IAorICAgIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyKiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudC5nZXQoKTsgfQorCiAgICAgdmlydHVhbCBBZGRTdGF0dXMgYWRkU291cmNlQnVm
ZmVyKGNvbnN0IENvbnRlbnRUeXBlJiwgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+Jik7Cisg
ICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZSopOworCiAgICAg
dmlydHVhbCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBtYXJrRW5k
T2ZTdHJlYW0oRW5kT2ZTdHJlYW1TdGF0dXMpOwogICAgIHZpcnR1YWwgdm9pZCB1bm1hcmtFbmRP
ZlN0cmVhbSgpOwpAQCAtNTksNiArNjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlh
U291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCosIFdlYktpdE1lZGlhU3Jj
Kik7CiAKKyAgICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+PiBt
X3NvdXJjZUJ1ZmZlcnM7CiAgICAgUmVmUHRyPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyPiBt
X2NsaWVudDsKICAgICBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqIG1fbWVkaWFTb3VyY2U7CiAg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGJiNTA4NDAuLmQwN2U0
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTM1LDE0ICszNSwxOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNF
KEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiTWVkaWFT
b3VyY2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4g
Y2xpZW50LCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCi0gICAgOiBtX3R5cGUoY29u
dGVudFR5cGUpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI+IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShN
ZWRpYVNvdXJjZUdTdHJlYW1lciogbWVkaWFTb3VyY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKG1lZGlhU291cmNlKSk7Cit9CisKK1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIo
TWVkaWFTb3VyY2VHU3RyZWFtZXIqIG1lZGlhU291cmNlKQorICAgIDogbV9tZWRpYVNvdXJjZSht
ZWRpYVNvdXJjZSkKICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcp
CiB7CiB9CkBAIC01OCwxMSArNjIsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjpzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogY2xpZW50KQogCiB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUKG1fY2xpZW50KTsKKyAgICBB
U1NFUlQobV9tZWRpYVNvdXJjZSk7CiAgICAgQVNTRVJUKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudCk7CiAKLSAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRSZXN1bHQgcmVz
dWx0ID0gbV9jbGllbnQtPmFwcGVuZCh0aGlzLCBkYXRhLCBsZW5ndGgpOwotICAgIG1fc291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRo
aXMsIHJlc3VsdCk7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0
IHJlc3VsdCA9IG1fbWVkaWFTb3VyY2UtPmNsaWVudCgpLT5hcHBlbmQodGhpcywgZGF0YSwgbGVu
Z3RoKTsKKworICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQpCisgICAgICAgIG1f
c291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBs
ZXRlKHRoaXMsIHJlc3VsdCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6YWJvcnQoKQpAQCAtNzIsNyArNzgsMTEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjphYm9ydCgpCiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVt
b3ZlZEZyb21NZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9jbGllbnQtPnJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UodGhpcyk7CisgICAgaWYgKCFtX21lZGlhU291cmNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX21lZGlhU291cmNlLT5yZW1vdmVTb3VyY2VCdWZmZXIodGhpcyk7CisgICAgbV9tZWRp
YVNvdXJjZS0+Y2xpZW50KCktPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UodGhpcyk7CiB9CiAKIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnJlYWR5
U3RhdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmgKaW5kZXggOTYwZjg3Ni4uOGY5ZTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0zNSwzNiArMzUsMzggQEAKIAogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJDb250ZW50VHlw
ZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRN
ZWRpYVNvdXJjZUdTdHJlYW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1l
ZGlhU291cmNlR1N0cmVhbWVyOworCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
IGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgewogcHVibGljOgotICAgIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJl
YW1lcj4sIGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKE1lZGlhU291cmNlR1N0cmVhbWVyKik7CiAg
ICAgdmlydHVhbCB+U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcigpOwogCi0gICAgdmlydHVh
bCB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kik7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCk7Ci0gICAgdmlydHVhbCB2b2lkIGFib3J0KCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKTsKKyAgICB2b2lkIGNsZWFyTWVkaWFTb3VyY2UoKSB7IG1fbWVkaWFT
b3VyY2UgPSBudWxscHRyOyB9CiAKLSAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
IHJlYWR5U3RhdGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVk
RnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIGZsdXNoQW5kRW5xdWV1ZU5vbkRpc3BsYXlpbmdTYW1wbGVzKFZlY3RvcjxSZWZQ
dHI8TWVkaWFTYW1wbGU+PiwgQXRvbWljU3RyaW5nKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1
ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyk7Ci0gICAgdmlydHVh
bCB2b2lkIHNldEFjdGl2ZShib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEFza2luZ0Zvck1v
cmVTYW1wbGVzKEF0b21pY1N0cmluZyk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdo
ZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyk7CisgICAgdmlydHVhbCB2b2lkIGZs
dXNoQW5kRW5xdWV1ZU5vbkRpc3BsYXlpbmdTYW1wbGVzKFZlY3RvcjxSZWZQdHI8TWVkaWFTYW1w
bGU+PiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNh
bXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0
b21pY1N0cmluZykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgQ29udGVudFR5cGUgbV90eXBl
OwotICAgIFJlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4gbV9jbGllbnQ7CisgICAg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVNvdXJjZUdTdHJlYW1lciopOworICAg
IGZyaWVuZCBjbGFzcyBNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcjsKKworICAgIE1lZGlhU291
cmNlR1N0cmVhbWVyKiBtX21lZGlhU291cmNlOwogICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQqIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDsKICAgICBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSBtX3JlYWR5U3RhdGU7CiB9OwotLSAKMi4xLjM=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244262</attachid>
            <date>2015-01-08 08:45:43 -0800</date>
            <delta_ts>2015-12-09 00:13:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>13365</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3YzZkMGMxNTVmNGU3OWIzOGRmMzQ2NDljZWNlYTZhYjM2NDhkZDc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDYgSmFuIDIwMTUgMTE6NDM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDI5ICsrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAyICstCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICA3ICsrLS0KIC4uLi9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwICAgIHwgMjYgKysrKysrKysrKysrKy0tCiAuLi4v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmggICAgICB8IDE2ICsrKysr
KystLQogLi4uL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAg
fCAyNyArKysrKysrKysrLS0tLS0KIC4uLi9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oICAgICAgIHwgMzggKysrKysrKysrKysrLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFu
Z2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFh
ZTBjMTMuLmUyYWIxOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNS0wMS0wNiAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJl
YW1lcl1bTVNFXSBBU1NFUlQgaW4gTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTE2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcmUg
YnVmZmVycyBpbiBhIGhhc2hzZXQsIGVuc3VyaW5nIGxlZ2l0aW1hdGUgb3duZXJzaGlwLiBUaGUK
KyAgICAgICAgYnVmZmVycyBhcmUgY2xlYXJlZCBpbiB0aGUgTWVkaWFTb3VyY2VHU3RyZWFtZXIg
ZGVzdHJ1Y3RvciBhbmQKKyAgICAgICAgd2hlbiB0aGUgcmVtb3ZlU291cmNlQnVmZmVyIG1ldGhv
ZCBpcyBpbnZva2VkLiBUaGUgcGF0Y2ggYWxzbyBhZGRzCisgICAgICAgIHN1cHBvcnQgZm9yIGNo
ZWNraW5nIGJ1ZmZlcnMgY29udGVudC10eXBlIGFuZCBjbGVhbnMgdXAgYSBiaXQgdGhlCisgICAg
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgbWV0aG9kcyBkZWNsYXJhdGlvbnMuCisK
KyAgICAgICAgQmFzZWQgb24gYSBwYXRjaCBieSBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5A
Y2VudHJpY3VsYXIuY29tPi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJl
YW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNl
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjpyZW1vdmVT
b3VyY2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVNvdXJjZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFwcGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpyZW1v
dmVkRnJvbU1lZGlhU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOgorCiAyMDE1LTAxLTA4ICBHd2FuZyBZ
b29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFNlcGVyYXRlIHVw
ZGF0ZUJhY2tpbmdTdG9yZSBmcm9tIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggY2M0NzhjZS4uNjA4
MDc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAKICNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9sdW1lLmg+
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCisj
aW5jbHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNv
dXJjZUdTdHJlYW1lci5oIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAppbmRleCA5NDgwYjNhLi5iZjYzZjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0zOSwxMCArMzksNiBAQAogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNlbmRpZgogCi0jaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgotI2VuZGlm
Ci0KIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIgR3N0QnVmZmVyOwogdHlwZWRlZiBzdHJ1Y3Qg
X0dzdE1lc3NhZ2UgR3N0TWVzc2FnZTsKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVs
ZW1lbnQ7CkBAIC02NCw2ICs2MCw4IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKICAg
ICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CisgICAgc3RhdGljIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmKTsKKwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSopOwog
ICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5zUmV0
dXJuKTsKIApAQCAtMTQwLDcgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwotICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA4ZDMzYTIw
Li40YjNjNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM1
LDYgKzM1LDggQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RSRUFNRVIp
CiAKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNl
R1N0cmVhbWVyLmgiCkBAIC01OSwxNCArNjEsMzIgQEAgTWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1l
ZGlhU291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCogbWVkaWFTb3VyY2UK
IAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJlYW1lcigpCiB7CisgICAg
Zm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiBtX3NvdXJjZUJ1ZmZlcnMpCisgICAgICAgIHNvdXJj
ZUJ1ZmZlci0+Y2xlYXJNZWRpYVNvdXJjZSgpOwogfQogCiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6
QWRkU3RhdHVzIE1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29u
dGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mIHNvdXJj
ZUJ1ZmZlclByaXZhdGUpCiB7Ci0gICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBuZXcgU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcihtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUpOworICAgIE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTb3Vy
Y2UgPSB0cnVlOworICAgIHBhcmFtZXRlcnMudHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKTsKKyAg
ICBwYXJhbWV0ZXJzLmNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFtZXRlcihBU0NJSUxpdGVyYWwo
ImNvZGVjcyIpKTsKKyAgICBpZiAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0
c1R5cGUocGFyYW1ldGVycykgPT0gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkKQorICAgICAg
ICByZXR1cm4gTm90U3VwcG9ydGVkOworCisgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI+IGJ1ZmZlciA9IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSh0
aGlzKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMuYWRkKGJ1ZmZlci5nZXQoKSk7CisgICAgc291cmNl
QnVmZmVyUHJpdmF0ZSA9IGJ1ZmZlcjsKKyAgICByZXR1cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1
ZmZlcihidWZmZXIsIGNvbnRlbnRUeXBlKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUdTdHJlYW1l
cjo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGUqIGJ1ZmZlcikKK3sKKyAg
ICBhdXRvKiBzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyID0gcmVpbnRlcnByZXRfY2FzdDxT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKj4oYnVmZmVyKTsKKyAgICBBU1NFUlQobV9zb3Vy
Y2VCdWZmZXJzLmNvbnRhaW5zKHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIpKTsKIAotICAg
IHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBhZG9wdFJlZihzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmdldCgpKTsKLSAgICByZXR1cm4gbV9jbGllbnQtPmFkZFNvdXJjZUJ1ZmZlcihzb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLCBjb250ZW50VHlwZSk7CisgICAgc291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci0+Y2xlYXJNZWRpYVNvdXJjZSgpOworICAgIG1fc291cmNlQnVmZmVycy5y
ZW1vdmUoc291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik7CiB9CiAKIHZvaWQgTWVkaWFTb3Vy
Y2VHU3RyZWFtZXI6OmR1cmF0aW9uQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJl
YW1lci5oCmluZGV4IGYzMGIyOWYuLmEyMTg4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNvdXJjZUdT
dHJlYW1lci5oCkBAIC0zNCwxOCArMzQsMjkgQEAKICNkZWZpbmUgTWVkaWFTb3VyY2VHU3RyZWFt
ZXJfaAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEdTVFJFQU1FUikKLSNpbmNs
dWRlICJNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlR1N0cmVhbWVy
LmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRNZWRpYVNyYyBXZWJLaXRNZWRpYVNyYzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOworY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRH
U3RyZWFtZXI7CisKIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBjYWxsZWQgTWVkaWFTb3VyY2VQ
cml2YXRlR1N0cmVhbWVyPwogY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFtZXIgZmluYWwgOiBwdWJs
aWMgTWVkaWFTb3VyY2VQcml2YXRlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBvcGVuKE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCosIFdlYktpdE1lZGlhU3JjKik7CiAgICAgdmlydHVhbCB+
TWVkaWFTb3VyY2VHU3RyZWFtZXIoKTsKIAorICAgIE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVy
JiBjbGllbnQoKSBjb25zdCB7IHJldHVybiAqbV9jbGllbnQ7IH0KKwogICAgIHZpcnR1YWwgQWRk
U3RhdHVzIGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBDb250ZW50VHlwZSYsIFJlZlB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlPiYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZl
clByaXZhdGUqKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgbWFya0VuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVzKTsKICAgICB2aXJ0
dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0oKTsKQEAgLTU5LDYgKzcwLDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqLCBXZWJLaXRNZWRpYVNyYyopOwogCisgICAgSGFzaFNldDxTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyKj4gbV9zb3VyY2VCdWZmZXJzOwogICAgIFJlZlB0cjxNZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lcj4gbV9jbGllbnQ7CiAgICAgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBtX21l
ZGlhU291cmNlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBi
YjUwODQwLi4wMjJlMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwCkBAIC0zNSwxNCArMzUsMTkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIFVTRShHU1RSRUFNRVIpCiAKLSNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2lu
Y2x1ZGUgIk1lZGlhU291cmNlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lcj4gY2xp
ZW50LCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCi0gICAgOiBtX3R5cGUoY29udGVu
dFR5cGUpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI+IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRp
YVNvdXJjZUdTdHJlYW1lciogbWVkaWFTb3VyY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKG1lZGlhU291cmNlKSk7Cit9CisKK1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVk
aWFTb3VyY2VHU3RyZWFtZXIqIG1lZGlhU291cmNlKQorICAgIDogbV9tZWRpYVNvdXJjZShtZWRp
YVNvdXJjZSkKICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiB7
CiB9CkBAIC01OCwxMSArNjMsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
OjpzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogY2xpZW50KQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUKG1fY2xpZW50KTsKKyAgICBBU1NF
UlQobV9tZWRpYVNvdXJjZSk7CiAgICAgQVNTRVJUKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCk7CiAKLSAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRSZXN1bHQgcmVzdWx0
ID0gbV9jbGllbnQtPmFwcGVuZCh0aGlzLCBkYXRhLCBsZW5ndGgpOwotICAgIG1fc291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMs
IHJlc3VsdCk7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0IHJl
c3VsdCA9IG1fbWVkaWFTb3VyY2UtPmNsaWVudCgpLmFwcGVuZCh0aGlzLCBkYXRhLCBsZW5ndGgp
OworCisgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
dGhpcywgcmVzdWx0KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjph
Ym9ydCgpCkBAIC03Miw3ICs3OSwxMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6OmFib3J0KCkKIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpyZW1vdmVk
RnJvbU1lZGlhU291cmNlKCkKIHsKLSAgICBtX2NsaWVudC0+cmVtb3ZlZEZyb21NZWRpYVNvdXJj
ZSh0aGlzKTsKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbWVkaWFTb3VyY2UtPnJlbW92ZVNvdXJjZUJ1ZmZlcih0aGlzKTsKKyAgICBtX21lZGlhU291
cmNlLT5jbGllbnQoKS5yZW1vdmVkRnJvbU1lZGlhU291cmNlKHRoaXMpOwogfQogCiBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpyZWFkeVN0YXRl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IDk2MGY4NzYuLjhmOWU5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuaApAQCAtMzUsMzYgKzM1LDM4IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCi0jaW5jbHVkZSAiQ29udGVudFR5cGUuaCIK
ICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0TWVkaWFT
b3VyY2VHU3RyZWFtZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNv
dXJjZUdTdHJlYW1lcjsKKwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciBmaW5h
bCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyKFBhc3NSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+
LCBjb25zdCBDb250ZW50VHlwZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZShNZWRpYVNvdXJjZUdTdHJlYW1lciopOwogICAgIHZp
cnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopOwotCi0gICAgdmlydHVhbCB2
b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwot
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCk7CisgICAgdm9pZCBjbGVhck1lZGlhU291cmNlKCkgeyBtX21lZGlhU291cmNl
ID0gbnVsbHB0cjsgfQogCi0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUpOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3Qg
dW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFk
eVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBmbHVzaEFuZEVucXVldWVOb25EaXNwbGF5aW5nU2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1l
ZGlhU2FtcGxlPj4sIEF0b21pY1N0cmluZyk7Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1w
bGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZyk7Ci0gICAgdmlydHVhbCBi
b29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmUoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVh
ZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaEFu
ZEVucXVldWVOb25EaXNwbGF5aW5nU2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2FtcGxlPj4s
IEF0b21pY1N0cmluZykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNT
dHJpbmcpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIENvbnRlbnRUeXBlIG1fdHlwZTsKLSAg
ICBSZWZQdHI8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI+IG1fY2xpZW50OworICAgIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIqKTsKKyAgICBmcmll
bmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXI7CisKKyAgICBNZWRpYVNvdXJjZUdT
dHJlYW1lciogbV9tZWRpYVNvdXJjZTsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBt
X3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ7CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
bV9yZWFkeVN0YXRlOwogfTsKLS0gCjIuMS4z
</data>

          </attachment>
      

    </bug>

</bugzilla>