<?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>166886</bug_id>
          
          <creation_ts>2017-01-10 03:35:17 -0800</creation_ts>
          <short_desc>[GStreamer] Use smart pointers and modernize code in WebKitWebAudioSourceGStreamer</short_desc>
          <delta_ts>2017-01-11 03:28:53 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1265327</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-10 03:35:17 -0800</bug_when>
    <thetext>While debugging bug #166884 I ended up cleaning up the code a bit to be able to follow it, and also made it use smart pointers to ensure we were not leaking refs/memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265328</commentid>
    <comment_count>1</comment_count>
      <attachid>298454</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-10 03:39:33 -0800</bug_when>
    <thetext>Created attachment 298454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265347</commentid>
    <comment_count>2</comment_count>
      <attachid>298454</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-01-10 06:19:10 -0800</bug_when>
    <thetext>Comment on attachment 298454
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        smart pointers, uses WTF::Vactor instead of GSList and simplifies the code to map/unmap GstBuffers.

WTF:Vector

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:353
&gt; +        auto&amp; buffer = channelBufferList[i];

Specify the type, please

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:362
&gt; +        auto&amp; appsrc = priv-&gt;sources[i];

Specify the type, please

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:403
&gt; +        src-&gt;priv-&gt;pool = adoptGRef(gst_buffer_pool_new());

gst_buffer_pool_new returns a floating reference. According to the defined adoptGRef for this time, this should trigger the ASSERT.

Not adopting is ok here.

Actually in line 221 a similar thing is done correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265348</commentid>
    <comment_count>3</comment_count>
      <attachid>298454</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-10 06:23:57 -0800</bug_when>
    <thetext>Comment on attachment 298454
Patch

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

&gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:353
&gt;&gt; +        auto&amp; buffer = channelBufferList[i];
&gt; 
&gt; Specify the type, please

why?

&gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:362
&gt;&gt; +        auto&amp; appsrc = priv-&gt;sources[i];
&gt; 
&gt; Specify the type, please

why?

&gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:403
&gt;&gt; +        src-&gt;priv-&gt;pool = adoptGRef(gst_buffer_pool_new());
&gt; 
&gt; gst_buffer_pool_new returns a floating reference. According to the defined adoptGRef for this time, this should trigger the ASSERT.
&gt; 
&gt; Not adopting is ok here.
&gt; 
&gt; Actually in line 221 a similar thing is done correctly.

Right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265714</commentid>
    <comment_count>4</comment_count>
      <attachid>298561</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-11 02:01:49 -0800</bug_when>
    <thetext>Created attachment 298561
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265715</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-01-11 02:19:54 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:353
&gt; &gt;&gt; +        auto&amp; buffer = channelBufferList[i];
&gt; &gt; 
&gt; &gt; Specify the type, please
&gt; 
&gt; why?
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:362
&gt; &gt;&gt; +        auto&amp; appsrc = priv-&gt;sources[i];
&gt; &gt; 
&gt; &gt; Specify the type, please
&gt; 
&gt; why?

Cause I thought it was better for readability, but given the latest discussions on -dev and -reviewers it does not matter anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265731</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-01-11 03:28:53 -0800</bug_when>
    <thetext>Committed r210584: &lt;http://trac.webkit.org/changeset/210584&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298454</attachid>
            <date>2017-01-10 03:39:33 -0800</date>
            <delta_ts>2017-01-11 02:01:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-clean-gst-webaudio.diff</filename>
            <type>text/plain</type>
            <size>16888</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMzFlYjdhNmZkZC4uYTRhZGNiOTZiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNy0wMS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gVXNlIHNtYXJ0IHBvaW50ZXJzIGFuZCBt
b2Rlcm5pemUgY29kZSBpbiBXZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2ODg2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0
IGNoYW5nZSB0aGUgYmVoYXZpb3IsIHNvIGl0J3MgY292ZXJlZCBieSBleGlzdGluZyBXZWIgQXVk
aW8gdGVzdHMuIEl0IHJlcGxhY2VzIHBvaW50ZXJzIHdpdGgKKyAgICAgICAgc21hcnQgcG9pbnRl
cnMsIHVzZXMgV1RGOjpWYWN0b3IgaW5zdGVhZCBvZiBHU0xpc3QgYW5kIHNpbXBsaWZpZXMgdGhl
IGNvZGUgdG8gbWFwL3VubWFwIEdzdEJ1ZmZlcnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1Ny
Y0ZpbmFsaXplKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6CisgICAgICAgICh3
ZWJLaXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXVEY6OmRlcmVmR1B0
cjxHc3RCdWZmZXJMaXN0Pik6CisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6CisgICAgICAgIChX
VEY6OnJlZkdQdHI8R3N0QnVmZmVyUG9vbD4pOgorICAgICAgICAoV1RGOjpkZXJlZkdQdHI8R3N0
QnVmZmVyUG9vbD4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVm
UHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXBHc3RCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6Y3JlYXRlUmVhZEJ1ZmZl
cik6CisKIDIwMTctMDEtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nlc3MgZnJvbSBXZWJLaXRHdGsrIDIuMTUuMiBT
SUdTRUdWcyBpbiBzdGQ6OnVuaXF1ZV9wdHI8U291cEJ1ZmZlciwgV1RGOjpHUHRyRGVsZXRlcjxT
b3VwQnVmZmVyPiA+OjpnZXQoKSBjb25zdCAoKSBhdCAvdXNyL2luY2x1ZGUvYysrLzYvYml0cy91
bmlxdWVfcHRyLmg6MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcAppbmRleCAxZmRlMDVkYzVlMy4uZmE3ODJmMjNmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNjAsMTIgKzYwLDE1IEBAIHN0
cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKICAgICBHUmVmUHRyPEdzdFRhc2s+
IHRhc2s7CiAgICAgR1JlY011dGV4IG11dGV4OwogCi0gICAgR1NMaXN0KiBzb3VyY2VzOyAvLyBM
aXN0IG9mIGFwcHNyYy4gT25lIGFwcHNyYyBmb3IgZWFjaCBwbGFuYXIgYXVkaW8gY2hhbm5lbC4K
LSAgICBHc3RQYWQqIHNvdXJjZVBhZDsgLy8gc3JjIHBhZCBvZiB0aGUgZWxlbWVudCwgaW50ZXJs
ZWF2ZWQgd2F2IGRhdGEgaXMgcHVzaGVkIHRvIGl0LgorICAgIC8vIExpc3Qgb2YgYXBwc3JjLiBP
bmUgYXBwc3JjIGZvciBlYWNoIHBsYW5hciBhdWRpbyBjaGFubmVsLgorICAgIFZlY3RvcjxHUmVm
UHRyPEdzdEVsZW1lbnQ+PiBzb3VyY2VzOworCisgICAgLy8gc3JjIHBhZCBvZiB0aGUgZWxlbWVu
dCwgaW50ZXJsZWF2ZWQgd2F2IGRhdGEgaXMgcHVzaGVkIHRvIGl0LgorICAgIEdzdFBhZCogc291
cmNlUGFkOwogCiAgICAgZ3VpbnQ2NCBudW1iZXJPZlNhbXBsZXM7CiAKLSAgICBHc3RCdWZmZXJQ
b29sKiBwb29sOworICAgIEdSZWZQdHI8R3N0QnVmZmVyUG9vbD4gcG9vbDsKIH07CiAKIGVudW0g
ewpAQCAtNzUsMTEgKzc4LDYgQEAgZW51bSB7CiAgICAgUFJPUF9GUkFNRVMKIH07CiAKLXR5cGVk
ZWYgc3RydWN0IHsKLSAgICBHc3RCdWZmZXIqIGJ1ZmZlcjsKLSAgICBHc3RNYXBJbmZvIGluZm87
Ci19IEF1ZGlvU3JjQnVmZmVyOwotCiBzdGF0aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc3JjVGVt
cGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgic3JjIiwKICAgICBHU1RfUEFEX1NSQywK
ICAgICBHU1RfUEFEX0FMV0FZUywKQEAgLTIyMCw3ICsyMTgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICAvLyBhcHBzcmMg
ISAuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQu
CiAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBwcml2
LT5idXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4KyspIHsKICAgICAgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gYXBwc3JjTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvU3JjJXUi
LCBjaGFubmVsSW5kZXgpKTsKLSAgICAgICAgR3N0RWxlbWVudCogYXBwc3JjID0gZ3N0X2VsZW1l
bnRfZmFjdG9yeV9tYWtlKCJhcHBzcmMiLCBhcHBzcmNOYW1lLmdldCgpKTsKKyAgICAgICAgR1Jl
ZlB0cjxHc3RFbGVtZW50PiBhcHBzcmMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNy
YyIsIGFwcHNyY05hbWUuZ2V0KCkpOwogICAgICAgICBHUmVmUHRyPEdzdENhcHM+IG1vbm9DYXBz
ID0gYWRvcHRHUmVmKGdldEdTdHJlYW1lck1vbm9BdWRpb0NhcHMocHJpdi0+c2FtcGxlUmF0ZSkp
OwogCiAgICAgICAgIEdzdEF1ZGlvSW5mbyBpbmZvOwpAQCAtMjI5LDE2ICsyMjcsMTUgQEAgc3Rh
dGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAg
ICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGFkb3B0R1JlZihnc3RfYXVkaW9faW5mb190
b19jYXBzKCZpbmZvKSk7CiAKICAgICAgICAgLy8gQ29uZmlndXJlIHRoZSBhcHBzcmMgZm9yIG1p
bmltYWwgbGF0ZW5jeS4KLSAgICAgICAgZ19vYmplY3Rfc2V0KGFwcHNyYywgIm1heC1ieXRlcyIs
IHN0YXRpY19jYXN0PGd1aW50NjQ+KDIgKiBwcml2LT5idWZmZXJTaXplKSwgImJsb2NrIiwgVFJV
RSwKKyAgICAgICAgZ19vYmplY3Rfc2V0KGFwcHNyYy5nZXQoKSwgIm1heC1ieXRlcyIsIHN0YXRp
Y19jYXN0PGd1aW50NjQ+KDIgKiBwcml2LT5idWZmZXJTaXplKSwgImJsb2NrIiwgVFJVRSwKICAg
ICAgICAgICAgICJibG9ja3NpemUiLCBwcml2LT5idWZmZXJTaXplLAogICAgICAgICAgICAgImZv
cm1hdCIsIEdTVF9GT1JNQVRfVElNRSwgImNhcHMiLCBjYXBzLmdldCgpLCBudWxscHRyKTsKIAot
ICAgICAgICBwcml2LT5zb3VyY2VzID0gZ19zbGlzdF9wcmVwZW5kKHByaXYtPnNvdXJjZXMsIGdz
dF9vYmplY3RfcmVmKGFwcHNyYykpOworICAgICAgICBwcml2LT5zb3VyY2VzLmFwcGVuZChhcHBz
cmMpOwogCi0gICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgYXBwc3JjKTsKLSAgICAg
ICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoYXBwc3JjLCAic3JjIiwgcHJpdi0+aW50ZXJs
ZWF2ZS5nZXQoKSwgInNpbmtfJXUiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAg
ICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgYXBwc3JjLmdldCgpKTsKKyAgICAgICAgZ3N0
X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoYXBwc3JjLmdldCgpLCAic3JjIiwgcHJpdi0+aW50ZXJs
ZWF2ZS5nZXQoKSwgInNpbmtfJXUiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CiAgICAg
fQotICAgIHByaXYtPnNvdXJjZXMgPSBnX3NsaXN0X3JldmVyc2UocHJpdi0+c291cmNlcyk7CiAK
ICAgICAvLyBpbnRlcmxlYXZlJ3Mgc3JjIHBhZCBpcyB0aGUgb25seSB2aXNpYmxlIHBhZCBvZiBv
dXIgZWxlbWVudC4KICAgICBHUmVmUHRyPEdzdFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdz
dF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHByaXYtPmludGVybGVhdmUuZ2V0KCksICJzcmMiKSk7
CkBAIC0yNTIsOCArMjQ5LDYgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNGaW5hbGl6
ZShHT2JqZWN0KiBvYmplY3QpCiAKICAgICBnX3JlY19tdXRleF9jbGVhcigmcHJpdi0+bXV0ZXgp
OwogCi0gICAgZ19zbGlzdF9mcmVlX2Z1bGwocHJpdi0+c291cmNlcywgcmVpbnRlcnByZXRfY2Fz
dDxHRGVzdHJveU5vdGlmeT4oZ3N0X29iamVjdF91bnJlZikpOwotCiAgICAgcHJpdi0+fldlYktp
dFdlYkF1ZGlvU291cmNlUHJpdmF0ZSgpOwogICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9D
TEFTUywgZmluYWxpemUsICgoR09iamVjdCogKShzcmMpKSk7CiB9CkBAIC0zMTksMjYgKzMxNCwx
OSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMq
IHNyYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIEFTU0VSVChwcml2LT5wb29sKTsK
ICAgICBHc3RDbG9ja1RpbWUgdGltZXN0YW1wID0gZ3N0X3V0aWxfdWludDY0X3NjYWxlKHByaXYt
Pm51bWJlck9mU2FtcGxlcywgR1NUX1NFQ09ORCwgcHJpdi0+c2FtcGxlUmF0ZSk7CiAgICAgcHJp
di0+bnVtYmVyT2ZTYW1wbGVzICs9IHByaXYtPmZyYW1lc1RvUHVsbDsKICAgICBHc3RDbG9ja1Rp
bWUgZHVyYXRpb24gPSBnc3RfdXRpbF91aW50NjRfc2NhbGUocHJpdi0+bnVtYmVyT2ZTYW1wbGVz
LCBHU1RfU0VDT05ELCBwcml2LT5zYW1wbGVSYXRlKSAtIHRpbWVzdGFtcDsKIAotICAgIEdTTGlz
dCogY2hhbm5lbEJ1ZmZlckxpc3QgPSAwOwotICAgIGZvciAoaW50IGkgPSBnX3NsaXN0X2xlbmd0
aChwcml2LT5zb3VyY2VzKSAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgIEF1ZGlvU3JjQnVm
ZmVyKiBidWZmZXIgPSBnX25ldyhBdWRpb1NyY0J1ZmZlciwgMSk7Ci0gICAgICAgIEdzdEJ1ZmZl
ciogY2hhbm5lbEJ1ZmZlcjsKLQotICAgICAgICBHc3RGbG93UmV0dXJuIHJldCA9IGdzdF9idWZm
ZXJfcG9vbF9hY3F1aXJlX2J1ZmZlcihwcml2LT5wb29sLCAmY2hhbm5lbEJ1ZmZlciwgbnVsbHB0
cik7Ci0KKyAgICBWZWN0b3I8R1JlZlB0cjxHc3RCdWZmZXI+PiBjaGFubmVsQnVmZmVyTGlzdDsK
KyAgICBjaGFubmVsQnVmZmVyTGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHByaXYtPnNvdXJj
ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJpdi0+c291cmNlcy5z
aXplKCk7ICsraSkgeworICAgICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gYnVmZmVyOworICAgICAg
ICBHc3RGbG93UmV0dXJuIHJldCA9IGdzdF9idWZmZXJfcG9vbF9hY3F1aXJlX2J1ZmZlcihwcml2
LT5wb29sLmdldCgpLCAmYnVmZmVyLm91dFB0cigpLCBudWxscHRyKTsKICAgICAgICAgaWYgKHJl
dCAhPSBHU1RfRkxPV19PSykgewotICAgICAgICAgICAgZ19mcmVlKGJ1ZmZlcik7Ci0gICAgICAg
ICAgICB3aGlsZSAoY2hhbm5lbEJ1ZmZlckxpc3QpIHsKLSAgICAgICAgICAgICAgICBidWZmZXIg
PSBzdGF0aWNfY2FzdDxBdWRpb1NyY0J1ZmZlcio+KGNoYW5uZWxCdWZmZXJMaXN0LT5kYXRhKTsK
LSAgICAgICAgICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlci0+YnVmZmVyLCAmYnVmZmVy
LT5pbmZvKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGJ1ZmZlci0+YnVmZmVy
KTsKLSAgICAgICAgICAgICAgICBnX2ZyZWUoYnVmZmVyKTsKLSAgICAgICAgICAgICAgICBjaGFu
bmVsQnVmZmVyTGlzdCA9IGdfc2xpc3RfZGVsZXRlX2xpbmsoY2hhbm5lbEJ1ZmZlckxpc3QsIGNo
YW5uZWxCdWZmZXJMaXN0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byYg
YnVmZmVyIDogY2hhbm5lbEJ1ZmZlckxpc3QpCisgICAgICAgICAgICAgICAgdW5tYXBHc3RCdWZm
ZXIoYnVmZmVyLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gRkxVU0hJTkcgYW5kIEVPUyBhcmUg
bm90IGVycm9ycy4KICAgICAgICAgICAgIGlmIChyZXQgPCBHU1RfRkxPV19FT1MgfHwgcmV0ID09
IEdTVF9GTE9XX05PVF9MSU5LRUQpCkBAIC0zNDcsNDcgKzMzNSw0MSBAQCBzdGF0aWMgdm9pZCB3
ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIEFTU0VSVChjaGFubmVsQnVmZmVyKTsKLSAg
ICAgICAgYnVmZmVyLT5idWZmZXIgPSBjaGFubmVsQnVmZmVyOwotICAgICAgICBHU1RfQlVGRkVS
X1RJTUVTVEFNUChjaGFubmVsQnVmZmVyKSA9IHRpbWVzdGFtcDsKLSAgICAgICAgR1NUX0JVRkZF
Ul9EVVJBVElPTihjaGFubmVsQnVmZmVyKSA9IGR1cmF0aW9uOwotICAgICAgICBnc3RfYnVmZmVy
X21hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVyLT5pbmZvLCAoR3N0TWFwRmxhZ3MpIEdTVF9NQVBf
UkVBRFdSSVRFKTsKLSAgICAgICAgcHJpdi0+YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50
ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXItPmluZm8uZGF0YSksIHByaXYtPmZyYW1lc1RvUHVs
bCk7Ci0gICAgICAgIGNoYW5uZWxCdWZmZXJMaXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxC
dWZmZXJMaXN0LCBidWZmZXIpOworICAgICAgICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgR1NU
X0JVRkZFUl9USU1FU1RBTVAoYnVmZmVyLmdldCgpKSA9IHRpbWVzdGFtcDsKKyAgICAgICAgR1NU
X0JVRkZFUl9EVVJBVElPTihidWZmZXIuZ2V0KCkpID0gZHVyYXRpb247CisgICAgICAgIG1hcEdz
dEJ1ZmZlcihidWZmZXIuZ2V0KCksIEdTVF9NQVBfUkVBRFdSSVRFKTsKKyAgICAgICAgcHJpdi0+
YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihnZXRHc3RC
dWZmZXJEYXRhUG9pbnRlcihidWZmZXIuZ2V0KCkpKSwgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAg
ICAgICAgY2hhbm5lbEJ1ZmZlckxpc3QudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoYnVmZmVyKSk7
CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2NhbC9saXZlIGF1ZGlv
IGlucHV0LgogICAgIHByaXYtPnByb3ZpZGVyLT5yZW5kZXIoMCwgcHJpdi0+YnVzLCBwcml2LT5m
cmFtZXNUb1B1bGwpOwogCi0gICAgR1NMaXN0KiBzb3VyY2VzSXQgPSBwcml2LT5zb3VyY2VzOwot
ICAgIEdTTGlzdCogYnVmZmVyc0l0ID0gY2hhbm5lbEJ1ZmZlckxpc3Q7Ci0KLSAgICBHc3RGbG93
UmV0dXJuIHJldCA9IEdTVF9GTE9XX09LOwotICAgIGZvciAoaW50IGkgPSAwOyBzb3VyY2VzSXQg
JiYgYnVmZmVyc0l0OyBzb3VyY2VzSXQgPSBnX3NsaXN0X25leHQoc291cmNlc0l0KSwgYnVmZmVy
c0l0ID0gZ19zbGlzdF9uZXh0KGJ1ZmZlcnNJdCksICsraSkgewotICAgICAgICBHc3RFbGVtZW50
KiBhcHBzcmMgPSBzdGF0aWNfY2FzdDxHc3RFbGVtZW50Kj4oc291cmNlc0l0LT5kYXRhKTsKLSAg
ICAgICAgQXVkaW9TcmNCdWZmZXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PEF1ZGlvU3JjQnVmZmVy
Kj4oYnVmZmVyc0l0LT5kYXRhKTsKLSAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVmZmVyID0g
YnVmZmVyLT5idWZmZXI7Ci0KKyAgICBBU1NFUlQoY2hhbm5lbEJ1ZmZlckxpc3Quc2l6ZSgpID09
IHByaXYtPnNvdXJjZXMuc2l6ZSgpKTsKKyAgICBib29sIGZhaWxlZCA9IGZhbHNlOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcml2LT5zb3VyY2VzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIC8vIFVubWFwIGJlZm9yZSBwYXNzaW5nIG9uIHRoZSBidWZmZXIuCi0gICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoY2hhbm5lbEJ1ZmZlciwgJmJ1ZmZlci0+aW5mbyk7Ci0gICAgICAgIGdfZnJl
ZShidWZmZXIpOworICAgICAgICBhdXRvJiBidWZmZXIgPSBjaGFubmVsQnVmZmVyTGlzdFtpXTsK
KyAgICAgICAgdW5tYXBHc3RCdWZmZXIoYnVmZmVyLmdldCgpKTsKKworICAgICAgICBpZiAoZmFp
bGVkKQorICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKHByaXYtPmJ1cy0+Y2hh
bm5lbChpKS0+aXNTaWxlbnQoKSkKLSAgICAgICAgICAgIEdTVF9CVUZGRVJfRkxBR19TRVQoY2hh
bm5lbEJ1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0dBUCk7Ci0KLSAgICAgICAgaWYgKHJldCA9PSBH
U1RfRkxPV19PSykgewotICAgICAgICAgICAgcmV0ID0gZ3N0X2FwcF9zcmNfcHVzaF9idWZmZXIo
R1NUX0FQUF9TUkMoYXBwc3JjKSwgY2hhbm5lbEJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAocmV0
ICE9IEdTVF9GTE9XX09LKSB7Ci0gICAgICAgICAgICAgICAgLy8gRkxVU0hJTkcgYW5kIEVPUyBh
cmUgbm90IGVycm9ycy4KLSAgICAgICAgICAgICAgICBpZiAocmV0IDwgR1NUX0ZMT1dfRU9TIHx8
IHJldCA9PSBHU1RfRkxPV19OT1RfTElOS0VEKQotICAgICAgICAgICAgICAgICAgICBHU1RfRUxF
TUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJBdWRpb1NyYyBlcnJvciIp
LCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAlcyBmbG93OiAlcyIsIEdTVF9PQkpFQ1RfTkFN
RShhcHBzcmMpLCBnc3RfZmxvd19nZXRfbmFtZShyZXQpKSk7Ci0gICAgICAgICAgICAgICAgZ3N0
X3Rhc2tfc3RvcChzcmMtPnByaXYtPnRhc2suZ2V0KCkpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoY2hhbm5lbEJ1ZmZlcik7Ci0g
ICAgfQorICAgICAgICAgICAgR1NUX0JVRkZFUl9GTEFHX1NFVChidWZmZXIuZ2V0KCksIEdTVF9C
VUZGRVJfRkxBR19HQVApOwogCi0gICAgZ19zbGlzdF9mcmVlKGNoYW5uZWxCdWZmZXJMaXN0KTsK
KyAgICAgICAgYXV0byYgYXBwc3JjID0gcHJpdi0+c291cmNlc1tpXTsKKyAgICAgICAgLy8gTGVh
ayB0aGUgYnVmZmVyIHJlZiwgYmVjYXVzZSBnc3RfYXBwX3NyY19wdXNoX2J1ZmZlciBzdGVhbHMg
aXQuCisgICAgICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0gZ3N0X2FwcF9zcmNfcHVzaF9idWZmZXIo
R1NUX0FQUF9TUkMoYXBwc3JjLmdldCgpKSwgYnVmZmVyLmxlYWtSZWYoKSk7CisgICAgICAgIGlm
IChyZXQgIT0gR1NUX0ZMT1dfT0spIHsKKyAgICAgICAgICAgIC8vIEZMVVNISU5HIGFuZCBFT1Mg
YXJlIG5vdCBlcnJvcnMuCisgICAgICAgICAgICBpZiAocmV0IDwgR1NUX0ZMT1dfRU9TIHx8IHJl
dCA9PSBHU1RfRkxPV19OT1RfTElOS0VEKQorICAgICAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VS
Uk9SKHNyYywgQ09SRSwgUEFELCAoIkludGVybmFsIFdlYkF1ZGlvU3JjIGVycm9yIiksICgiRmFp
bGVkIHRvIHB1c2ggYnVmZmVyIG9uICVzIGZsb3c6ICVzIiwgR1NUX09CSkVDVF9OQU1FKGFwcHNy
Yy5nZXQoKSksIGdzdF9mbG93X2dldF9uYW1lKHJldCkpKTsKKyAgICAgICAgICAgIGdzdF90YXNr
X3N0b3Aoc3JjLT5wcml2LT50YXNrLmdldCgpKTsKKyAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJL
aXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXRlQ2hh
bmdlIHRyYW5zaXRpb24pCkBAIC00MTcsMTEgKzM5OSwxMiBAQCBzdGF0aWMgR3N0U3RhdGVDaGFu
Z2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50
LCBHcwogICAgIHN3aXRjaCAodHJhbnNpdGlvbikgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5H
RV9SRUFEWV9UT19QQVVTRUQ6IHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSRUFE
WS0+UEFVU0VEIik7Ci0gICAgICAgIHNyYy0+cHJpdi0+cG9vbCA9IGdzdF9idWZmZXJfcG9vbF9u
ZXcoKTsKLSAgICAgICAgR3N0U3RydWN0dXJlKiBjb25maWcgPSBnc3RfYnVmZmVyX3Bvb2xfZ2V0
X2NvbmZpZyhzcmMtPnByaXYtPnBvb2wpOworCisgICAgICAgIHNyYy0+cHJpdi0+cG9vbCA9IGFk
b3B0R1JlZihnc3RfYnVmZmVyX3Bvb2xfbmV3KCkpOworICAgICAgICBHc3RTdHJ1Y3R1cmUqIGNv
bmZpZyA9IGdzdF9idWZmZXJfcG9vbF9nZXRfY29uZmlnKHNyYy0+cHJpdi0+cG9vbC5nZXQoKSk7
CiAgICAgICAgIGdzdF9idWZmZXJfcG9vbF9jb25maWdfc2V0X3BhcmFtcyhjb25maWcsIG51bGxw
dHIsIHNyYy0+cHJpdi0+YnVmZmVyU2l6ZSwgMCwgMCk7Ci0gICAgICAgIGdzdF9idWZmZXJfcG9v
bF9zZXRfY29uZmlnKHNyYy0+cHJpdi0+cG9vbCwgY29uZmlnKTsKLSAgICAgICAgaWYgKCFnc3Rf
YnVmZmVyX3Bvb2xfc2V0X2FjdGl2ZShzcmMtPnByaXYtPnBvb2wsIFRSVUUpKQorICAgICAgICBn
c3RfYnVmZmVyX3Bvb2xfc2V0X2NvbmZpZyhzcmMtPnByaXYtPnBvb2wuZ2V0KCksIGNvbmZpZyk7
CisgICAgICAgIGlmICghZ3N0X2J1ZmZlcl9wb29sX3NldF9hY3RpdmUoc3JjLT5wcml2LT5wb29s
LmdldCgpLCBUUlVFKSkKICAgICAgICAgICAgIHJldHVyblZhbHVlID0gR1NUX1NUQVRFX0NIQU5H
RV9GQUlMVVJFOwogICAgICAgICBlbHNlIGlmICghZ3N0X3Rhc2tfc3RhcnQoc3JjLT5wcml2LT50
YXNrLmdldCgpKSkKICAgICAgICAgICAgIHJldHVyblZhbHVlID0gR1NUX1NUQVRFX0NIQU5HRV9G
QUlMVVJFOwpAQCAtNDI5LDEzICs0MTIsMTMgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJu
IHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3MKICAg
ICB9CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChzcmMsICJQQVVTRUQtPlJFQURZIik7CisKICNpZiBHU1RfQ0hFQ0tf
VkVSU0lPTigxLCA0LCAwKQotICAgICAgICBnc3RfYnVmZmVyX3Bvb2xfc2V0X2ZsdXNoaW5nKHNy
Yy0+cHJpdi0+cG9vbCwgVFJVRSk7CisgICAgICAgIGdzdF9idWZmZXJfcG9vbF9zZXRfZmx1c2hp
bmcoc3JjLT5wcml2LT5wb29sLmdldCgpLCBUUlVFKTsKICNlbmRpZgogICAgICAgICBpZiAoIWdz
dF90YXNrX2pvaW4oc3JjLT5wcml2LT50YXNrLmdldCgpKSkKICAgICAgICAgICAgIHJldHVyblZh
bHVlID0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOwotICAgICAgICBnc3RfYnVmZmVyX3Bvb2xf
c2V0X2FjdGl2ZShzcmMtPnByaXYtPnBvb2wsIEZBTFNFKTsKLSAgICAgICAgZ3N0X29iamVjdF91
bnJlZihzcmMtPnByaXYtPnBvb2wpOworICAgICAgICBnc3RfYnVmZmVyX3Bvb2xfc2V0X2FjdGl2
ZShzcmMtPnByaXYtPnBvb2wuZ2V0KCksIEZBTFNFKTsKICAgICAgICAgc3JjLT5wcml2LT5wb29s
ID0gbnVsbHB0cjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmNwcAppbmRleCAyMzcyMjQzYzM0Zi4uMjMxOTBmMDJmNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5jcHAKQEAgLTIyMSw2ICsyMjEsMjYgQEAgdGVtcGxhdGU8PiB2b2lk
IGRlcmVmR1B0cjxHc3RCdWZmZXJMaXN0PihHc3RCdWZmZXJMaXN0KiBwdHIpCiAgICAgICAgIGdz
dF9idWZmZXJfbGlzdF91bnJlZihwdHIpOwogfQogCit0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0QnVm
ZmVyUG9vbD4gYWRvcHRHUmVmKEdzdEJ1ZmZlclBvb2wqIHB0cikKK3sKKyAgICBBU1NFUlQoIXB0
ciB8fCAhZ19vYmplY3RfaXNfZmxvYXRpbmcocHRyKSk7CisgICAgcmV0dXJuIEdSZWZQdHI8R3N0
QnVmZmVyUG9vbD4ocHRyLCBHUmVmUHRyQWRvcHQpOworfQorCit0ZW1wbGF0ZTw+IEdzdEJ1ZmZl
clBvb2wqIHJlZkdQdHI8R3N0QnVmZmVyUG9vbD4oR3N0QnVmZmVyUG9vbCogcHRyKQoreworICAg
IGlmIChwdHIpCisgICAgICAgIGdzdF9vYmplY3RfcmVmX3NpbmsoR1NUX09CSkVDVChwdHIpKTsK
KworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8R3N0QnVm
ZmVyUG9vbD4oR3N0QnVmZmVyUG9vbCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdz
dF9vYmplY3RfdW5yZWYocHRyKTsKK30KKwogdGVtcGxhdGU8PiBHUmVmUHRyPEdzdFNhbXBsZT4g
YWRvcHRHUmVmKEdzdFNhbXBsZSogcHRyKQogewogICAgIHJldHVybiBHUmVmUHRyPEdzdFNhbXBs
ZT4ocHRyLCBHUmVmUHRyQWRvcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKaW5kZXggMWEz
MzZjYzMyOTguLjlmOWJiNmQxNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKQEAgLTMz
LDYgKzMzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dzdEJ1cyBHc3RCdXM7CiB0eXBlZGVmIHN0cnVj
dCBfR3N0RWxlbWVudEZhY3RvcnkgR3N0RWxlbWVudEZhY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBf
R3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXJMaXN0IEdzdEJ1
ZmZlckxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyUG9vbCBHc3RCdWZmZXJQb29sOwog
dHlwZWRlZiBzdHJ1Y3QgX0dzdFNhbXBsZSBHc3RTYW1wbGU7CiB0eXBlZGVmIHN0cnVjdCBfR3N0
VGFnTGlzdCBHc3RUYWdMaXN0OwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEV2ZW50IEdzdEV2ZW50OwpA
QCAtODMsNiArODQsMTAgQEAgdGVtcGxhdGU8PiBHUmVmUHRyPEdzdEJ1ZmZlckxpc3Q+IGFkb3B0
R1JlZihHc3RCdWZmZXJMaXN0Kik7CiB0ZW1wbGF0ZTw+IEdzdEJ1ZmZlckxpc3QqIHJlZkdQdHI8
R3N0QnVmZmVyTGlzdD4oR3N0QnVmZmVyTGlzdCopOwogdGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0
cjxHc3RCdWZmZXJMaXN0PihHc3RCdWZmZXJMaXN0Kik7CiAKK3RlbXBsYXRlPD4gR1JlZlB0cjxH
c3RCdWZmZXJQb29sPiBhZG9wdEdSZWYoR3N0QnVmZmVyUG9vbCopOwordGVtcGxhdGU8PiBHc3RC
dWZmZXJQb29sKiByZWZHUHRyPEdzdEJ1ZmZlclBvb2w+KEdzdEJ1ZmZlclBvb2wqKTsKK3RlbXBs
YXRlPD4gdm9pZCBkZXJlZkdQdHI8R3N0QnVmZmVyUG9vbD4oR3N0QnVmZmVyUG9vbCopOworCiB0
ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0U2FtcGxlPiBhZG9wdEdSZWYoR3N0U2FtcGxlKiBwdHIpOwog
dGVtcGxhdGU8PiBHc3RTYW1wbGUqIHJlZkdQdHI8R3N0U2FtcGxlPihHc3RTYW1wbGUqIHB0cik7
CiB0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRyPEdzdFNhbXBsZT4oR3N0U2FtcGxlKiBwdHIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmNwcAppbmRleCBmNzExMjNiMzFkYS4uOWM0OWZk
OGU1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuY3BwCkBAIC0xMjAsMTcgKzEy
MCwxNyBAQCBjaGFyKiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihHc3RCdWZmZXIqIGJ1ZmZlcikK
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWFwSW5mby0+ZGF0YSk7CiB9CiAK
LXZvaWQgbWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciogYnVmZmVyKQordm9pZCBtYXBHc3RCdWZmZXIo
R3N0QnVmZmVyKiBidWZmZXIsIHVpbnQzMl90IGZsYWdzKQogewogICAgIEdzdE1hcEluZm8qIG1h
cEluZm8gPSBzdGF0aWNfY2FzdDxHc3RNYXBJbmZvKj4oZmFzdE1hbGxvYyhzaXplb2YoR3N0TWFw
SW5mbykpKTsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgbWFwSW5mbywgR1NUX01B
UF9XUklURSkpIHsKKyAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgbWFwSW5mbywgc3Rh
dGljX2Nhc3Q8R3N0TWFwRmxhZ3M+KGZsYWdzKSkpIHsKICAgICAgICAgZmFzdEZyZWUobWFwSW5m
byk7CiAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoYnVmZmVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIEdzdE1pbmlPYmplY3QqIG1pbmlPYmplY3QgPSByZWludGVycHJldF9jYXN0
PEdzdE1pbmlPYmplY3QqPihidWZmZXIpOwotICAgIGdzdF9taW5pX29iamVjdF9zZXRfcWRhdGEo
bWluaU9iamVjdCwgZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcod2Via2l0R3N0TWFwSW5mb1F1
YXJrU3RyaW5nKSwgbWFwSW5mbywgMCk7CisgICAgZ3N0X21pbmlfb2JqZWN0X3NldF9xZGF0YSht
aW5pT2JqZWN0LCBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyh3ZWJraXRHc3RNYXBJbmZvUXVh
cmtTdHJpbmcpLCBtYXBJbmZvLCBudWxscHRyKTsKIH0KIAogdm9pZCB1bm1hcEdzdEJ1ZmZlcihH
c3RCdWZmZXIqIGJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaAppbmRleCBlYjJm
NzdjYWYzZS4uZjc5YThjZjZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRpbGl0aWVzLmgKQEAg
LTU4LDcgKzU4LDcgQEAgYm9vbCBnZXRTYW1wbGVWaWRlb0luZm8oR3N0U2FtcGxlKiwgR3N0Vmlk
ZW9JbmZvJik7CiBHc3RCdWZmZXIqIGNyZWF0ZUdzdEJ1ZmZlcihHc3RCdWZmZXIqKTsKIEdzdEJ1
ZmZlciogY3JlYXRlR3N0QnVmZmVyRm9yRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
KTsKIGNoYXIqIGdldEdzdEJ1ZmZlckRhdGFQb2ludGVyKEdzdEJ1ZmZlciopOwotdm9pZCBtYXBH
c3RCdWZmZXIoR3N0QnVmZmVyKik7Cit2b2lkIG1hcEdzdEJ1ZmZlcihHc3RCdWZmZXIqLCB1aW50
MzJfdCk7CiB2b2lkIHVubWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwogYm9vbCBpbml0aWFsaXpl
R1N0cmVhbWVyKCk7CiB1bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25zdCBjaGFyKiBuaWNrKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGRhNGE4
ODU3M2IuLjJhN2Y4OWViMGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmNwcApAQCAtODY1LDcgKzg2NSw3IEBAIGNoYXIqIFN0cmVhbWluZ0NsaWVudDo6Y3Jl
YXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplCiAK
ICAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyhyZXF1ZXN0
ZWRTaXplKTsKIAotICAgIG1hcEdzdEJ1ZmZlcihidWZmZXIpOworICAgIG1hcEdzdEJ1ZmZlcihi
dWZmZXIsIEdTVF9NQVBfV1JJVEUpOwogCiAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBs
b2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAgICAgcHJpdi0+YnVmZmVyID0gYWRv
cHRHUmVmKGJ1ZmZlcik7Cg==
</data>
<flag name="review"
          id="320608"
          type_id="1"
          status="-"
          setter="calvaris"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298561</attachid>
            <date>2017-01-11 02:01:49 -0800</date>
            <delta_ts>2017-01-11 03:00:59 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-gst-webaudio-cleanup.diff</filename>
            <type>text/plain</type>
            <size>16536</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiYTY0OGNhZTQxYS4uMGE2YmExNDA4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNy0wMS0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gVXNlIHNtYXJ0IHBvaW50ZXJzIGFuZCBt
b2Rlcm5pemUgY29kZSBpbiBXZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2ODg2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0
IGNoYW5nZSB0aGUgYmVoYXZpb3IsIHNvIGl0J3MgY292ZXJlZCBieSBleGlzdGluZyBXZWIgQXVk
aW8gdGVzdHMuIEl0IHJlcGxhY2VzIHBvaW50ZXJzIHdpdGgKKyAgICAgICAgc21hcnQgcG9pbnRl
cnMsIHVzZXMgV1RGOjpWZWN0b3IgaW5zdGVhZCBvZiBHU0xpc3QgYW5kIHNpbXBsaWZpZXMgdGhl
IGNvZGUgdG8gbWFwL3VubWFwIEdzdEJ1ZmZlcnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
d2ViS2l0V2ViQXVkaW9TcmNDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRpb1Ny
Y0ZpbmFsaXplKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6CisgICAgICAgICh3
ZWJLaXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXVEY6OmRlcmVmR1B0
cjxHc3RCdWZmZXJMaXN0Pik6CisgICAgICAgIChXVEY6OmFkb3B0R1JlZik6CisgICAgICAgIChX
VEY6OnJlZkdQdHI8R3N0QnVmZmVyUG9vbD4pOgorICAgICAgICAoV1RGOjpkZXJlZkdQdHI8R3N0
QnVmZmVyUG9vbD4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVm
UHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXBHc3RCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6Y3JlYXRlUmVhZEJ1ZmZl
cik6CisKIDIwMTctMDEtMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODI5NDcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9T
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBhY2E2YjVjNTVlMS4u
OTk1ZWY5NzFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtNjAsMTIgKzYwLDE1IEBAIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQ
cml2YXRlIHsKICAgICBHUmVmUHRyPEdzdFRhc2s+IHRhc2s7CiAgICAgR1JlY011dGV4IG11dGV4
OwogCi0gICAgR1NMaXN0KiBzb3VyY2VzOyAvLyBMaXN0IG9mIGFwcHNyYy4gT25lIGFwcHNyYyBm
b3IgZWFjaCBwbGFuYXIgYXVkaW8gY2hhbm5lbC4KLSAgICBHc3RQYWQqIHNvdXJjZVBhZDsgLy8g
c3JjIHBhZCBvZiB0aGUgZWxlbWVudCwgaW50ZXJsZWF2ZWQgd2F2IGRhdGEgaXMgcHVzaGVkIHRv
IGl0LgorICAgIC8vIExpc3Qgb2YgYXBwc3JjLiBPbmUgYXBwc3JjIGZvciBlYWNoIHBsYW5hciBh
dWRpbyBjaGFubmVsLgorICAgIFZlY3RvcjxHUmVmUHRyPEdzdEVsZW1lbnQ+PiBzb3VyY2VzOwor
CisgICAgLy8gc3JjIHBhZCBvZiB0aGUgZWxlbWVudCwgaW50ZXJsZWF2ZWQgd2F2IGRhdGEgaXMg
cHVzaGVkIHRvIGl0LgorICAgIEdzdFBhZCogc291cmNlUGFkOwogCiAgICAgZ3VpbnQ2NCBudW1i
ZXJPZlNhbXBsZXM7CiAKLSAgICBHc3RCdWZmZXJQb29sKiBwb29sOworICAgIEdSZWZQdHI8R3N0
QnVmZmVyUG9vbD4gcG9vbDsKIH07CiAKIGVudW0gewpAQCAtNzUsMTEgKzc4LDYgQEAgZW51bSB7
CiAgICAgUFJPUF9GUkFNRVMKIH07CiAKLXR5cGVkZWYgc3RydWN0IHsKLSAgICBHc3RCdWZmZXIq
IGJ1ZmZlcjsKLSAgICBHc3RNYXBJbmZvIGluZm87Ci19IEF1ZGlvU3JjQnVmZmVyOwotCiBzdGF0
aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc3JjVGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1Q
TEFURSgic3JjIiwKICAgICBHU1RfUEFEX1NSQywKICAgICBHU1RfUEFEX0FMV0FZUywKQEAgLTIy
MCw3ICsyMTgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdP
YmplY3QqIG9iamVjdCkKICAgICAvLyBhcHBzcmMgISAuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBu
ZXcgaW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCiAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVs
SW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBwcml2LT5idXMtPm51bWJlck9mQ2hhbm5lbHMoKTsg
Y2hhbm5lbEluZGV4KyspIHsKICAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gYXBwc3JjTmFtZShn
X3N0cmR1cF9wcmludGYoIndlYmF1ZGlvU3JjJXUiLCBjaGFubmVsSW5kZXgpKTsKLSAgICAgICAg
R3N0RWxlbWVudCogYXBwc3JjID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhcHBzcmMiLCBh
cHBzcmNOYW1lLmdldCgpKTsKKyAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBhcHBzcmMgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNyYyIsIGFwcHNyY05hbWUuZ2V0KCkpOwogICAg
ICAgICBHUmVmUHRyPEdzdENhcHM+IG1vbm9DYXBzID0gYWRvcHRHUmVmKGdldEdTdHJlYW1lck1v
bm9BdWRpb0NhcHMocHJpdi0+c2FtcGxlUmF0ZSkpOwogCiAgICAgICAgIEdzdEF1ZGlvSW5mbyBp
bmZvOwpAQCAtMjI5LDE2ICsyMjcsMTUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmND
b25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2Fw
cyA9IGFkb3B0R1JlZihnc3RfYXVkaW9faW5mb190b19jYXBzKCZpbmZvKSk7CiAKICAgICAgICAg
Ly8gQ29uZmlndXJlIHRoZSBhcHBzcmMgZm9yIG1pbmltYWwgbGF0ZW5jeS4KLSAgICAgICAgZ19v
YmplY3Rfc2V0KGFwcHNyYywgIm1heC1ieXRlcyIsIHN0YXRpY19jYXN0PGd1aW50NjQ+KDIgKiBw
cml2LT5idWZmZXJTaXplKSwgImJsb2NrIiwgVFJVRSwKKyAgICAgICAgZ19vYmplY3Rfc2V0KGFw
cHNyYy5nZXQoKSwgIm1heC1ieXRlcyIsIHN0YXRpY19jYXN0PGd1aW50NjQ+KDIgKiBwcml2LT5i
dWZmZXJTaXplKSwgImJsb2NrIiwgVFJVRSwKICAgICAgICAgICAgICJibG9ja3NpemUiLCBwcml2
LT5idWZmZXJTaXplLAogICAgICAgICAgICAgImZvcm1hdCIsIEdTVF9GT1JNQVRfVElNRSwgImNh
cHMiLCBjYXBzLmdldCgpLCBudWxscHRyKTsKIAotICAgICAgICBwcml2LT5zb3VyY2VzID0gZ19z
bGlzdF9wcmVwZW5kKHByaXYtPnNvdXJjZXMsIGdzdF9vYmplY3RfcmVmKGFwcHNyYykpOworICAg
ICAgICBwcml2LT5zb3VyY2VzLmFwcGVuZChhcHBzcmMpOwogCi0gICAgICAgIGdzdF9iaW5fYWRk
KEdTVF9CSU4oc3JjKSwgYXBwc3JjKTsKLSAgICAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1
bGwoYXBwc3JjLCAic3JjIiwgcHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgInNpbmtfJXUiLCBHU1Rf
UEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3Jj
KSwgYXBwc3JjLmdldCgpKTsKKyAgICAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoYXBw
c3JjLmdldCgpLCAic3JjIiwgcHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgInNpbmtfJXUiLCBHU1Rf
UEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CiAgICAgfQotICAgIHByaXYtPnNvdXJjZXMgPSBnX3Ns
aXN0X3JldmVyc2UocHJpdi0+c291cmNlcyk7CiAKICAgICAvLyBpbnRlcmxlYXZlJ3Mgc3JjIHBh
ZCBpcyB0aGUgb25seSB2aXNpYmxlIHBhZCBvZiBvdXIgZWxlbWVudC4KICAgICBHUmVmUHRyPEdz
dFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHBy
aXYtPmludGVybGVhdmUuZ2V0KCksICJzcmMiKSk7CkBAIC0yNTIsOCArMjQ5LDYgQEAgc3RhdGlj
IHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAKICAgICBn
X3JlY19tdXRleF9jbGVhcigmcHJpdi0+bXV0ZXgpOwogCi0gICAgZ19zbGlzdF9mcmVlX2Z1bGwo
cHJpdi0+c291cmNlcywgcmVpbnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oZ3N0X29iamVj
dF91bnJlZikpOwotCiAgICAgcHJpdi0+fldlYktpdFdlYkF1ZGlvU291cmNlUHJpdmF0ZSgpOwog
ICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9DTEFTUywgZmluYWxpemUsICgoR09iamVjdCog
KShzcmMpKSk7CiB9CkBAIC0zMTksMjYgKzMxNCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJB
dWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIEFTU0VSVChwcml2LT5wb29sKTsKICAgICBHc3RDbG9ja1RpbWUgdGltZXN0YW1w
ID0gZ3N0X3V0aWxfdWludDY0X3NjYWxlKHByaXYtPm51bWJlck9mU2FtcGxlcywgR1NUX1NFQ09O
RCwgcHJpdi0+c2FtcGxlUmF0ZSk7CiAgICAgcHJpdi0+bnVtYmVyT2ZTYW1wbGVzICs9IHByaXYt
PmZyYW1lc1RvUHVsbDsKICAgICBHc3RDbG9ja1RpbWUgZHVyYXRpb24gPSBnc3RfdXRpbF91aW50
NjRfc2NhbGUocHJpdi0+bnVtYmVyT2ZTYW1wbGVzLCBHU1RfU0VDT05ELCBwcml2LT5zYW1wbGVS
YXRlKSAtIHRpbWVzdGFtcDsKIAotICAgIEdTTGlzdCogY2hhbm5lbEJ1ZmZlckxpc3QgPSAwOwot
ICAgIGZvciAoaW50IGkgPSBnX3NsaXN0X2xlbmd0aChwcml2LT5zb3VyY2VzKSAtIDE7IGkgPj0g
MDsgaS0tKSB7Ci0gICAgICAgIEF1ZGlvU3JjQnVmZmVyKiBidWZmZXIgPSBnX25ldyhBdWRpb1Ny
Y0J1ZmZlciwgMSk7Ci0gICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlcjsKLQotICAgICAg
ICBHc3RGbG93UmV0dXJuIHJldCA9IGdzdF9idWZmZXJfcG9vbF9hY3F1aXJlX2J1ZmZlcihwcml2
LT5wb29sLCAmY2hhbm5lbEJ1ZmZlciwgbnVsbHB0cik7Ci0KKyAgICBWZWN0b3I8R1JlZlB0cjxH
c3RCdWZmZXI+PiBjaGFubmVsQnVmZmVyTGlzdDsKKyAgICBjaGFubmVsQnVmZmVyTGlzdC5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHByaXYtPnNvdXJjZXMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcHJpdi0+c291cmNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBHUmVm
UHRyPEdzdEJ1ZmZlcj4gYnVmZmVyOworICAgICAgICBHc3RGbG93UmV0dXJuIHJldCA9IGdzdF9i
dWZmZXJfcG9vbF9hY3F1aXJlX2J1ZmZlcihwcml2LT5wb29sLmdldCgpLCAmYnVmZmVyLm91dFB0
cigpLCBudWxscHRyKTsKICAgICAgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSykgewotICAgICAg
ICAgICAgZ19mcmVlKGJ1ZmZlcik7Ci0gICAgICAgICAgICB3aGlsZSAoY2hhbm5lbEJ1ZmZlckxp
c3QpIHsKLSAgICAgICAgICAgICAgICBidWZmZXIgPSBzdGF0aWNfY2FzdDxBdWRpb1NyY0J1ZmZl
cio+KGNoYW5uZWxCdWZmZXJMaXN0LT5kYXRhKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVmZmVy
X3VubWFwKGJ1ZmZlci0+YnVmZmVyLCAmYnVmZmVyLT5pbmZvKTsKLSAgICAgICAgICAgICAgICBn
c3RfYnVmZmVyX3VucmVmKGJ1ZmZlci0+YnVmZmVyKTsKLSAgICAgICAgICAgICAgICBnX2ZyZWUo
YnVmZmVyKTsKLSAgICAgICAgICAgICAgICBjaGFubmVsQnVmZmVyTGlzdCA9IGdfc2xpc3RfZGVs
ZXRlX2xpbmsoY2hhbm5lbEJ1ZmZlckxpc3QsIGNoYW5uZWxCdWZmZXJMaXN0KTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byYgYnVmZmVyIDogY2hhbm5lbEJ1ZmZlckxpc3Qp
CisgICAgICAgICAgICAgICAgdW5tYXBHc3RCdWZmZXIoYnVmZmVyLmdldCgpKTsKIAogICAgICAg
ICAgICAgLy8gRkxVU0hJTkcgYW5kIEVPUyBhcmUgbm90IGVycm9ycy4KICAgICAgICAgICAgIGlm
IChyZXQgPCBHU1RfRkxPV19FT1MgfHwgcmV0ID09IEdTVF9GTE9XX05PVF9MSU5LRUQpCkBAIC0z
NDcsNDQgKzMzNSwzOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0
V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIEFTU0VSVChjaGFubmVsQnVmZmVyKTsKLSAgICAgICAgYnVmZmVyLT5idWZmZXIgPSBjaGFu
bmVsQnVmZmVyOwotICAgICAgICBHU1RfQlVGRkVSX1RJTUVTVEFNUChjaGFubmVsQnVmZmVyKSA9
IHRpbWVzdGFtcDsKLSAgICAgICAgR1NUX0JVRkZFUl9EVVJBVElPTihjaGFubmVsQnVmZmVyKSA9
IGR1cmF0aW9uOwotICAgICAgICBnc3RfYnVmZmVyX21hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVy
LT5pbmZvLCAoR3N0TWFwRmxhZ3MpIEdTVF9NQVBfUkVBRFdSSVRFKTsKLSAgICAgICAgcHJpdi0+
YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXIt
PmluZm8uZGF0YSksIHByaXYtPmZyYW1lc1RvUHVsbCk7Ci0gICAgICAgIGNoYW5uZWxCdWZmZXJM
aXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBidWZmZXIpOworICAgICAg
ICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgR1NUX0JVRkZFUl9USU1FU1RBTVAoYnVmZmVyLmdl
dCgpKSA9IHRpbWVzdGFtcDsKKyAgICAgICAgR1NUX0JVRkZFUl9EVVJBVElPTihidWZmZXIuZ2V0
KCkpID0gZHVyYXRpb247CisgICAgICAgIG1hcEdzdEJ1ZmZlcihidWZmZXIuZ2V0KCksIEdTVF9N
QVBfUkVBRFdSSVRFKTsKKyAgICAgICAgcHJpdi0+YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJl
aW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihidWZmZXIuZ2V0
KCkpKSwgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAgICAgICAgY2hhbm5lbEJ1ZmZlckxpc3QudW5j
aGVja2VkQXBwZW5kKFdURk1vdmUoYnVmZmVyKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBsb2NhbC9saXZlIGF1ZGlvIGlucHV0LgogICAgIHByaXYtPnByb3ZpZGVy
LT5yZW5kZXIoMCwgcHJpdi0+YnVzLCBwcml2LT5mcmFtZXNUb1B1bGwpOwogCi0gICAgR1NMaXN0
KiBzb3VyY2VzSXQgPSBwcml2LT5zb3VyY2VzOwotICAgIEdTTGlzdCogYnVmZmVyc0l0ID0gY2hh
bm5lbEJ1ZmZlckxpc3Q7CisgICAgQVNTRVJUKGNoYW5uZWxCdWZmZXJMaXN0LnNpemUoKSA9PSBw
cml2LT5zb3VyY2VzLnNpemUoKSk7CisgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJpdi0+c291cmNlcy5zaXplKCk7ICsraSkgeworICAgICAg
ICAvLyBVbm1hcCBiZWZvcmUgcGFzc2luZyBvbiB0aGUgYnVmZmVyLgorICAgICAgICBhdXRvJiBi
dWZmZXIgPSBjaGFubmVsQnVmZmVyTGlzdFtpXTsKKyAgICAgICAgdW5tYXBHc3RCdWZmZXIoYnVm
ZmVyLmdldCgpKTsKIAotICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0gR1NUX0ZMT1dfT0s7Ci0gICAg
Zm9yIChpbnQgaSA9IDA7IHNvdXJjZXNJdCAmJiBidWZmZXJzSXQ7IHNvdXJjZXNJdCA9IGdfc2xp
c3RfbmV4dChzb3VyY2VzSXQpLCBidWZmZXJzSXQgPSBnX3NsaXN0X25leHQoYnVmZmVyc0l0KSwg
KytpKSB7Ci0gICAgICAgIEdzdEVsZW1lbnQqIGFwcHNyYyA9IHN0YXRpY19jYXN0PEdzdEVsZW1l
bnQqPihzb3VyY2VzSXQtPmRhdGEpOwotICAgICAgICBBdWRpb1NyY0J1ZmZlciogYnVmZmVyID0g
c3RhdGljX2Nhc3Q8QXVkaW9TcmNCdWZmZXIqPihidWZmZXJzSXQtPmRhdGEpOwotICAgICAgICBH
c3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBidWZmZXItPmJ1ZmZlcjsKKyAgICAgICAgaWYgKGZh
aWxlZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIC8vIFVubWFwIGJlZm9yZSBw
YXNzaW5nIG9uIHRoZSBidWZmZXIuCi0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoY2hhbm5lbEJ1
ZmZlciwgJmJ1ZmZlci0+aW5mbyk7Ci0gICAgICAgIGdfZnJlZShidWZmZXIpOwotCi0gICAgICAg
IGlmIChyZXQgPT0gR1NUX0ZMT1dfT0spIHsKLSAgICAgICAgICAgIHJldCA9IGdzdF9hcHBfc3Jj
X3B1c2hfYnVmZmVyKEdTVF9BUFBfU1JDKGFwcHNyYyksIGNoYW5uZWxCdWZmZXIpOwotICAgICAg
ICAgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSykgewotICAgICAgICAgICAgICAgIC8vIEZMVVNI
SU5HIGFuZCBFT1MgYXJlIG5vdCBlcnJvcnMuCi0gICAgICAgICAgICAgICAgaWYgKHJldCA8IEdT
VF9GTE9XX0VPUyB8fCByZXQgPT0gR1NUX0ZMT1dfTk9UX0xJTktFRCkKLSAgICAgICAgICAgICAg
ICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVk
aW9TcmMgZXJyb3IiKSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIgb24gJXMgZmxvdzogJXMiLCBH
U1RfT0JKRUNUX05BTUUoYXBwc3JjKSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOwotICAgICAg
ICAgICAgICAgIGdzdF90YXNrX3N0b3Aoc3JjLT5wcml2LT50YXNrLmdldCgpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmKGNoYW5u
ZWxCdWZmZXIpOworICAgICAgICBhdXRvJiBhcHBzcmMgPSBwcml2LT5zb3VyY2VzW2ldOworICAg
ICAgICAvLyBMZWFrIHRoZSBidWZmZXIgcmVmLCBiZWNhdXNlIGdzdF9hcHBfc3JjX3B1c2hfYnVm
ZmVyIHN0ZWFscyBpdC4KKyAgICAgICAgR3N0Rmxvd1JldHVybiByZXQgPSBnc3RfYXBwX3NyY19w
dXNoX2J1ZmZlcihHU1RfQVBQX1NSQyhhcHBzcmMuZ2V0KCkpLCBidWZmZXIubGVha1JlZigpKTsK
KyAgICAgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSykgeworICAgICAgICAgICAgLy8gRkxVU0hJ
TkcgYW5kIEVPUyBhcmUgbm90IGVycm9ycy4KKyAgICAgICAgICAgIGlmIChyZXQgPCBHU1RfRkxP
V19FT1MgfHwgcmV0ID09IEdTVF9GTE9XX05PVF9MSU5LRUQpCisgICAgICAgICAgICAgICAgR1NU
X0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJy
b3IiKSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIgb24gJXMgZmxvdzogJXMiLCBHU1RfT0JKRUNU
X05BTUUoYXBwc3JjLmdldCgpKSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOworICAgICAgICAg
ICAgZ3N0X3Rhc2tfc3RvcChzcmMtPnByaXYtPnRhc2suZ2V0KCkpOworICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLQotICAgIGdfc2xpc3RfZnJlZShjaGFubmVs
QnVmZmVyTGlzdCk7CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJB
dWRpb1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXRlQ2hhbmdlIHRy
YW5zaXRpb24pCkBAIC00MTQsMTEgKzM5NiwxMiBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1
cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHcwog
ICAgIHN3aXRjaCAodHJhbnNpdGlvbikgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9SRUFE
WV9UT19QQVVTRUQ6IHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSRUFEWS0+UEFV
U0VEIik7CisKICAgICAgICAgc3JjLT5wcml2LT5wb29sID0gZ3N0X2J1ZmZlcl9wb29sX25ldygp
OwotICAgICAgICBHc3RTdHJ1Y3R1cmUqIGNvbmZpZyA9IGdzdF9idWZmZXJfcG9vbF9nZXRfY29u
ZmlnKHNyYy0+cHJpdi0+cG9vbCk7CisgICAgICAgIEdzdFN0cnVjdHVyZSogY29uZmlnID0gZ3N0
X2J1ZmZlcl9wb29sX2dldF9jb25maWcoc3JjLT5wcml2LT5wb29sLmdldCgpKTsKICAgICAgICAg
Z3N0X2J1ZmZlcl9wb29sX2NvbmZpZ19zZXRfcGFyYW1zKGNvbmZpZywgbnVsbHB0ciwgc3JjLT5w
cml2LT5idWZmZXJTaXplLCAwLCAwKTsKLSAgICAgICAgZ3N0X2J1ZmZlcl9wb29sX3NldF9jb25m
aWcoc3JjLT5wcml2LT5wb29sLCBjb25maWcpOwotICAgICAgICBpZiAoIWdzdF9idWZmZXJfcG9v
bF9zZXRfYWN0aXZlKHNyYy0+cHJpdi0+cG9vbCwgVFJVRSkpCisgICAgICAgIGdzdF9idWZmZXJf
cG9vbF9zZXRfY29uZmlnKHNyYy0+cHJpdi0+cG9vbC5nZXQoKSwgY29uZmlnKTsKKyAgICAgICAg
aWYgKCFnc3RfYnVmZmVyX3Bvb2xfc2V0X2FjdGl2ZShzcmMtPnByaXYtPnBvb2wuZ2V0KCksIFRS
VUUpKQogICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7
CiAgICAgICAgIGVsc2UgaWYgKCFnc3RfdGFza19zdGFydChzcmMtPnByaXYtPnRhc2suZ2V0KCkp
KQogICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7CkBA
IC00MjYsMTMgKzQwOSwxMyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2Vi
QXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHcwogICAgIH0KICAgICBj
YXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZOgogICAgICAgICBHU1RfREVCVUdf
T0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKKwogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEs
IDQsIDApCi0gICAgICAgIGdzdF9idWZmZXJfcG9vbF9zZXRfZmx1c2hpbmcoc3JjLT5wcml2LT5w
b29sLCBUUlVFKTsKKyAgICAgICAgZ3N0X2J1ZmZlcl9wb29sX3NldF9mbHVzaGluZyhzcmMtPnBy
aXYtPnBvb2wuZ2V0KCksIFRSVUUpOwogI2VuZGlmCiAgICAgICAgIGlmICghZ3N0X3Rhc2tfam9p
bihzcmMtPnByaXYtPnRhc2suZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBHU1Rf
U1RBVEVfQ0hBTkdFX0ZBSUxVUkU7Ci0gICAgICAgIGdzdF9idWZmZXJfcG9vbF9zZXRfYWN0aXZl
KHNyYy0+cHJpdi0+cG9vbCwgRkFMU0UpOwotICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKHNyYy0+
cHJpdi0+cG9vbCk7CisgICAgICAgIGdzdF9idWZmZXJfcG9vbF9zZXRfYWN0aXZlKHNyYy0+cHJp
di0+cG9vbC5nZXQoKSwgRkFMU0UpOwogICAgICAgICBzcmMtPnByaXYtPnBvb2wgPSBudWxscHRy
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIu
Y3BwCmluZGV4IDIzNzIyNDNjMzRmLi4yMzE5MGYwMmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmNwcApAQCAtMjIxLDYgKzIyMSwyNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRy
PEdzdEJ1ZmZlckxpc3Q+KEdzdEJ1ZmZlckxpc3QqIHB0cikKICAgICAgICAgZ3N0X2J1ZmZlcl9s
aXN0X3VucmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlPD4gR1JlZlB0cjxHc3RCdWZmZXJQb29sPiBh
ZG9wdEdSZWYoR3N0QnVmZmVyUG9vbCogcHRyKQoreworICAgIEFTU0VSVCghcHRyIHx8ICFnX29i
amVjdF9pc19mbG9hdGluZyhwdHIpKTsKKyAgICByZXR1cm4gR1JlZlB0cjxHc3RCdWZmZXJQb29s
PihwdHIsIEdSZWZQdHJBZG9wdCk7Cit9CisKK3RlbXBsYXRlPD4gR3N0QnVmZmVyUG9vbCogcmVm
R1B0cjxHc3RCdWZmZXJQb29sPihHc3RCdWZmZXJQb29sKiBwdHIpCit7CisgICAgaWYgKHB0cikK
KyAgICAgICAgZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JKRUNUKHB0cikpOworCisgICAgcmV0
dXJuIHB0cjsKK30KKwordGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxHc3RCdWZmZXJQb29sPihH
c3RCdWZmZXJQb29sKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ3N0X29iamVjdF91
bnJlZihwdHIpOworfQorCiB0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0U2FtcGxlPiBhZG9wdEdSZWYo
R3N0U2FtcGxlKiBwdHIpCiB7CiAgICAgcmV0dXJuIEdSZWZQdHI8R3N0U2FtcGxlPihwdHIsIEdS
ZWZQdHJBZG9wdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaAppbmRleCAxYTMzNmNjMzI5OC4u
OWY5YmI2ZDE3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaApAQCAtMzMsNiArMzMsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfR3N0QnVzIEdzdEJ1czsKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVt
ZW50RmFjdG9yeSBHc3RFbGVtZW50RmFjdG9yeTsKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIg
R3N0QnVmZmVyOwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEJ1ZmZlckxpc3QgR3N0QnVmZmVyTGlzdDsK
K3R5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXJQb29sIEdzdEJ1ZmZlclBvb2w7CiB0eXBlZGVmIHN0
cnVjdCBfR3N0U2FtcGxlIEdzdFNhbXBsZTsKIHR5cGVkZWYgc3RydWN0IF9Hc3RUYWdMaXN0IEdz
dFRhZ0xpc3Q7CiB0eXBlZGVmIHN0cnVjdCBfR3N0RXZlbnQgR3N0RXZlbnQ7CkBAIC04Myw2ICs4
NCwxMCBAQCB0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0QnVmZmVyTGlzdD4gYWRvcHRHUmVmKEdzdEJ1
ZmZlckxpc3QqKTsKIHRlbXBsYXRlPD4gR3N0QnVmZmVyTGlzdCogcmVmR1B0cjxHc3RCdWZmZXJM
aXN0PihHc3RCdWZmZXJMaXN0Kik7CiB0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRyPEdzdEJ1ZmZl
ckxpc3Q+KEdzdEJ1ZmZlckxpc3QqKTsKIAordGVtcGxhdGU8PiBHUmVmUHRyPEdzdEJ1ZmZlclBv
b2w+IGFkb3B0R1JlZihHc3RCdWZmZXJQb29sKik7Cit0ZW1wbGF0ZTw+IEdzdEJ1ZmZlclBvb2wq
IHJlZkdQdHI8R3N0QnVmZmVyUG9vbD4oR3N0QnVmZmVyUG9vbCopOwordGVtcGxhdGU8PiB2b2lk
IGRlcmVmR1B0cjxHc3RCdWZmZXJQb29sPihHc3RCdWZmZXJQb29sKik7CisKIHRlbXBsYXRlPD4g
R1JlZlB0cjxHc3RTYW1wbGU+IGFkb3B0R1JlZihHc3RTYW1wbGUqIHB0cik7CiB0ZW1wbGF0ZTw+
IEdzdFNhbXBsZSogcmVmR1B0cjxHc3RTYW1wbGU+KEdzdFNhbXBsZSogcHRyKTsKIHRlbXBsYXRl
PD4gdm9pZCBkZXJlZkdQdHI8R3N0U2FtcGxlPihHc3RTYW1wbGUqIHB0cik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVXRp
bGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJVdGlsaXRpZXMuY3BwCmluZGV4IGY3MTEyM2IzMWRhLi45YzQ5ZmQ4ZTUzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5jcHAKQEAgLTEyMCwxNyArMTIwLDE3IEBAIGNo
YXIqIGdldEdzdEJ1ZmZlckRhdGFQb2ludGVyKEdzdEJ1ZmZlciogYnVmZmVyKQogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihtYXBJbmZvLT5kYXRhKTsKIH0KIAotdm9pZCBtYXBH
c3RCdWZmZXIoR3N0QnVmZmVyKiBidWZmZXIpCit2b2lkIG1hcEdzdEJ1ZmZlcihHc3RCdWZmZXIq
IGJ1ZmZlciwgdWludDMyX3QgZmxhZ3MpCiB7CiAgICAgR3N0TWFwSW5mbyogbWFwSW5mbyA9IHN0
YXRpY19jYXN0PEdzdE1hcEluZm8qPihmYXN0TWFsbG9jKHNpemVvZihHc3RNYXBJbmZvKSkpOwot
ICAgIGlmICghZ3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCBtYXBJbmZvLCBHU1RfTUFQX1dSSVRFKSkg
eworICAgIGlmICghZ3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCBtYXBJbmZvLCBzdGF0aWNfY2FzdDxH
c3RNYXBGbGFncz4oZmxhZ3MpKSkgewogICAgICAgICBmYXN0RnJlZShtYXBJbmZvKTsKICAgICAg
ICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgR3N0TWluaU9iamVjdCogbWluaU9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0TWluaU9i
amVjdCo+KGJ1ZmZlcik7Ci0gICAgZ3N0X21pbmlfb2JqZWN0X3NldF9xZGF0YShtaW5pT2JqZWN0
LCBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyh3ZWJraXRHc3RNYXBJbmZvUXVhcmtTdHJpbmcp
LCBtYXBJbmZvLCAwKTsKKyAgICBnc3RfbWluaV9vYmplY3Rfc2V0X3FkYXRhKG1pbmlPYmplY3Qs
IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKHdlYmtpdEdzdE1hcEluZm9RdWFya1N0cmluZyks
IG1hcEluZm8sIG51bGxwdHIpOwogfQogCiB2b2lkIHVubWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciog
YnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCmluZGV4IGViMmY3N2NhZjNlLi5m
NzlhOGNmNmYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJVdGlsaXRpZXMuaApAQCAtNTgsNyArNTgs
NyBAQCBib29sIGdldFNhbXBsZVZpZGVvSW5mbyhHc3RTYW1wbGUqLCBHc3RWaWRlb0luZm8mKTsK
IEdzdEJ1ZmZlciogY3JlYXRlR3N0QnVmZmVyKEdzdEJ1ZmZlciopOwogR3N0QnVmZmVyKiBjcmVh
dGVHc3RCdWZmZXJGb3JEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOwogY2hhciog
Z2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoR3N0QnVmZmVyKik7Ci12b2lkIG1hcEdzdEJ1ZmZlcihH
c3RCdWZmZXIqKTsKK3ZvaWQgbWFwR3N0QnVmZmVyKEdzdEJ1ZmZlciosIHVpbnQzMl90KTsKIHZv
aWQgdW5tYXBHc3RCdWZmZXIoR3N0QnVmZmVyKik7CiBib29sIGluaXRpYWxpemVHU3RyZWFtZXIo
KTsKIHVuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNvbnN0IGNoYXIqIG5pY2spOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAwZGE0YTg4NTczYi4uMmE3
Zjg5ZWIwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC04NjUsNyArODY1LDcgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpjcmVhdGVSZWFkQnVm
ZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUKIAogICAgIEdzdEJ1
ZmZlciogYnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKHJlcXVlc3RlZFNpemUpOwog
Ci0gICAgbWFwR3N0QnVmZmVyKGJ1ZmZlcik7CisgICAgbWFwR3N0QnVmZmVyKGJ1ZmZlciwgR1NU
X01BUF9XUklURSk7CiAKICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NU
X09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKICAgICBwcml2LT5idWZmZXIgPSBhZG9wdEdSZWYoYnVm
ZmVyKTsK
</data>
<flag name="review"
          id="320694"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>