<?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>29842</bug_id>
          
          <creation_ts>2009-09-29 03:11:13 -0700</creation_ts>
          <short_desc>[GTK] data: uri support in media player</short_desc>
          <delta_ts>2009-10-01 01:19:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>slomo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>150843</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-29 03:11:13 -0700</bug_when>
    <thetext>The test media/audio-data-url.html is currently skipped because we pass the raw data to playbin directly and there is no source element to handle that. We could maybe have a source element using giostreamsrc to read the data and decode it (if it is base64 encoded for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151191</commentid>
    <comment_count>1</comment_count>
      <attachid>40349</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 01:57:15 -0700</bug_when>
    <thetext>Created attachment 40349
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151210</commentid>
    <comment_count>2</comment_count>
      <attachid>40357</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 03:54:36 -0700</bug_when>
    <thetext>Created attachment 40357
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151212</commentid>
    <comment_count>3</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-09-30 04:12:23 -0700</bug_when>
    <thetext>Some notes on the GStreamer part:

- use gst_ghost_pad_new_no_target_from_template() instead of gst_ghost_pad_new_no_target() (gives pad&lt;-&gt;template association)
- use gst_element_set_details_simple() instead of the one with _simple() (results in smaller compiled code)
- do something useful if there&apos;s no giostreamsrc available (like posting a missing plugin message on the bus in GstElement::change_state when going from READY-&gt;PAUSED and returning FAILURE there)
- in set_uri: a) pass g_free as GDestroyNotify for the memory input stream and b) unref it after setting it in the giostreamsrc
- Small leak in failure case in set_uri, you don&apos;t free the string array

And then you might want to add the child in NULL-&gt;READY and remove it again in READY-&gt;NULL but that not exactly necessary :) Also, changing the URI in states &gt;= PAUSED shouldn&apos;t be allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151213</commentid>
    <comment_count>4</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-09-30 04:21:22 -0700</bug_when>
    <thetext>Oh and one note to the parsing of the data: URIs: RFC2397 says, that it&apos;s

&quot;data:&quot; [ mediatype ] [ &quot;;base64&quot; ] &quot;,&quot; data

mediatype is a normal mimetype, which means that it can contain parameters.

Example:
data:text/plain;charset=ISO-8859-1;base64,ABCDEFGH

Currently you split the URI after the first &quot;;&quot; with &quot;,&quot; as delimiter. In the above case this would give you

&quot;charset=ISO-8859-1;base64&quot; and &quot;ABCDEFGH&quot; and then you fail because the first thing is not only base64.

simple check if the first split string has &quot;base64&quot; as suffix or if you want to do it cleaner: split everything after the colon with &quot;,&quot; as delimiter and then split the first part with &quot;;&quot; as delimiter and check if that&apos;s a mediatype that is supported (e.g. last string is &quot;base64&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151217</commentid>
    <comment_count>5</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-09-30 04:23:52 -0700</bug_when>
    <thetext>Also, what&apos;s with images that are embedded into websites via a data: URI? You probably really want to check the mimetype before doing anything else and only use GStreamer if it&apos;s not something that is directly supported by Webkit (images, plaintext, HTML, ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151233</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 06:03:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Also, what&apos;s with images that are embedded into websites via a data: URI? You
&gt; probably really want to check the mimetype before doing anything else and only
&gt; use GStreamer if it&apos;s not something that is directly supported by Webkit
&gt; (images, plaintext, HTML, ...)

the set_uri() will be called only for &lt;audio&gt; and &lt;video&gt; elements. But you
have an interesting point anyway. We can already check if one mime-type is
supported by our player or not, but this code is in the media player itself.
Could be worth outsourcing it and reusing it in set_uri(). Gustavo, what do you
think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151247</commentid>
    <comment_count>7</comment_count>
      <attachid>40371</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 07:53:06 -0700</bug_when>
    <thetext>Created attachment 40371
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151248</commentid>
    <comment_count>8</comment_count>
      <attachid>40372</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 08:02:18 -0700</bug_when>
    <thetext>Created attachment 40372
updated patch with minor fixes and styles fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151250</commentid>
    <comment_count>9</comment_count>
      <attachid>40373</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-09-30 08:18:24 -0700</bug_when>
    <thetext>Created attachment 40373
final version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151473</commentid>
    <comment_count>10</comment_count>
      <attachid>40373</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-10-01 00:18:57 -0700</bug_when>
    <thetext>Comment on attachment 40373
final version

&gt; diff --git a/WebCore/platform/graphics/gtk/DataSourceGStreamer.cpp b/WebCore/platform/graphics/gtk/DataSourceGStreamer.cpp
&gt; new file mode 100644
&gt; index 0000000..acd1524
&gt; --- /dev/null
&gt; +++ b/WebCore/platform/graphics/gtk/DataSourceGStreamer.cpp
&gt; @@ -0,0 +1,266 @@
&gt; +/*
&gt; + *  Copyright (C) 2009  Igalia S.L

I don&apos;t think we have double space between the year and the copyright holder.


&gt; +static gboolean
&gt; +webkit_data_src_reset(WebkitDataSrc* src)

WebKit style does not put the return type in a different line (happens elsewhere, sorry I didn&apos;t notice before).

&gt; +
&gt; +    {
&gt; +        ret = GST_ELEMENT_CLASS(parent_class)-&gt;change_state(element, transition);
&gt; +        if (G_UNLIKELY(ret == GST_STATE_CHANGE_FAILURE))
&gt; +            return ret;
&gt; +    }

Why do you have a new block here?

&gt; +
&gt; +    switch (transition) {
&gt; +    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
&gt; +    case GST_STATE_CHANGE_PAUSED_TO_READY:
&gt; +    case GST_STATE_CHANGE_READY_TO_NULL:
&gt; +        break;
&gt; +    default:
&gt; +        break;
&gt; +    }

This switch seems pointless?

&gt; +
&gt; +    return ret;
&gt; +}
&gt; +
&gt; +/*** GSTURIHANDLER INTERFACE *************************************************/
&gt; +
&gt; +static GstURIType
&gt; +webkit_data_src_uri_get_type(void)
&gt; +{
&gt; +    return GST_URI_SRC;
&gt; +}
&gt; +
&gt; +static gchar **

No space here.

&gt; +webkit_data_src_uri_get_protocols(void)
&gt; +{
&gt; +    static gchar* protocols[] = {(gchar*) &quot;data&quot;, 0 };
&gt; +
&gt; +    return protocols;
&gt; +}
&gt; +
&gt; +static const gchar *

Or here.

&gt; +webkit_data_src_uri_get_uri(GstURIHandler* handler)
&gt; +{
&gt; +    WebkitDataSrc* src = WEBKIT_DATA_SRC(handler);
&gt; +
&gt; +    return src-&gt;uri;
&gt; +}
&gt; +

If you can upload a new patch fixing this details I&apos;ll r+ it right away :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151474</commentid>
    <comment_count>11</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-10-01 00:46:43 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; +
&gt; &gt; +    switch (transition) {
&gt; &gt; +    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
&gt; &gt; +    case GST_STATE_CHANGE_PAUSED_TO_READY:
&gt; &gt; +    case GST_STATE_CHANGE_READY_TO_NULL:
&gt; &gt; +        break;
&gt; &gt; +    default:
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; 
&gt; This switch seems pointless?

It makes sure that people add code at the correct position in the future. Downwards state change code should be after chaining up to the parent class while upwards state change code should be before.

(But yes, other than that it&apos;s useless)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151476</commentid>
    <comment_count>12</comment_count>
      <attachid>40427</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2009-10-01 01:04:23 -0700</bug_when>
    <thetext>Created attachment 40427
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151477</commentid>
    <comment_count>13</comment_count>
      <attachid>40427</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-10-01 01:07:32 -0700</bug_when>
    <thetext>Comment on attachment 40427
updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151479</commentid>
    <comment_count>14</comment_count>
      <attachid>40427</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-01 01:19:43 -0700</bug_when>
    <thetext>Comment on attachment 40427
updated patch

Clearing flags on attachment: 40427

Committed r48963: &lt;http://trac.webkit.org/changeset/48963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151480</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-01 01:19:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40349</attachid>
            <date>2009-09-30 01:57:15 -0700</date>
            <delta_ts>2009-09-30 03:54:36 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>14715</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2YzJmMDhiZjczMmUwOGJmNjAwNDk2OWFhMGFhM2RmZTRkOGUyMzkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIExheW91dFRlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMxICsr
KwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuY3Bw
ICB8ICAyMTIgKysrKysrKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oICAgIHwgICA1NCArKysrKwogLi4uL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDI0ICsrLQogNyBmaWxlcyBjaGFu
Z2VkLCAzMjYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291
cmNlR1N0cmVhbWVyLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTVhYTM3My4uNmNkZTc0YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDA5LTA5LTMwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBkYXRhOiB1cmkgc3VwcG9ydCBpbiBtZWRpYSBwbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5ODQyCisKKyAgICAgICAgUmUtZW5hYmxlIG1l
ZGlhL2F1ZGlvLWRhdGEtdXJsLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDoKKwogMjAwOS0wOS0yOSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAppbmRleCAzNjYyMGZmLi5lZjY1YjQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApA
QCAtMzgwNCw3ICszODA0LDYgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRt
bAogbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKIG1lZGlhL3ZpZGVvLXNpemUtaW50
cmluc2ljLXNjYWxlLmh0bWwKICMgICBUZXN0cyB0aW1pbmcgb3V0Ci1tZWRpYS9hdWRpby1kYXRh
LXVybC5odG1sCiBtZWRpYS9jb250cm9scy1kcmFnLXRpbWViYXIuaHRtbAogbWVkaWEvZXZlbnQt
YXR0cmlidXRlcy5odG1sCiBtZWRpYS91bnN1cHBvcnRlZC1ydHNwLmh0bWwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFjYzNkYy4uOGUy
NGNhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAgICAg
IE5ldyBHU3RyZWFtZXIgZWxlbWVudCB0byBoYW5kbGUgZGF0YTogdXJpcy4gRm9yIG5vdyBvbmx5
IGJhc2U2NAorICAgICAgICBlbmNvZGVkIGRhdGEgaXMgc3VwcG9ydGVkLiBEZWNvZGVkIGRhdGEg
aXMgaGFuZGVkIG92ZXIgdG8KKyAgICAgICAgZ2lvc3RyZWFtc3JjLgorCisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VH
U3RyZWFtZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9kb19pbml0KToKKyAgICAgICAgKHdlYmtp
dF9kYXRhX3NyY19iYXNlX2luaXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX2NsYXNzX2lu
aXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3Jlc2V0KToKKyAgICAgICAgKHdlYmtpdF9k
YXRhX3NyY19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19kaXNwb3NlKToKKyAgICAg
ICAgKHdlYmtpdF9kYXRhX3NyY19maW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNf
dXJpX2dldF90eXBlKToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlfZ2V0X3Byb3RvY29s
cyk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF91cmkpOgorICAgICAgICAod2Vi
a2l0X2RhdGFfc3JjX3VyaV9zZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlf
aGFuZGxlcl9pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJj
ZUdTdHJlYW1lci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvX2dzdF9p
bml0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6bWltZVR5cGVD
YWNoZSk6CisKIDIwMDktMDktMjkgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDYwNjA4NTEuLjUyYTkx
ZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMjMxNSw3ICsyMzE1LDkgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5r
R1N0cmVhbWVyLmNwcCBcCi0JV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5r
R1N0cmVhbWVyLmgKKwlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9WaWRlb1NpbmtHU3Ry
ZWFtZXIuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJl
YW1lci5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHc3Ry
ZWFtZXIuaAogCiB3ZWJjb3JlX2xpYmFkZCArPSBcCiAJLWxnc3RpbnRlcmZhY2VzLTAuMTAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJl
YW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVh
bWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjU1NDZkCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdT
dHJlYW1lci5jcHAKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5
ICBJZ2FsaWEKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYXRhU291cmNlR1N0cmVhbWVyLmgiCisKKyNpbmNsdWRlIDxnaW8v
Z2lvLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRl
IDxnc3QvZ3N0dXRpbHMuaD4KKworc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNyY190ZW1w
bGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFKCJzcmMiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTVF9QQURf
U1JDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdTVF9QQURfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTVF9TVEFUSUNfQ0FQ
U19BTlkpOworCitHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDKHdlYmtpdF9kYXRhX3NyY19kZWJ1
Zyk7CisjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3ZWJraXRfZGF0YV9zcmNfZGVidWcKKworc3Rh
dGljIGNvbnN0IEdzdEVsZW1lbnREZXRhaWxzIHdlYmtpdF9kYXRhX3NyY19kZXRhaWxzID0KKyAg
ICAgIEdTVF9FTEVNRU5UX0RFVEFJTFMoKGdjaGFyKikgIldlYktpdCBkYXRhIHNvdXJjZSBlbGVt
ZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjaGFyKikgIlNvdXJjZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJIYW5kbGVzIGRhdGE6IHVyaXMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIqKSAiUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4iKTsKKworCitzdGF0aWMgdm9pZCB3ZWJraXRfZGF0YV9zcmNfdXJpX2hh
bmRsZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgaWZhY2VfZGF0YSk7CisKK3N0YXRpYyB2b2lkIHdl
YmtpdF9kYXRhX3NyY19kaXNwb3NlKEdPYmplY3QgKiBvYmplY3QpOworc3RhdGljIHZvaWQgd2Vi
a2l0X2RhdGFfc3JjX2ZpbmFsaXplKFdlYmtpdERhdGFTcmMgKiBzcmMpOworCitzdGF0aWMgY29u
c3QgR0ludGVyZmFjZUluZm8gdXJpaGFuZGxlcl9pbmZvID0geworICAgIHdlYmtpdF9kYXRhX3Ny
Y191cmlfaGFuZGxlcl9pbml0LAorICAgIDAsIDAKK307CisKKworc3RhdGljIHZvaWQKK19kb19p
bml0KEdUeXBlIGRhdGFzcmNfdHlwZSkKK3sKKyAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3
ZWJraXRfZGF0YV9zcmNfZGVidWcsICJ3ZWJraXRfZGF0YV9zcmMiLCAwLCAiZGF0YXNyYyBlbGVt
ZW50Iik7CisgICAgZ190eXBlX2FkZF9pbnRlcmZhY2Vfc3RhdGljKGRhdGFzcmNfdHlwZSwgR1NU
X1RZUEVfVVJJX0hBTkRMRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cmlo
YW5kbGVyX2luZm8pOworfQorCitHU1RfQk9JTEVSUExBVEVfRlVMTChXZWJraXREYXRhU3JjLCB3
ZWJraXRfZGF0YV9zcmMsIEdzdEJpbiwgR1NUX1RZUEVfQklOLCBfZG9faW5pdCk7CisKK3N0YXRp
YyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KGdwb2ludGVyIGtsYXNzKQoreworICAg
IEdzdEVsZW1lbnRDbGFzcyogZWxlbWVudF9jbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNz
KTsKKworICAgIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoZWxlbWVudF9jbGFz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9zdGF0aWNfcGFk
X3RlbXBsYXRlX2dldCgmc3JjX3RlbXBsYXRlKSk7CisgICAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0
X2RldGFpbHMoZWxlbWVudF9jbGFzcywgJndlYmtpdF9kYXRhX3NyY19kZXRhaWxzKTsKK30KKwor
c3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19jbGFzc19pbml0KFdlYmtpdERhdGFTcmNDbGFz
cyAqIGtsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyogb2tsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOworCisgICAgb2tsYXNzLT5kaXNwb3NlID0gd2Via2l0X2RhdGFfc3JjX2Rpc3Bvc2U7
CisgICAgb2tsYXNzLT5maW5hbGl6ZSA9IChHT2JqZWN0RmluYWxpemVGdW5jKSB3ZWJraXRfZGF0
YV9zcmNfZmluYWxpemU7Cit9CisKKworc3RhdGljIGdib29sZWFuCit3ZWJraXRfZGF0YV9zcmNf
cmVzZXQoV2Via2l0RGF0YVNyYyAqIHNyYykKK3sKKyAgICBHc3RQYWQqIHRhcmdldHBhZDsKKwor
ICAgIGlmIChzcmMtPmtpZCkgeworICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUoc3JjLT5r
aWQsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihzcmMp
LCBzcmMtPmtpZCk7CisgICAgfQorCisgICAgc3JjLT5raWQgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImdpb3N0cmVhbXNyYyIsICJzdHJlYW1zcmMiKTsKKyAgICBpZiAoIXNyYy0+a2lkKSB7
CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBnaW9zdHJl
YW1zcmMiKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIGdzdF9iaW5fYWRk
KEdTVF9CSU4oc3JjKSwgc3JjLT5raWQpOworCisgICAgdGFyZ2V0cGFkID0gZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQoc3JjLT5raWQsICJzcmMiKTsKKyAgICBnc3RfZ2hvc3RfcGFkX3NldF90
YXJnZXQoR1NUX0dIT1NUX1BBRChzcmMtPnBhZCksIHRhcmdldHBhZCk7CisgICAgZ3N0X29iamVj
dF91bnJlZih0YXJnZXRwYWQpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lk
Cit3ZWJraXRfZGF0YV9zcmNfaW5pdChXZWJraXREYXRhU3JjICogc3JjLAorICAgIFdlYmtpdERh
dGFTcmNDbGFzcyAqIGdfY2xhc3MpCit7CisgICAgc3JjLT5wYWQgPSBnc3RfZ2hvc3RfcGFkX25l
d19ub190YXJnZXQoInNyYyIsIEdTVF9QQURfU1JDKTsKKyAgICBnc3RfZWxlbWVudF9hZGRfcGFk
KEdTVF9FTEVNRU5UKHNyYyksIHNyYy0+cGFkKTsKKworICAgIHdlYmtpdF9kYXRhX3NyY19yZXNl
dChzcmMpOworfQorCitzdGF0aWMgdm9pZAord2Via2l0X2RhdGFfc3JjX2Rpc3Bvc2UoR09iamVj
dCAqIG9iamVjdCkKK3sKKyAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGRpc3Bv
c2UsIChvYmplY3QpKTsKK30KKworc3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19maW5hbGl6
ZShXZWJraXREYXRhU3JjICogc3JjKQoreworICAgIGdfZnJlZShzcmMtPnVyaSk7CisKKyAgICBp
ZiAoc3JjLT5raWQpIHsKKyAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSZW1vdmluZyBn
aW9zdHJlYW1zcmMgZWxlbWVudCIpOworICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUoc3Jj
LT5raWQsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihz
cmMpLCBzcmMtPmtpZCk7CisgICAgICAgIHNyYy0+a2lkID0gMDsKKyAgICB9CisKKyAgICBHU1Rf
Q0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGZpbmFsaXplLCAoKEdPYmplY3QgKikoc3JjKSkp
OworfQorCisKKy8qKiogR1NUVVJJSEFORExFUiBJTlRFUkZBQ0UgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIEdzdFVSSVR5cGUKK3dl
YmtpdF9kYXRhX3NyY191cmlfZ2V0X3R5cGUodm9pZCkKK3sKKyAgICByZXR1cm4gR1NUX1VSSV9T
UkM7Cit9CisKK3N0YXRpYyBnY2hhciAqKgord2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfcHJvdG9j
b2xzKHZvaWQpCit7CisgICAgc3RhdGljIGdjaGFyKiBwcm90b2NvbHNbXSA9IHsoZ2NoYXIqKSAi
ZGF0YSIsIDAgfTsKKworICAgIHJldHVybiBwcm90b2NvbHM7Cit9CisKK3N0YXRpYyBjb25zdCBn
Y2hhciAqCit3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF91cmkoR3N0VVJJSGFuZGxlciAqIGhhbmRs
ZXIpCit7CisgICAgV2Via2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RBVEFfU1JDKGhhbmRsZXIp
OworCisgICAgcmV0dXJuIHNyYy0+dXJpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4KK3dlYmtpdF9k
YXRhX3NyY191cmlfc2V0X3VyaShHc3RVUklIYW5kbGVyICogaGFuZGxlciwgY29uc3QgZ2NoYXIg
KiB1cmkpCit7CisgICAgV2Via2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RBVEFfU1JDKGhhbmRs
ZXIpOworICAgIGdjaGFyKiogc2NoZW1lX2FuZF9yZW1haW5zID0gZ19zdHJzcGxpdCh1cmksICI6
IiwgMik7CisgICAgZ2NoYXIqIHJlbWFpbnMgPSBzY2hlbWVfYW5kX3JlbWFpbnNbMV07CisgICAg
Z2NoYXIqKiBtaW1lX3R5cGVfYW5kX2RhdGEgPSBnX3N0cnNwbGl0KHJlbWFpbnMsICI7IiwgMik7
CisgICAgZ2NoYXIqIG1pbWVfdHlwZSA9IG1pbWVfdHlwZV9hbmRfZGF0YVswXTsKKyAgICBnY2hh
ciogZGF0YSA9IG1pbWVfdHlwZV9hbmRfZGF0YVsxXTsKKyAgICBnY2hhcioqIGZvcm1hdF9hbmRf
ZGF0YSA9IGdfc3Ryc3BsaXQoZGF0YSwgIiwiLCAyKTsKKworICAgIGlmIChzcmMtPnVyaSkgewor
ICAgICAgICBnX2ZyZWUoc3JjLT51cmkpOworICAgICAgICBzcmMtPnVyaSA9IDA7CisgICAgfQor
CisgICAgc3JjLT51cmkgPSBnX3N0cmR1cCh1cmkpOworCisgICAgLy8gRklYTUU6IHVzZSBtaW1l
LXR5cGU/CisKKyAgICBpZiAoZ19zdHJfZXF1YWwoZm9ybWF0X2FuZF9kYXRhWzBdLCAiYmFzZTY0
IikpIHsKKyAgICAgICAgZ3NpemUgZGVjb2RlZF9zaXplID0gMDsKKyAgICAgICAgZ3VjaGFyKiBk
ZWNvZGVkX2RhdGEgPSBnX2Jhc2U2NF9kZWNvZGUoZm9ybWF0X2FuZF9kYXRhWzFdLCAmZGVjb2Rl
ZF9zaXplKTsKKyAgICAgICAgR0lucHV0U3RyZWFtKiBzdHJlYW0gPSBnX21lbW9yeV9pbnB1dF9z
dHJlYW1fbmV3X2Zyb21fZGF0YShkZWNvZGVkX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9zaXpl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDApOworICAgICAgICBnX29iamVjdF9zZXQoc3JjLT5raWQsICJzdHJlYW0i
LCBzdHJlYW0sIDApOworICAgIH0KKworICAgIGdfZnJlZShmb3JtYXRfYW5kX2RhdGEpOworICAg
IGdfZnJlZShkYXRhKTsKKyAgICBnX2ZyZWUobWltZV90eXBlKTsKKyAgICBnX2ZyZWUobWltZV90
eXBlX2FuZF9kYXRhKTsKKyAgICBnX2ZyZWUocmVtYWlucyk7CisgICAgZ19mcmVlKHNjaGVtZV9h
bmRfcmVtYWlucyk7CisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lkCit3ZWJraXRf
ZGF0YV9zcmNfdXJpX2hhbmRsZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLCBncG9pbnRlciBpZmFj
ZV9kYXRhKQoreworICAgIEdzdFVSSUhhbmRsZXJJbnRlcmZhY2UqIGlmYWNlID0gKEdzdFVSSUhh
bmRsZXJJbnRlcmZhY2UgKikgZ19pZmFjZTsKKworICAgIGlmYWNlLT5nZXRfdHlwZSA9IHdlYmtp
dF9kYXRhX3NyY191cmlfZ2V0X3R5cGU7CisgICAgaWZhY2UtPmdldF9wcm90b2NvbHMgPSB3ZWJr
aXRfZGF0YV9zcmNfdXJpX2dldF9wcm90b2NvbHM7CisgICAgaWZhY2UtPmdldF91cmkgPSB3ZWJr
aXRfZGF0YV9zcmNfdXJpX2dldF91cmk7CisgICAgaWZhY2UtPnNldF91cmkgPSB3ZWJraXRfZGF0
YV9zcmNfdXJpX3NldF91cmk7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjJhZTg4NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAwOSAgSWdhbGlhCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaWZuZGVmIERBVEFfU09VUkNFX0dTVFJFQU1FUl9ICisjZGVmaW5lIERBVEFfU09VUkNFX0dT
VFJFQU1FUl9ICisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGdzdC9iYXNl
L2dzdGJhc2VzcmMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0RB
VEFfU1JDICAgICAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19nZXRfdHlwZSAoKSkKKyNkZWZpbmUg
V0VCS0lUX0RBVEFfU1JDKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QgKChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0YVNyYykpCisjZGVmaW5l
IFdFQktJVF9EQVRBX1NSQ19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
ICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0YVNyY0NsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX0RBVEFfU1JDKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX1RZUEUgKChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQykpCisjZGVmaW5lIFdFQktJVF9J
U19EQVRBX1NSQ19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3Mp
LCBXRUJLSVRfVFlQRV9EQVRBX1NSQykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJraXREYXRhU3Jj
ICAgICAgICBXZWJraXREYXRhU3JjOwordHlwZWRlZiBzdHJ1Y3QgX1dlYmtpdERhdGFTcmNDbGFz
cyAgIFdlYmtpdERhdGFTcmNDbGFzczsKKworCitzdHJ1Y3QgX1dlYmtpdERhdGFTcmMgeworICAg
IEdzdEJpbiBwYXJlbnQ7CisKKyAgICAvKiBleHBsaWNpdCBwb2ludGVycyB0byBzdHVmZiB1c2Vk
ICovCisgICAgR3N0RWxlbWVudCAqa2lkOworICAgIEdzdFBhZCAqcGFkOworICAgIGdjaGFyKiB1
cmk7Cit9OworCitzdHJ1Y3QgX1dlYmtpdERhdGFTcmNDbGFzcyB7CisgICAgR3N0QmluQ2xhc3Mg
cGFyZW50X2NsYXNzOworfTsKKworR1R5cGUgd2Via2l0X2RhdGFfc3JjX2dldF90eXBlKHZvaWQp
OworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IDAwZDgyNDIuLjc2OTg1ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjUsNiAr
MjUsNyBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFtZXIuaCIKIAogI2luY2x1
ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTEyMiw2ICsx
MjMsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogCiBzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXpl
ZCA9IGZhbHNlOwogCitzdGF0aWMgdm9pZCBkb19nc3RfaW5pdCgpIHsKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKKyAgICBp
ZiAoIWdzdEluaXRpYWxpemVkKSB7CisgICAgICAgIGdzdF9pbml0KDAsIDApOworICAgICAgICBn
c3RJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKE5VTEws
ICJ3ZWJraXRtZWRpYXNyYyIsIEdTVF9SQU5LX1BSSU1BUlksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9UWVBFX0RBVEFfU1JDKTsKKworICAgIH0KK30KKwogTWVkaWFQbGF5
ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fcGxheUJpbigwKQpAQCAtMTQwLDExICsxNTIsNyBA
QCBNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciogcGxh
eWVyKQogICAgICwgbV9zZWVraW5nKGZhbHNlKQogICAgICwgbV9lcnJvck9jY3VyZWQoZmFsc2Up
CiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUg
Y29tbWFuZCBsaW5lCi0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewotICAgICAgICBnc3RfaW5p
dCgwLCAwKTsKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgIH0KKyAgICBkb19n
c3RfaW5pdCgpOwogCiAgICAgLy8gRklYTUU6IFRoZSBzaXplIHNob3VsZG4ndCBiZSBmaXhlZCBo
ZXJlLCB0aGlzIGlzIGp1c3QgYSBxdWljayBoYWNrLgogICAgIG1fc3VyZmFjZSA9IGNhaXJvX2lt
YWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIDY0MCwgNDgwKTsKQEAgLTY1
MiwxMCArNjYwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogc3RhdGljIEhhc2hTZXQ8U3Ry
aW5nPiBtaW1lVHlwZUNhY2hlKCkKIHsKLSAgICBpZiAoIWdzdEluaXRpYWxpemVkKSB7Ci0gICAg
ICAgIGdzdF9pbml0KDAsIE5VTEwpOwotICAgICAgICBnc3RJbml0aWFsaXplZCA9IHRydWU7Ci0g
ICAgfQorCisgICAgZG9fZ3N0X2luaXQoKTsKIAogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4g
Y2FjaGU7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwotLSAK
MS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40357</attachid>
            <date>2009-09-30 03:54:36 -0700</date>
            <delta_ts>2009-09-30 07:53:06 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>14538</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyZDNmNmNhMDQ4YjI4ODI1NjI5OWI3MjFjZjViODEwMzYzNWFmNzk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIExheW91dFRlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICsr
KwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA0ICstCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuY3Bw
ICB8ICAyMDcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oICAgIHwgICA1NCArKysrKwogLi4uL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDI0ICsrLQogNyBmaWxlcyBjaGFu
Z2VkLCAzMjAgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291
cmNlR1N0cmVhbWVyLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTVhYTM3My4uNmNkZTc0YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDA5LTA5LTMwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBkYXRhOiB1cmkgc3VwcG9ydCBpbiBtZWRpYSBwbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5ODQyCisKKyAgICAgICAgUmUtZW5hYmxlIG1l
ZGlhL2F1ZGlvLWRhdGEtdXJsLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDoKKwogMjAwOS0wOS0yOSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAppbmRleCAzNjYyMGZmLi5lZjY1YjQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApA
QCAtMzgwNCw3ICszODA0LDYgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3JtZWQuaHRt
bAogbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKIG1lZGlhL3ZpZGVvLXNpemUtaW50
cmluc2ljLXNjYWxlLmh0bWwKICMgICBUZXN0cyB0aW1pbmcgb3V0Ci1tZWRpYS9hdWRpby1kYXRh
LXVybC5odG1sCiBtZWRpYS9jb250cm9scy1kcmFnLXRpbWViYXIuaHRtbAogbWVkaWEvZXZlbnQt
YXR0cmlidXRlcy5odG1sCiBtZWRpYS91bnN1cHBvcnRlZC1ydHNwLmh0bWwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFjYzNkYy4uM2Q0
NDExZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAgICAg
IE5ldyBHU3RyZWFtZXIgZWxlbWVudCB0byBoYW5kbGUgZGF0YTogdXJpcy4gRm9yIG5vdyBvbmx5
IGJhc2U2NAorICAgICAgICBlbmNvZGVkIGRhdGEgaXMgc3VwcG9ydGVkLiBEZWNvZGVkIGRhdGEg
aXMgaGFuZGVkIG92ZXIgdG8KKyAgICAgICAgZ2lvc3RyZWFtc3JjLgorCisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VH
U3RyZWFtZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9kb19pbml0KToKKyAgICAgICAgKHdlYmtp
dF9kYXRhX3NyY19iYXNlX2luaXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX2NsYXNzX2lu
aXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3Jlc2V0KToKKyAgICAgICAgKHdlYmtpdF9k
YXRhX3NyY19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19maW5hbGl6ZSk6CisgICAg
ICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF90eXBlKToKKyAgICAgICAgKHdlYmtpdF9kYXRh
X3NyY191cmlfZ2V0X3Byb3RvY29scyk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dl
dF91cmkpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3VyaV9zZXRfdXJpKToKKyAgICAgICAg
KHdlYmtpdF9kYXRhX3NyY191cmlfaGFuZGxlcl9pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRvX2dzdF9pbml0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZTo6bWltZVR5cGVDYWNoZSk6CisKIDIwMDktMDktMjkgIERhdmUgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDYwNjA4NTEuLjUyYTkxZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjMxNSw3ICsyMzE1LDkgQEAgd2Vi
Y29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBcCi0JV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmgKKwlXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL0RhdGFTb3VyY2VHc3RyZWFtZXIuaAogCiB3ZWJjb3JlX2xpYmFkZCArPSBcCiAJLWxn
c3RpbnRlcmZhY2VzLTAuMTAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lMDU5MGYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA5ICBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVNvdXJjZUdTdHJl
YW1lci5oIgorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVkZSA8Z3N0L2dzdHV0aWxzLmg+CisKK3N0YXRpYyBHc3RT
dGF0aWNQYWRUZW1wbGF0ZSBzcmNfdGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgi
c3JjIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHU1RfUEFEX1NSQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1RfUEFEX0FMV0FZUywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHU1RfU1RBVElDX0NBUFNfQU5ZKTsKKworR1NUX0RFQlVHX0NBVEVHT1JZX1NU
QVRJQyh3ZWJraXRfZGF0YV9zcmNfZGVidWcpOworI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgd2Vi
a2l0X2RhdGFfc3JjX2RlYnVnCisKK3N0YXRpYyBjb25zdCBHc3RFbGVtZW50RGV0YWlscyB3ZWJr
aXRfZGF0YV9zcmNfZGV0YWlscyA9CisgICAgICBHU1RfRUxFTUVOVF9ERVRBSUxTKChnY2hhciop
ICJXZWJLaXQgZGF0YSBzb3VyY2UgZWxlbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChnY2hhciopICJTb3VyY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIqKSAi
SGFuZGxlcyBkYXRhOiB1cmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjaGFyKikg
IlBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+Iik7CisKKworc3RhdGljIHZv
aWQgd2Via2l0X2RhdGFfc3JjX3VyaV9oYW5kbGVyX2luaXQoZ3BvaW50ZXIgZ19pZmFjZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGlmYWNl
X2RhdGEpOworCitzdGF0aWMgdm9pZCB3ZWJraXRfZGF0YV9zcmNfZGlzcG9zZShHT2JqZWN0KiBv
YmplY3QpOworc3RhdGljIHZvaWQgd2Via2l0X2RhdGFfc3JjX2ZpbmFsaXplKFdlYmtpdERhdGFT
cmMqIHNyYyk7CisKK3N0YXRpYyBjb25zdCBHSW50ZXJmYWNlSW5mbyB1cmloYW5kbGVyX2luZm8g
PSB7CisgICAgd2Via2l0X2RhdGFfc3JjX3VyaV9oYW5kbGVyX2luaXQsCisgICAgMCwgMAorfTsK
KworCitzdGF0aWMgdm9pZAorX2RvX2luaXQoR1R5cGUgZGF0YXNyY190eXBlKQoreworICAgIEdT
VF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9kYXRhX3NyY19kZWJ1ZywgIndlYmtpdF9kYXRh
X3NyYyIsIDAsICJkYXRhc3JjIGVsZW1lbnQiKTsKKyAgICBnX3R5cGVfYWRkX2ludGVyZmFjZV9z
dGF0aWMoZGF0YXNyY190eXBlLCBHU1RfVFlQRV9VUklfSEFORExFUiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJnVyaWhhbmRsZXJfaW5mbyk7Cit9CisKK0dTVF9CT0lMRVJQTEFU
RV9GVUxMKFdlYmtpdERhdGFTcmMsIHdlYmtpdF9kYXRhX3NyYywgR3N0QmluLCBHU1RfVFlQRV9C
SU4sIF9kb19pbml0KTsKKworc3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19iYXNlX2luaXQo
Z3BvaW50ZXIga2xhc3MpCit7CisgICAgR3N0RWxlbWVudENsYXNzKiBlbGVtZW50X2NsYXNzID0g
R1NUX0VMRU1FTlRfQ0xBU1Moa2xhc3MpOworCisgICAgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3Bh
ZF90ZW1wbGF0ZShlbGVtZW50X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KCZzcmNfdGVtcGxhdGUpKTsKKyAg
ICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyhlbGVtZW50X2NsYXNzLCAmd2Via2l0X2Rh
dGFfc3JjX2RldGFpbHMpOworfQorCitzdGF0aWMgdm9pZAord2Via2l0X2RhdGFfc3JjX2NsYXNz
X2luaXQoV2Via2l0RGF0YVNyY0NsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9r
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKworICAgIG9rbGFzcy0+ZmluYWxpemUgPSAo
R09iamVjdEZpbmFsaXplRnVuYykgd2Via2l0X2RhdGFfc3JjX2ZpbmFsaXplOworfQorCisKK3N0
YXRpYyBnYm9vbGVhbgord2Via2l0X2RhdGFfc3JjX3Jlc2V0KFdlYmtpdERhdGFTcmMqIHNyYykK
K3sKKyAgICBHc3RQYWQqIHRhcmdldHBhZDsKKworICAgIGlmIChzcmMtPmtpZCkgeworICAgICAg
ICBnc3RfZWxlbWVudF9zZXRfc3RhdGUoc3JjLT5raWQsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAg
ICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihzcmMpLCBzcmMtPmtpZCk7CisgICAgfQorCisgICAg
c3JjLT5raWQgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImdpb3N0cmVhbXNyYyIsICJzdHJl
YW1zcmMiKTsKKyAgICBpZiAoIXNyYy0+a2lkKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qo
c3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBnaW9zdHJlYW1zcmMiKTsKKyAgICAgICAgcmV0dXJuIEZB
TFNFOworICAgIH0KKworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgc3JjLT5raWQpOwor
CisgICAgdGFyZ2V0cGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoc3JjLT5raWQsICJz
cmMiKTsKKyAgICBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQoR1NUX0dIT1NUX1BBRChzcmMtPnBh
ZCksIHRhcmdldHBhZCk7CisgICAgZ3N0X29iamVjdF91bnJlZih0YXJnZXRwYWQpOworCisgICAg
cmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfaW5pdChXZWJr
aXREYXRhU3JjKiBzcmMsCisgICAgV2Via2l0RGF0YVNyY0NsYXNzKiBnX2NsYXNzKQoreworICAg
IHNyYy0+cGFkID0gZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KCJzcmMiLCBHU1RfUEFEX1NS
Qyk7CisgICAgZ3N0X2VsZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzcmMpLCBzcmMtPnBhZCk7
CisKKyAgICB3ZWJraXRfZGF0YV9zcmNfcmVzZXQoc3JjKTsKK30KKworc3RhdGljIHZvaWQKK3dl
YmtpdF9kYXRhX3NyY19maW5hbGl6ZShXZWJraXREYXRhU3JjKiBzcmMpCit7CisgICAgZ19mcmVl
KHNyYy0+dXJpKTsKKworICAgIGlmIChzcmMtPmtpZCkgeworICAgICAgICBHU1RfREVCVUdfT0JK
RUNUKHNyYywgIlJlbW92aW5nIGdpb3N0cmVhbXNyYyBlbGVtZW50Iik7CisgICAgICAgIGdzdF9l
bGVtZW50X3NldF9zdGF0ZShzcmMtPmtpZCwgR1NUX1NUQVRFX05VTEwpOworICAgICAgICBnc3Rf
YmluX3JlbW92ZShHU1RfQklOKHNyYyksIHNyYy0+a2lkKTsKKyAgICAgICAgc3JjLT5raWQgPSAw
OworICAgIH0KKworICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9DTEFTUywgZmluYWxpemUs
ICgoR09iamVjdCAqKShzcmMpKSk7Cit9CisKKworLyoqKiBHU1RVUklIQU5ETEVSIElOVEVSRkFD
RSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitz
dGF0aWMgR3N0VVJJVHlwZQord2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZSh2b2lkKQorewor
ICAgIHJldHVybiBHU1RfVVJJX1NSQzsKK30KKworc3RhdGljIGdjaGFyICoqCit3ZWJraXRfZGF0
YV9zcmNfdXJpX2dldF9wcm90b2NvbHModm9pZCkKK3sKKyAgICBzdGF0aWMgZ2NoYXIqIHByb3Rv
Y29sc1tdID0geyhnY2hhciopICJkYXRhIiwgMCB9OworCisgICAgcmV0dXJuIHByb3RvY29sczsK
K30KKworc3RhdGljIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9kYXRhX3NyY191cmlfZ2V0X3VyaShH
c3RVUklIYW5kbGVyKiBoYW5kbGVyKQoreworICAgIFdlYmtpdERhdGFTcmMqIHNyYyA9IFdFQktJ
VF9EQVRBX1NSQyhoYW5kbGVyKTsKKworICAgIHJldHVybiBzcmMtPnVyaTsKK30KKworc3RhdGlj
IGdib29sZWFuCit3ZWJraXRfZGF0YV9zcmNfdXJpX3NldF91cmkoR3N0VVJJSGFuZGxlciogaGFu
ZGxlciwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBXZWJraXREYXRhU3JjKiBzcmMgPSBXRUJL
SVRfREFUQV9TUkMoaGFuZGxlcik7CisKKyAgICAvLyB3ZSBwYXJzZSBVUklzIGxpa2UgdGhpcyBv
bmU6IGRhdGE6YXVkaW8vM2dwcDtiYXNlNjQsQUEuLi4KKyAgICBnY2hhciogYWZ0ZXJfbWltZXR5
cGUgPSBnX3N0cnJzdHIodXJpLCAiOyIpOworICAgIGlmICghYWZ0ZXJfbWltZXR5cGUpIHsKKyAg
ICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJOb3QgYSB2YWxpZCBkYXRhOiB1cmk6ICVzIiwg
dXJpKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIHN0
cmlwIGZpcnN0IDsgY2hhcmFjdGVyCisgICAgICAgIGFmdGVyX21pbWV0eXBlKys7CisgICAgfQor
CisgICAgaWYgKHNyYy0+dXJpKSB7CisgICAgICAgIGdfZnJlZShzcmMtPnVyaSk7CisgICAgICAg
IHNyYy0+dXJpID0gMDsKKyAgICB9CisKKyAgICBzcmMtPnVyaSA9IGdfc3RyZHVwKHVyaSk7CisK
KyAgICBnY2hhcioqIGZvcm1hdF9hbmRfZGF0YSA9IGdfc3Ryc3BsaXQoYWZ0ZXJfbWltZXR5cGUs
ICIsIiwgMik7CisKKyAgICBpZiAoZ19zdHJfZXF1YWwoZm9ybWF0X2FuZF9kYXRhWzBdLCAiYmFz
ZTY0IikpIHsKKyAgICAgICAgZ3NpemUgZGVjb2RlZF9zaXplID0gMDsKKyAgICAgICAgZ3VjaGFy
KiBkZWNvZGVkX2RhdGEgPSBnX2Jhc2U2NF9kZWNvZGUoZm9ybWF0X2FuZF9kYXRhWzFdLCAmZGVj
b2RlZF9zaXplKTsKKyAgICAgICAgR0lucHV0U3RyZWFtKiBzdHJlYW0gPSBnX21lbW9yeV9pbnB1
dF9zdHJlYW1fbmV3X2Zyb21fZGF0YShkZWNvZGVkX2RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9z
aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDApOworICAgICAgICBnX29iamVjdF9zZXQoc3JjLT5raWQsICJzdHJl
YW0iLCBzdHJlYW0sIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qo
c3JjLCAiRm9ybWF0IG5vdCBzdXBwb3J0ZWQ6ICVzIiwgZm9ybWF0X2FuZF9kYXRhWzBdKTsKKyAg
ICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIGdfc3RyZnJlZXYoZm9ybWF0X2FuZF9k
YXRhKTsKKyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3Ny
Y191cmlfaGFuZGxlcl9pbml0KGdwb2ludGVyIGdfaWZhY2UsIGdwb2ludGVyIGlmYWNlX2RhdGEp
Cit7CisgICAgR3N0VVJJSGFuZGxlckludGVyZmFjZSogaWZhY2UgPSAoR3N0VVJJSGFuZGxlcklu
dGVyZmFjZSAqKSBnX2lmYWNlOworCisgICAgaWZhY2UtPmdldF90eXBlID0gd2Via2l0X2RhdGFf
c3JjX3VyaV9nZXRfdHlwZTsKKyAgICBpZmFjZS0+Z2V0X3Byb3RvY29scyA9IHdlYmtpdF9kYXRh
X3NyY191cmlfZ2V0X3Byb3RvY29sczsKKyAgICBpZmFjZS0+Z2V0X3VyaSA9IHdlYmtpdF9kYXRh
X3NyY191cmlfZ2V0X3VyaTsKKyAgICBpZmFjZS0+c2V0X3VyaSA9IHdlYmtpdF9kYXRhX3NyY191
cmlfc2V0X3VyaTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0RhdGFTb3VyY2VHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rh
dGFTb3VyY2VHU3RyZWFtZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
OTUzMmZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA5ICBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aWZuZGVmIERBVEFfU09VUkNFX0dTVFJFQU1FUl9ICisjZGVmaW5lIERBVEFfU09VUkNFX0dTVFJF
QU1FUl9ICisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGdzdC9iYXNlL2dz
dGJhc2VzcmMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0RBVEFf
U1JDICAgICAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19nZXRfdHlwZSAoKSkKKyNkZWZpbmUgV0VC
S0lUX0RBVEFfU1JDKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1Qg
KChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0YVNyYykpCisjZGVmaW5lIFdF
QktJVF9EQVRBX1NSQ19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgo
a2xhc3MpLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0YVNyY0NsYXNzKSkKKyNkZWZp
bmUgV0VCS0lUX0lTX0RBVEFfU1JDKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X1RZUEUgKChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQykpCisjZGVmaW5lIFdFQktJVF9JU19E
QVRBX1NSQ19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3MpLCBX
RUJLSVRfVFlQRV9EQVRBX1NSQykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJraXREYXRhU3JjICAg
ICAgICBXZWJraXREYXRhU3JjOwordHlwZWRlZiBzdHJ1Y3QgX1dlYmtpdERhdGFTcmNDbGFzcyAg
IFdlYmtpdERhdGFTcmNDbGFzczsKKworCitzdHJ1Y3QgX1dlYmtpdERhdGFTcmMgeworICAgIEdz
dEJpbiBwYXJlbnQ7CisKKyAgICAvKiBleHBsaWNpdCBwb2ludGVycyB0byBzdHVmZiB1c2VkICov
CisgICAgR3N0RWxlbWVudCoga2lkOworICAgIEdzdFBhZCogcGFkOworICAgIGdjaGFyKiB1cmk7
Cit9OworCitzdHJ1Y3QgX1dlYmtpdERhdGFTcmNDbGFzcyB7CisgICAgR3N0QmluQ2xhc3MgcGFy
ZW50X2NsYXNzOworfTsKKworR1R5cGUgd2Via2l0X2RhdGFfc3JjX2dldF90eXBlKHZvaWQpOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDAw
ZDgyNDIuLjY0YzQxZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjUsNiArMjUs
NyBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFtZXIuaCIKIAogI2luY2x1ZGUg
IkNTdHJpbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTEyMiw2ICsxMjMs
MTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogCiBzdGF0aWMgYm9vbCBnc3RJbml0aWFsaXplZCA9
IGZhbHNlOwogCitzdGF0aWMgdm9pZCBkb19nc3RfaW5pdCgpIHsKKyAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKKyAgICBpZiAo
IWdzdEluaXRpYWxpemVkKSB7CisgICAgICAgIGdzdF9pbml0KDAsIDApOworICAgICAgICBnc3RJ
bml0aWFsaXplZCA9IHRydWU7CisgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKDAsICJ3ZWJr
aXRtZWRpYXNyYyIsIEdTVF9SQU5LX1BSSU1BUlksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9UWVBFX0RBVEFfU1JDKTsKKworICAgIH0KK30KKwogTWVkaWFQbGF5ZXJQcml2
YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6IG1fcGxh
eWVyKHBsYXllcikKICAgICAsIG1fcGxheUJpbigwKQpAQCAtMTQwLDExICsxNTIsNyBAQCBNZWRp
YVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciogcGxheWVyKQog
ICAgICwgbV9zZWVraW5nKGZhbHNlKQogICAgICwgbV9lcnJvck9jY3VyZWQoZmFsc2UpCiB7Ci0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgY29tbWFu
ZCBsaW5lCi0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewotICAgICAgICBnc3RfaW5pdCgwLCAw
KTsKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgIH0KKyAgICBkb19nc3RfaW5p
dCgpOwogCiAgICAgLy8gRklYTUU6IFRoZSBzaXplIHNob3VsZG4ndCBiZSBmaXhlZCBoZXJlLCB0
aGlzIGlzIGp1c3QgYSBxdWljayBoYWNrLgogICAgIG1fc3VyZmFjZSA9IGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIDY0MCwgNDgwKTsKQEAgLTY1MiwxMCAr
NjYwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBt
aW1lVHlwZUNhY2hlKCkKIHsKLSAgICBpZiAoIWdzdEluaXRpYWxpemVkKSB7Ci0gICAgICAgIGdz
dF9pbml0KDAsIE5VTEwpOwotICAgICAgICBnc3RJbml0aWFsaXplZCA9IHRydWU7Ci0gICAgfQor
CisgICAgZG9fZ3N0X2luaXQoKTsKIAogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gY2FjaGU7
CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwotLSAKMS42LjAu
NAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40371</attachid>
            <date>2009-09-30 07:53:06 -0700</date>
            <delta_ts>2009-09-30 08:02:18 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>17936</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiZTA0MWVlZDg1ZTUyOGY2MmM1YjU4NWZlMGFiZmMxMWQ3ZTU2NWU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIENoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxIC0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
MCArKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNyArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVy
LmNwcCAgfCAgMjY1ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaCAgICB8ICAgNTQgKysrKwogLi4uL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDI0ICsrLQogY29uZmlndXJl
LmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIDkgZmls
ZXMgY2hhbmdlZCwgMzkyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFt
ZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IGUyYzFlZjUuLjk0Y2YyZTMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIENoZWNrIHByZXNlbmNlIG9mIGdzdHJlYW1lci1wYnV0aWxzLTAuMTAuCisKKyAgICAgICAg
KiBjb25maWd1cmUuYWM6CisKIDIwMDktMDktMjYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBHVEsgQlVJTEQgRklYOiBhZGQgRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUyBzdXBwb3J0IHRvIGNvbmZpZ3VyZS5hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1YWEzNzMuLjZjZGU3NGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIFJlLWVuYWJsZSBtZWRpYS9hdWRpby1kYXRhLXVybC5odG1sLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMDktMDktMjkgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFt
YWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzY2MjBmZi4uZWY2NWI0MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTM4MDQsNyArMzgwNCw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xz
LXRyYW5zZm9ybWVkLmh0bWwKIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBtZWRp
YS92aWRlby1zaXplLWludHJpbnNpYy1zY2FsZS5odG1sCiAjICAgVGVzdHMgdGltaW5nIG91dAot
bWVkaWEvYXVkaW8tZGF0YS11cmwuaHRtbAogbWVkaWEvY29udHJvbHMtZHJhZy10aW1lYmFyLmh0
bWwKIG1lZGlhL2V2ZW50LWF0dHJpYnV0ZXMuaHRtbAogbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC5o
dG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGFhY2MzZGMuLjNkNDQxMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDktMzAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGRhdGE6IHVyaSBzdXBwb3J0IGluIG1lZGlh
IHBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk4NDIKKworICAgICAgICBOZXcgR1N0cmVhbWVyIGVsZW1lbnQgdG8gaGFuZGxlIGRhdGE6IHVy
aXMuIEZvciBub3cgb25seSBiYXNlNjQKKyAgICAgICAgZW5jb2RlZCBkYXRhIGlzIHN1cHBvcnRl
ZC4gRGVjb2RlZCBkYXRhIGlzIGhhbmRlZCBvdmVyIHRvCisgICAgICAgIGdpb3N0cmVhbXNyYy4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChfZG9faW5pdCk6
CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KToKKyAgICAgICAgKHdlYmtpdF9k
YXRhX3NyY19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19yZXNldCk6Cisg
ICAgICAgICh3ZWJraXRfZGF0YV9zcmNfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNf
ZmluYWxpemUpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZSk6CisgICAg
ICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF9wcm90b2NvbHMpOgorICAgICAgICAod2Via2l0
X2RhdGFfc3JjX3VyaV9nZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlfc2V0
X3VyaSk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb19nc3RfaW5pdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om1pbWVUeXBlQ2FjaGUpOgorCiAyMDA5LTA5LTI5
ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpv
biBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2MDYwODUxLi41MTY5ZTVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIzMTUs
MTEgKzIzMTUsMTQgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBcCi0J
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmgKKwlXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgXAorCVdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHc3RyZWFtZXIuaAogCiB3ZWJjb3Jl
X2xpYmFkZCArPSBcCiAJLWxnc3RpbnRlcmZhY2VzLTAuMTAgXAotCS1sZ3N0dmlkZW8tMC4xMAor
CS1sZ3N0dmlkZW8tMC4xMCBcCisJLWxnc3RwYnV0aWxzLTAuMTAKIAogZW5kaWYgIyBFTkQgRU5B
QkxFX1ZJREVPCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rh
dGFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0
YVNvdXJjZUdTdHJlYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2ZjMDRlNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0RhdGFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEsMjY1IEBACisvKgorICogIENvcHly
aWdodCAoQykgMjAwOSAgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFtZXIuaCIK
KworI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z3N0
L2dzdC5oPgorI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgorCitzdGF0
aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc3JjX3RlbXBsYXRlID0gR1NUX1NUQVRJQ19QQURfVEVN
UExBVEUoInNyYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9TUkMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9B
TFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1NUX1NUQVRJQ19DQVBTX0FOWSk7CisKK0dTVF9ERUJVR19DQVRF
R09SWV9TVEFUSUMod2Via2l0X2RhdGFfc3JjX2RlYnVnKTsKKyNkZWZpbmUgR1NUX0NBVF9ERUZB
VUxUIHdlYmtpdF9kYXRhX3NyY19kZWJ1ZworCitzdGF0aWMgdm9pZCB3ZWJraXRfZGF0YV9zcmNf
dXJpX2hhbmRsZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgaWZhY2VfZGF0YSk7CisKK3N0YXRpYyB2
b2lkIHdlYmtpdF9kYXRhX3NyY19kaXNwb3NlKEdPYmplY3QqIG9iamVjdCk7CitzdGF0aWMgdm9p
ZCB3ZWJraXRfZGF0YV9zcmNfZmluYWxpemUoV2Via2l0RGF0YVNyYyogc3JjKTsKK3N0YXRpYyBH
c3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJraXRfZGF0YV9zcmNfY2hhbmdlX3N0YXRlKEdzdEVsZW1l
bnQqIGVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKTsKKworc3RhdGljIGNvbnN0
IEdJbnRlcmZhY2VJbmZvIHVyaWhhbmRsZXJfaW5mbyA9IHsKKyAgICB3ZWJraXRfZGF0YV9zcmNf
dXJpX2hhbmRsZXJfaW5pdCwKKyAgICAwLCAwCit9OworCisKK3N0YXRpYyB2b2lkCitfZG9faW5p
dChHVHlwZSBkYXRhc3JjX3R5cGUpCit7CisgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Vi
a2l0X2RhdGFfc3JjX2RlYnVnLCAid2Via2l0X2RhdGFfc3JjIiwgMCwgImRhdGFzcmMgZWxlbWVu
dCIpOworICAgIGdfdHlwZV9hZGRfaW50ZXJmYWNlX3N0YXRpYyhkYXRhc3JjX3R5cGUsIEdTVF9U
WVBFX1VSSV9IQU5ETEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXJpaGFu
ZGxlcl9pbmZvKTsKK30KKworR1NUX0JPSUxFUlBMQVRFX0ZVTEwoV2Via2l0RGF0YVNyYywgd2Vi
a2l0X2RhdGFfc3JjLCBHc3RCaW4sIEdTVF9UWVBFX0JJTiwgX2RvX2luaXQpOworCitzdGF0aWMg
dm9pZAord2Via2l0X2RhdGFfc3JjX2Jhc2VfaW5pdChncG9pbnRlciBrbGFzcykKK3sKKyAgICBH
c3RFbGVtZW50Q2xhc3MqIGVsZW1lbnRfY2xhc3MgPSBHU1RfRUxFTUVOVF9DTEFTUyhrbGFzcyk7
CisKKyAgICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoZWxlbWVudF9jbGFz
cywgKGdjaGFyKikgIldlYktpdCBkYXRhIHNvdXJjZSBlbGVtZW50IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjaGFyKikgIlNvdXJjZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJIYW5kbGVzIGRhdGE6IHVy
aXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIqKSAi
UGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4iKTsKKworfQorCitzdGF0aWMg
dm9pZAord2Via2l0X2RhdGFfc3JjX2NsYXNzX2luaXQoV2Via2l0RGF0YVNyY0NsYXNzKiBrbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9rbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsK
KyAgICBHc3RFbGVtZW50Q2xhc3MgKmVrbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTIChrbGFzcyk7
CisKKyAgICBva2xhc3MtPmZpbmFsaXplID0gKEdPYmplY3RGaW5hbGl6ZUZ1bmMpIHdlYmtpdF9k
YXRhX3NyY19maW5hbGl6ZTsKKyAgICBla2xhc3MtPmNoYW5nZV9zdGF0ZSA9IHdlYmtpdF9kYXRh
X3NyY19jaGFuZ2Vfc3RhdGU7Cit9CisKKworc3RhdGljIGdib29sZWFuCit3ZWJraXRfZGF0YV9z
cmNfcmVzZXQoV2Via2l0RGF0YVNyYyogc3JjKQoreworICAgIEdzdFBhZCogdGFyZ2V0cGFkOwor
CisgICAgaWYgKHNyYy0+a2lkKSB7CisgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShzcmMt
PmtpZCwgR1NUX1NUQVRFX05VTEwpOworICAgICAgICBnc3RfYmluX3JlbW92ZShHU1RfQklOKHNy
YyksIHNyYy0+a2lkKTsKKyAgICB9CisKKyAgICBzcmMtPmtpZCA9IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfbWFrZSgiZ2lvc3RyZWFtc3JjIiwgInN0cmVhbXNyYyIpOworICAgIGlmICghc3JjLT5raWQp
IHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIGdpb3N0
cmVhbXNyYyIpOworICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQorCisgICAgZ3N0X2Jpbl9h
ZGQoR1NUX0JJTihzcmMpLCBzcmMtPmtpZCk7CisKKyAgICB0YXJnZXRwYWQgPSBnc3RfZWxlbWVu
dF9nZXRfc3RhdGljX3BhZChzcmMtPmtpZCwgInNyYyIpOworICAgIGdzdF9naG9zdF9wYWRfc2V0
X3RhcmdldChHU1RfR0hPU1RfUEFEKHNyYy0+cGFkKSwgdGFyZ2V0cGFkKTsKKyAgICBnc3Rfb2Jq
ZWN0X3VucmVmKHRhcmdldHBhZCk7CisKKyAgICByZXR1cm4gVFJVRTsKK30KKworc3RhdGljIHZv
aWQKK3dlYmtpdF9kYXRhX3NyY19pbml0KFdlYmtpdERhdGFTcmMqIHNyYywKKyAgICBXZWJraXRE
YXRhU3JjQ2xhc3MqIGdfY2xhc3MpCit7CisgICAgR3N0UGFkVGVtcGxhdGUqIHBhZF90ZW1wbGF0
ZSA9IGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCgmc3JjX3RlbXBsYXRlKTsKKyAgICBzcmMt
PnBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKCJzcmMiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFkX3RlbXBsYXRlKTsKKworICAgIGdzdF9lbGVtZW50X2FkZF9wYWQoR1NUX0VMRU1FTlQoc3Jj
KSwgc3JjLT5wYWQpOworCisgICAgd2Via2l0X2RhdGFfc3JjX3Jlc2V0KHNyYyk7Cit9CisKK3N0
YXRpYyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfZmluYWxpemUoV2Via2l0RGF0YVNyYyogc3JjKQor
eworICAgIGdfZnJlZShzcmMtPnVyaSk7CisKKyAgICBpZiAoc3JjLT5raWQpIHsKKyAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChzcmMsICJSZW1vdmluZyBnaW9zdHJlYW1zcmMgZWxlbWVudCIpOwor
ICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUoc3JjLT5raWQsIEdTVF9TVEFURV9OVUxMKTsK
KyAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihzcmMpLCBzcmMtPmtpZCk7CisgICAgICAg
IHNyYy0+a2lkID0gMDsKKyAgICB9CisKKyAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xB
U1MsIGZpbmFsaXplLCAoKEdPYmplY3QgKikoc3JjKSkpOworfQorCitzdGF0aWMgR3N0U3RhdGVD
aGFuZ2VSZXR1cm4KK3dlYmtpdF9kYXRhX3NyY19jaGFuZ2Vfc3RhdGUoR3N0RWxlbWVudCogZWxl
bWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKK3sKKyAgR3N0U3RhdGVDaGFuZ2VSZXR1
cm4gcmV0ID0gR1NUX1NUQVRFX0NIQU5HRV9TVUNDRVNTOworICBXZWJraXREYXRhU3JjKiBzcmMg
PSBXRUJLSVRfREFUQV9TUkMoZWxlbWVudCk7CisKKyAgc3dpdGNoICh0cmFuc2l0aW9uKSB7Cisg
ICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX05VTExfVE9fUkVBRFk6CisgICAgICBpZiAoIXNyYy0+
a2lkKSB7CisgICAgICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X21pc3NpbmdfZWxlbWVudF9tZXNzYWdlX25l
dyhlbGVtZW50LCAiZ2lvc3RyZWFtc3JjIikpOworICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihz
cmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoTlVMTCksICgibm8gZ2lvc3RyZWFtc3JjISIpKTsK
KyAgICAgICAgcmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKKyAgICAgIH0KKyAgICAg
IGJyZWFrOworICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9SRUFEWV9UT19QQVVTRUQ6CisgICAg
Y2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKKyAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQorIHsKKyAgICBHc3RTdGF0ZUNoYW5nZVJldHVy
biBicmV0OworCisgICAgYnJldCA9IEdTVF9FTEVNRU5UX0NMQVNTIChwYXJlbnRfY2xhc3MpLT5j
aGFuZ2Vfc3RhdGUgKGVsZW1lbnQsIHRyYW5zaXRpb24pOworICAgIGlmIChHX1VOTElLRUxZIChi
cmV0ID09IEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRSkpCisgICAgICByZXR1cm4gYnJldDsKKyAg
fQorICBzd2l0Y2ggKHRyYW5zaXRpb24pIHsKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUExB
WUlOR19UT19QQVVTRUQ6CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFE
WToKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUkVBRFlfVE9fTlVMTDoKKyAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQorCisgIHJldHVybiByZXQ7Cit9CisK
Ky8qKiogR1NUVVJJSEFORExFUiBJTlRFUkZBQ0UgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIEdzdFVSSVR5cGUKK3dlYmtpdF9kYXRh
X3NyY191cmlfZ2V0X3R5cGUodm9pZCkKK3sKKyAgICByZXR1cm4gR1NUX1VSSV9TUkM7Cit9CisK
K3N0YXRpYyBnY2hhciAqKgord2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKHZvaWQp
Cit7CisgICAgc3RhdGljIGdjaGFyKiBwcm90b2NvbHNbXSA9IHsoZ2NoYXIqKSAiZGF0YSIsIDAg
fTsKKworICAgIHJldHVybiBwcm90b2NvbHM7Cit9CisKK3N0YXRpYyBjb25zdCBnY2hhciAqCit3
ZWJraXRfZGF0YV9zcmNfdXJpX2dldF91cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKK3sKKyAg
ICBXZWJraXREYXRhU3JjKiBzcmMgPSBXRUJLSVRfREFUQV9TUkMoaGFuZGxlcik7CisKKyAgICBy
ZXR1cm4gc3JjLT51cmk7Cit9CisKK3N0YXRpYyBnYm9vbGVhbgord2Via2l0X2RhdGFfc3JjX3Vy
aV9zZXRfdXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1cmkpCit7Cisg
ICAgV2Via2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RBVEFfU1JDKGhhbmRsZXIpOworCisgICAg
Ly8gVVJJIGFzIGRlZmluZWQgaW4gUkZDMjM5NzoKKyAgICAvLyAiZGF0YToiIFsgbWVkaWF0eXBl
IF0gWyAiO2Jhc2U2NCIgXSAiLCIgZGF0YQorICAgIC8vIHdlIHBhcnNlIFVSSXMgbGlrZSB0aGlz
IG9uZToKKyAgICAvLyBkYXRhOmF1ZGlvLzNncHA7YmFzZTY0LEFBLi4uCisKKyAgICBnY2hhcioq
IHNjaGVtZV9hbmRfcmVtYWlucyA9IGdfc3Ryc3BsaXQodXJpLCAiOiIsIDIpOworICAgIGdjaGFy
KiogbWltZV90eXBlX2FuZF9vcHRpb25zID0gZ19zdHJzcGxpdChzY2hlbWVfYW5kX3JlbWFpbnNb
MV0sICI7IiwgMCk7CisgICAgZ2ludCBvcHRpb25zX3NpemUgPSBnX3N0cnZfbGVuZ3RoKG1pbWVf
dHlwZV9hbmRfb3B0aW9ucyk7CisgICAgZ2NoYXIqIGRhdGEgPSAwOworICAgIGdjaGFyKiBtaW1l
X3R5cGUgPSAwOworICAgIGdpbnQgcmV0ID0gRkFMU0U7CisKKyAgICAvLyB3ZSByZXF1aXJlIHVy
aXMgd2l0aCBhIHNwZWNpZmllZCBtaW1lLXR5cGUgYW5kIGJhc2U2NC1lbmNvZGVkCisgICAgLy8g
ZGF0YS4gSXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5IHRvIHBsYXkgcGxhaW4vdGV4
dCBkYXRhCisgICAgLy8gd2l0aCB2ZXJ5IGZldyBhbGxvd2VkIGNoYXJhY3RlcnMgKGFzIHBlciB0
aGUgUkZDKS4KKworICAgIGlmIChHU1RfU1RBVEUoc3JjKSA+IEdTVF9TVEFURV9QQVVTRUQpIHsK
KyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJFbGVtZW50IGFscmVhZHkgY29uZmlndXJl
ZC4gUmVzZXQgaXQgYW5kIHJldHJ5Iik7CisgICAgfSBlbHNlIGlmICghb3B0aW9uc19zaXplKSB7
CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiQSBtaW1lLXR5cGUgaXMgbmVlZGVkIGlu
ICVzIiwgdXJpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtaW1lX3R5cGUgPSBtaW1lX3R5cGVf
YW5kX29wdGlvbnNbMF07CisgICAgICAgIGRhdGEgPSBtaW1lX3R5cGVfYW5kX29wdGlvbnNbb3B0
aW9uc19zaXplLTFdOworCisgICAgICAgIGd1Y2hhciogZGVjb2RlZF9kYXRhID0gMDsKKyAgICAg
ICAgZ3NpemUgZGVjb2RlZF9zaXplOworCisgICAgICAgIGlmICghZ19zdHJfaGFzX3ByZWZpeChk
YXRhLCAiYmFzZTY0IikpIHsKKyAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRGF0
YSBoYXMgdG8gYmUgYmFzZTY0LWVuY29kZWQgaW4gJXMiLCB1cmkpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgZGVjb2RlZF9kYXRhID0gZ19iYXNlNjRfZGVjb2RlKGRhdGErNywgJmRl
Y29kZWRfc2l6ZSk7CisgICAgICAgICAgICBHSW5wdXRTdHJlYW0qIHN0cmVhbSA9IGdfbWVtb3J5
X2lucHV0X3N0cmVhbV9uZXdfZnJvbV9kYXRhKGRlY29kZWRfZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVjb2RlZF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUpOworICAgICAgICAgICAgZ19vYmpl
Y3Rfc2V0KHNyYy0+a2lkLCAic3RyZWFtIiwgc3RyZWFtLCBOVUxMKTsKKyAgICAgICAgICAgIGdf
b2JqZWN0X3VucmVmKHN0cmVhbSk7CisKKyAgICAgICAgICAgIGlmIChzcmMtPnVyaSkgeworICAg
ICAgICAgICAgICAgIGdfZnJlZShzcmMtPnVyaSk7CisgICAgICAgICAgICAgICAgc3JjLT51cmkg
PSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcmMtPnVyaSA9IGdfc3RyZHVwKHVy
aSk7CisgICAgICAgICAgICByZXQgPSBUUlVFOworICAgICAgICB9CisgICAgfQorCisgICAgZ19z
dHJmcmVldihzY2hlbWVfYW5kX3JlbWFpbnMpOworICAgIGdfc3RyZnJlZXYobWltZV90eXBlX2Fu
ZF9vcHRpb25zKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZAord2Via2l0X2Rh
dGFfc3JjX3VyaV9oYW5kbGVyX2luaXQoZ3BvaW50ZXIgZ19pZmFjZSwgZ3BvaW50ZXIgaWZhY2Vf
ZGF0YSkKK3sKKyAgICBHc3RVUklIYW5kbGVySW50ZXJmYWNlKiBpZmFjZSA9IChHc3RVUklIYW5k
bGVySW50ZXJmYWNlICopIGdfaWZhY2U7CisKKyAgICBpZmFjZS0+Z2V0X3R5cGUgPSB3ZWJraXRf
ZGF0YV9zcmNfdXJpX2dldF90eXBlOworICAgIGlmYWNlLT5nZXRfcHJvdG9jb2xzID0gd2Via2l0
X2RhdGFfc3JjX3VyaV9nZXRfcHJvdG9jb2xzOworICAgIGlmYWNlLT5nZXRfdXJpID0gd2Via2l0
X2RhdGFfc3JjX3VyaV9nZXRfdXJpOworICAgIGlmYWNlLT5zZXRfdXJpID0gd2Via2l0X2RhdGFf
c3JjX3VyaV9zZXRfdXJpOworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRGF0YVNvdXJjZUdTdHJlYW1lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE5NTMyZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDkgIElnYWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpZm5kZWYgREFUQV9TT1VSQ0VfR1NUUkVBTUVSX0gKKyNkZWZpbmUgREFUQV9TT1VSQ0Vf
R1NUUkVBTUVSX0gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8Z3N0L2Jh
c2UvZ3N0YmFzZXNyYy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVf
REFUQV9TUkMgICAgICAgICAgICAod2Via2l0X2RhdGFfc3JjX2dldF90eXBlICgpKQorI2RlZmlu
ZSBXRUJLSVRfREFUQV9TUkMob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCAoKG9iaiksIFdFQktJVF9UWVBFX0RBVEFfU1JDLCBXZWJraXREYXRhU3JjKSkKKyNkZWZp
bmUgV0VCS0lUX0RBVEFfU1JDX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QgKChrbGFzcyksIFdFQktJVF9UWVBFX0RBVEFfU1JDLCBXZWJraXREYXRhU3JjQ2xhc3MpKQor
I2RlZmluZSBXRUJLSVRfSVNfREFUQV9TUkMob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSAoKG9iaiksIFdFQktJVF9UWVBFX0RBVEFfU1JDKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX0RBVEFfU1JDX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFz
cyksIFdFQktJVF9UWVBFX0RBVEFfU1JDKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYmtpdERhdGFT
cmMgICAgICAgIFdlYmtpdERhdGFTcmM7Cit0eXBlZGVmIHN0cnVjdCBfV2Via2l0RGF0YVNyY0Ns
YXNzICAgV2Via2l0RGF0YVNyY0NsYXNzOworCisKK3N0cnVjdCBfV2Via2l0RGF0YVNyYyB7Cisg
ICAgR3N0QmluIHBhcmVudDsKKworICAgIC8qIGV4cGxpY2l0IHBvaW50ZXJzIHRvIHN0dWZmIHVz
ZWQgKi8KKyAgICBHc3RFbGVtZW50KiBraWQ7CisgICAgR3N0UGFkKiBwYWQ7CisgICAgZ2NoYXIq
IHVyaTsKK307CisKK3N0cnVjdCBfV2Via2l0RGF0YVNyY0NsYXNzIHsKKyAgICBHc3RCaW5DbGFz
cyBwYXJlbnRfY2xhc3M7Cit9OworCitHVHlwZSB3ZWJraXRfZGF0YV9zcmNfZ2V0X3R5cGUodm9p
ZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5k
ZXggMDBkODI0Mi4uNjRjNDFkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiRGF0YVNvdXJjZUdTdHJlYW1lci5oIgogCiAjaW5j
bHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgpAQCAtMTIyLDYg
KzEyMywxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShN
ZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiAKIHN0YXRpYyBib29sIGdzdEluaXRpYWxp
emVkID0gZmFsc2U7CiAKK3N0YXRpYyB2b2lkIGRvX2dzdF9pbml0KCkgeworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcGFzcyB0aGUgYXJndW1lbnRzIGZyb20gdGhlIGNvbW1hbmQgbGluZQorICAg
IGlmICghZ3N0SW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgZ3N0X2luaXQoMCwgMCk7CisgICAgICAg
IGdzdEluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoMCwg
IndlYmtpdG1lZGlhc3JjIiwgR1NUX1JBTktfUFJJTUFSWSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0VCS0lUX1RZUEVfREFUQV9TUkMpOworCisgICAgfQorfQorCiBNZWRpYVBsYXll
clByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciogcGxheWVyKQogICAgIDog
bV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9wbGF5QmluKDApCkBAIC0xNDAsMTEgKzE1Miw3IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5
ZXIpCiAgICAgLCBtX3NlZWtpbmcoZmFsc2UpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkK
IHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBj
b21tYW5kIGxpbmUKLSAgICBpZiAoIWdzdEluaXRpYWxpemVkKSB7Ci0gICAgICAgIGdzdF9pbml0
KDAsIDApOwotICAgICAgICBnc3RJbml0aWFsaXplZCA9IHRydWU7Ci0gICAgfQorICAgIGRvX2dz
dF9pbml0KCk7CiAKICAgICAvLyBGSVhNRTogVGhlIHNpemUgc2hvdWxkbid0IGJlIGZpeGVkIGhl
cmUsIHRoaXMgaXMganVzdCBhIHF1aWNrIGhhY2suCiAgICAgbV9zdXJmYWNlID0gY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgNjQwLCA0ODApOwpAQCAtNjUy
LDEwICs2NjAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiBzdGF0aWMgSGFzaFNldDxTdHJp
bmc+IG1pbWVUeXBlQ2FjaGUoKQogewotICAgIGlmICghZ3N0SW5pdGlhbGl6ZWQpIHsKLSAgICAg
ICAgZ3N0X2luaXQoMCwgTlVMTCk7Ci0gICAgICAgIGdzdEluaXRpYWxpemVkID0gdHJ1ZTsKLSAg
ICB9CisKKyAgICBkb19nc3RfaW5pdCgpOwogCiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBj
YWNoZTsKICAgICBzdGF0aWMgYm9vbCB0eXBlTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggYTY1YzY1ZC4uMTA5NmRj
NCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNjgwLDYg
KzY4MCw3IEBAIGlmIHRlc3QgIiRlbmFibGVfdmlkZW8iID0gInllcyI7IHRoZW4KICAgIFBLR19D
SEVDS19NT0RVTEVTKFtHU1RSRUFNRVJdLAogICAgICAgICAgICAgICAgICAgICAgW2dzdHJlYW1l
ci0wLjEwID49ICRHU1RSRUFNRVJfUkVRVUlSRURfVkVSU0lPTgogICAgICAgICAgICAgICAgICAg
ICAgZ3N0cmVhbWVyLWJhc2UtMC4xMAorICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXBi
dXRpbHMtMC4xMAogICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXBsdWdpbnMtYmFzZS0w
LjEwCiAgICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXItdmlkZW8tMC4xMF0pCiAgICBBQ19T
VUJTVChbR1NUUkVBTUVSX0NGTEFHU10pCi0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40372</attachid>
            <date>2009-09-30 08:02:18 -0700</date>
            <delta_ts>2009-09-30 08:18:24 -0700</delta_ts>
            <desc>updated patch with minor fixes and styles fixes</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>17949</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyYjE1N2MzODhmMTI3OTBlYzBlOGNlODdiZTk0ODgyM2M2NzVmYzY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIENoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxIC0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
MCArKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNyArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVy
LmNwcCAgfCAgMjY1ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaCAgICB8ICAgNTQgKysrKwogLi4uL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDI0ICsrLQogY29uZmlndXJl
LmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIDkgZmls
ZXMgY2hhbmdlZCwgMzkyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFt
ZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IGUyYzFlZjUuLjk0Y2YyZTMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIENoZWNrIHByZXNlbmNlIG9mIGdzdHJlYW1lci1wYnV0aWxzLTAuMTAuCisKKyAgICAgICAg
KiBjb25maWd1cmUuYWM6CisKIDIwMDktMDktMjYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBHVEsgQlVJTEQgRklYOiBhZGQgRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUyBzdXBwb3J0IHRvIGNvbmZpZ3VyZS5hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1YWEzNzMuLjZjZGU3NGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIFJlLWVuYWJsZSBtZWRpYS9hdWRpby1kYXRhLXVybC5odG1sLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMDktMDktMjkgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFt
YWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzY2MjBmZi4uZWY2NWI0MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTM4MDQsNyArMzgwNCw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xz
LXRyYW5zZm9ybWVkLmh0bWwKIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBtZWRp
YS92aWRlby1zaXplLWludHJpbnNpYy1zY2FsZS5odG1sCiAjICAgVGVzdHMgdGltaW5nIG91dAot
bWVkaWEvYXVkaW8tZGF0YS11cmwuaHRtbAogbWVkaWEvY29udHJvbHMtZHJhZy10aW1lYmFyLmh0
bWwKIG1lZGlhL2V2ZW50LWF0dHJpYnV0ZXMuaHRtbAogbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC5o
dG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGFhY2MzZGMuLjNkNDQxMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDktMzAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGRhdGE6IHVyaSBzdXBwb3J0IGluIG1lZGlh
IHBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk4NDIKKworICAgICAgICBOZXcgR1N0cmVhbWVyIGVsZW1lbnQgdG8gaGFuZGxlIGRhdGE6IHVy
aXMuIEZvciBub3cgb25seSBiYXNlNjQKKyAgICAgICAgZW5jb2RlZCBkYXRhIGlzIHN1cHBvcnRl
ZC4gRGVjb2RlZCBkYXRhIGlzIGhhbmRlZCBvdmVyIHRvCisgICAgICAgIGdpb3N0cmVhbXNyYy4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChfZG9faW5pdCk6
CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KToKKyAgICAgICAgKHdlYmtpdF9k
YXRhX3NyY19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19yZXNldCk6Cisg
ICAgICAgICh3ZWJraXRfZGF0YV9zcmNfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNf
ZmluYWxpemUpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZSk6CisgICAg
ICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF9wcm90b2NvbHMpOgorICAgICAgICAod2Via2l0
X2RhdGFfc3JjX3VyaV9nZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlfc2V0
X3VyaSk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb19nc3RfaW5pdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om1pbWVUeXBlQ2FjaGUpOgorCiAyMDA5LTA5LTI5
ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpv
biBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2MDYwODUxLi41MTY5ZTVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIzMTUs
MTEgKzIzMTUsMTQgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBcCi0J
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmgKKwlXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgXAorCVdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHc3RyZWFtZXIuaAogCiB3ZWJjb3Jl
X2xpYmFkZCArPSBcCiAJLWxnc3RpbnRlcmZhY2VzLTAuMTAgXAotCS1sZ3N0dmlkZW8tMC4xMAor
CS1sZ3N0dmlkZW8tMC4xMCBcCisJLWxnc3RwYnV0aWxzLTAuMTAKIAogZW5kaWYgIyBFTkQgRU5B
QkxFX1ZJREVPCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rh
dGFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0
YVNvdXJjZUdTdHJlYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGMyZWM0NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0RhdGFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEsMjY1IEBACisvKgorICogIENvcHly
aWdodCAoQykgMjAwOSAgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFtZXIuaCIK
KworI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z3N0
L2dzdC5oPgorI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgorCitzdGF0
aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc3JjX3RlbXBsYXRlID0gR1NUX1NUQVRJQ19QQURfVEVN
UExBVEUoInNyYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9TUkMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9B
TFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1NUX1NUQVRJQ19DQVBTX0FOWSk7CisKK0dTVF9ERUJVR19DQVRF
R09SWV9TVEFUSUMod2Via2l0X2RhdGFfc3JjX2RlYnVnKTsKKyNkZWZpbmUgR1NUX0NBVF9ERUZB
VUxUIHdlYmtpdF9kYXRhX3NyY19kZWJ1ZworCitzdGF0aWMgdm9pZCB3ZWJraXRfZGF0YV9zcmNf
dXJpX2hhbmRsZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgaWZhY2VfZGF0YSk7CisKK3N0YXRpYyB2
b2lkIHdlYmtpdF9kYXRhX3NyY19kaXNwb3NlKEdPYmplY3QqIG9iamVjdCk7CitzdGF0aWMgdm9p
ZCB3ZWJraXRfZGF0YV9zcmNfZmluYWxpemUoV2Via2l0RGF0YVNyYyogc3JjKTsKK3N0YXRpYyBH
c3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJraXRfZGF0YV9zcmNfY2hhbmdlX3N0YXRlKEdzdEVsZW1l
bnQqIGVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKTsKKworc3RhdGljIGNvbnN0
IEdJbnRlcmZhY2VJbmZvIHVyaWhhbmRsZXJfaW5mbyA9IHsKKyAgICB3ZWJraXRfZGF0YV9zcmNf
dXJpX2hhbmRsZXJfaW5pdCwKKyAgICAwLCAwCit9OworCisKK3N0YXRpYyB2b2lkCitfZG9faW5p
dChHVHlwZSBkYXRhc3JjX3R5cGUpCit7CisgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Vi
a2l0X2RhdGFfc3JjX2RlYnVnLCAid2Via2l0X2RhdGFfc3JjIiwgMCwgImRhdGFzcmMgZWxlbWVu
dCIpOworICAgIGdfdHlwZV9hZGRfaW50ZXJmYWNlX3N0YXRpYyhkYXRhc3JjX3R5cGUsIEdTVF9U
WVBFX1VSSV9IQU5ETEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXJpaGFu
ZGxlcl9pbmZvKTsKK30KKworR1NUX0JPSUxFUlBMQVRFX0ZVTEwoV2Via2l0RGF0YVNyYywgd2Vi
a2l0X2RhdGFfc3JjLCBHc3RCaW4sIEdTVF9UWVBFX0JJTiwgX2RvX2luaXQpOworCitzdGF0aWMg
dm9pZAord2Via2l0X2RhdGFfc3JjX2Jhc2VfaW5pdChncG9pbnRlciBrbGFzcykKK3sKKyAgICBH
c3RFbGVtZW50Q2xhc3MqIGVsZW1lbnRfY2xhc3MgPSBHU1RfRUxFTUVOVF9DTEFTUyhrbGFzcyk7
CisKKyAgICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoZWxlbWVudF9jbGFz
cywgKGdjaGFyKikgIldlYktpdCBkYXRhIHNvdXJjZSBlbGVtZW50IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjaGFyKikgIlNvdXJjZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJIYW5kbGVzIGRhdGE6IHVy
aXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIqKSAi
UGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4iKTsKKworfQorCitzdGF0aWMg
dm9pZAord2Via2l0X2RhdGFfc3JjX2NsYXNzX2luaXQoV2Via2l0RGF0YVNyY0NsYXNzKiBrbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9rbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsK
KyAgICBHc3RFbGVtZW50Q2xhc3MqIGVrbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNzKTsK
KworICAgIG9rbGFzcy0+ZmluYWxpemUgPSAoR09iamVjdEZpbmFsaXplRnVuYykgd2Via2l0X2Rh
dGFfc3JjX2ZpbmFsaXplOworICAgIGVrbGFzcy0+Y2hhbmdlX3N0YXRlID0gd2Via2l0X2RhdGFf
c3JjX2NoYW5nZV9zdGF0ZTsKK30KKworCitzdGF0aWMgZ2Jvb2xlYW4KK3dlYmtpdF9kYXRhX3Ny
Y19yZXNldChXZWJraXREYXRhU3JjKiBzcmMpCit7CisgICAgR3N0UGFkKiB0YXJnZXRwYWQ7CisK
KyAgICBpZiAoc3JjLT5raWQpIHsKKyAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNyYy0+
a2lkLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgICAgIGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc3Jj
KSwgc3JjLT5raWQpOworICAgIH0KKworICAgIHNyYy0+a2lkID0gZ3N0X2VsZW1lbnRfZmFjdG9y
eV9tYWtlKCJnaW9zdHJlYW1zcmMiLCAic3RyZWFtc3JjIik7CisgICAgaWYgKCFzcmMtPmtpZCkg
eworICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgZ2lvc3Ry
ZWFtc3JjIik7CisgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgICBnc3RfYmluX2Fk
ZChHU1RfQklOKHNyYyksIHNyYy0+a2lkKTsKKworICAgIHRhcmdldHBhZCA9IGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkKHNyYy0+a2lkLCAic3JjIik7CisgICAgZ3N0X2dob3N0X3BhZF9zZXRf
dGFyZ2V0KEdTVF9HSE9TVF9QQUQoc3JjLT5wYWQpLCB0YXJnZXRwYWQpOworICAgIGdzdF9vYmpl
Y3RfdW5yZWYodGFyZ2V0cGFkKTsKKworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgdm9p
ZAord2Via2l0X2RhdGFfc3JjX2luaXQoV2Via2l0RGF0YVNyYyogc3JjLAorICAgIFdlYmtpdERh
dGFTcmNDbGFzcyogZ19jbGFzcykKK3sKKyAgICBHc3RQYWRUZW1wbGF0ZSogcGFkX3RlbXBsYXRl
ID0gZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KCZzcmNfdGVtcGxhdGUpOworICAgIHNyYy0+
cGFkID0gZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoInNyYyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YWRfdGVtcGxhdGUpOworCisgICAgZ3N0X2VsZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzcmMp
LCBzcmMtPnBhZCk7CisKKyAgICB3ZWJraXRfZGF0YV9zcmNfcmVzZXQoc3JjKTsKK30KKworc3Rh
dGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19maW5hbGl6ZShXZWJraXREYXRhU3JjKiBzcmMpCit7
CisgICAgZ19mcmVlKHNyYy0+dXJpKTsKKworICAgIGlmIChzcmMtPmtpZCkgeworICAgICAgICBH
U1RfREVCVUdfT0JKRUNUKHNyYywgIlJlbW92aW5nIGdpb3N0cmVhbXNyYyBlbGVtZW50Iik7Cisg
ICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShzcmMtPmtpZCwgR1NUX1NUQVRFX05VTEwpOwor
ICAgICAgICBnc3RfYmluX3JlbW92ZShHU1RfQklOKHNyYyksIHNyYy0+a2lkKTsKKyAgICAgICAg
c3JjLT5raWQgPSAwOworICAgIH0KKworICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9DTEFT
UywgZmluYWxpemUsICgoR09iamVjdCAqKShzcmMpKSk7Cit9CisKK3N0YXRpYyBHc3RTdGF0ZUNo
YW5nZVJldHVybgord2Via2l0X2RhdGFfc3JjX2NoYW5nZV9zdGF0ZShHc3RFbGVtZW50KiBlbGVt
ZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQoreworICAgIEdzdFN0YXRlQ2hhbmdlUmV0
dXJuIHJldCA9IEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzsKKyAgICBXZWJraXREYXRhU3JjKiBz
cmMgPSBXRUJLSVRfREFUQV9TUkMoZWxlbWVudCk7CisKKyAgICBzd2l0Y2ggKHRyYW5zaXRpb24p
IHsKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfTlVMTF9UT19SRUFEWToKKyAgICAgICAgaWYg
KCFzcmMtPmtpZCkgeworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKGVsZW1l
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X21pc3NpbmdfZWxl
bWVudF9tZXNzYWdlX25ldyhlbGVtZW50LCAiZ2lvc3RyZWFtc3JjIikpOworICAgICAgICAgICAg
R1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIGdp
b3N0cmVhbXNyYyEiKSk7CisgICAgICAgICAgICByZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlM
VVJFOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5H
RV9SRUFEWV9UT19QQVVTRUQ6CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19S
RUFEWToKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgeworICAgICAgICByZXQgPSBHU1RfRUxFTUVOVF9DTEFTUyhwYXJlbnRfY2xhc3Mp
LT5jaGFuZ2Vfc3RhdGUoZWxlbWVudCwgdHJhbnNpdGlvbik7CisgICAgICAgIGlmIChHX1VOTElL
RUxZKHJldCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpKQorICAgICAgICAgICAgcmV0dXJu
IHJldDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHRyYW5zaXRpb24pIHsKKyAgICBjYXNlIEdTVF9T
VEFURV9DSEFOR0VfUExBWUlOR19UT19QQVVTRUQ6CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdF
X1BBVVNFRF9UT19SRUFEWToKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUkVBRFlfVE9fTlVM
TDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgcmV0dXJuIHJldDsKK30KKworLyoqKiBHU1RVUklIQU5ETEVSIElOVEVSRkFDRSAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMg
R3N0VVJJVHlwZQord2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZSh2b2lkKQoreworICAgIHJl
dHVybiBHU1RfVVJJX1NSQzsKK30KKworc3RhdGljIGdjaGFyICoqCit3ZWJraXRfZGF0YV9zcmNf
dXJpX2dldF9wcm90b2NvbHModm9pZCkKK3sKKyAgICBzdGF0aWMgZ2NoYXIqIHByb3RvY29sc1td
ID0geyhnY2hhciopICJkYXRhIiwgMCB9OworCisgICAgcmV0dXJuIHByb3RvY29sczsKK30KKwor
c3RhdGljIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9kYXRhX3NyY191cmlfZ2V0X3VyaShHc3RVUklI
YW5kbGVyKiBoYW5kbGVyKQoreworICAgIFdlYmtpdERhdGFTcmMqIHNyYyA9IFdFQktJVF9EQVRB
X1NSQyhoYW5kbGVyKTsKKworICAgIHJldHVybiBzcmMtPnVyaTsKK30KKworc3RhdGljIGdib29s
ZWFuCit3ZWJraXRfZGF0YV9zcmNfdXJpX3NldF91cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlciwg
Y29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBXZWJraXREYXRhU3JjKiBzcmMgPSBXRUJLSVRfREFU
QV9TUkMoaGFuZGxlcik7CisKKyAgICAvLyBVUkkgYXMgZGVmaW5lZCBpbiBSRkMyMzk3OgorICAg
IC8vICJkYXRhOiIgWyBtZWRpYXR5cGUgXSBbICI7YmFzZTY0IiBdICIsIiBkYXRhCisgICAgLy8g
d2UgcGFyc2UgVVJJcyBsaWtlIHRoaXMgb25lOgorICAgIC8vIGRhdGE6YXVkaW8vM2dwcDtiYXNl
NjQsQUEuLi4KKworICAgIGdjaGFyKiogc2NoZW1lX2FuZF9yZW1haW5zID0gZ19zdHJzcGxpdCh1
cmksICI6IiwgMik7CisgICAgZ2NoYXIqKiBtaW1lX3R5cGVfYW5kX29wdGlvbnMgPSBnX3N0cnNw
bGl0KHNjaGVtZV9hbmRfcmVtYWluc1sxXSwgIjsiLCAwKTsKKyAgICBnaW50IG9wdGlvbnNfc2l6
ZSA9IGdfc3Rydl9sZW5ndGgobWltZV90eXBlX2FuZF9vcHRpb25zKTsKKyAgICBnY2hhciogZGF0
YSA9IDA7CisgICAgZ2NoYXIqIG1pbWVfdHlwZSA9IDA7CisgICAgZ2ludCByZXQgPSBGQUxTRTsK
KworICAgIC8vIHdlIHJlcXVpcmUgdXJpcyB3aXRoIGEgc3BlY2lmaWVkIG1pbWUtdHlwZSBhbmQg
YmFzZTY0LWVuY29kZWQKKyAgICAvLyBkYXRhLiBJdCBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSBh
bnl3YXkgdG8gcGxheSBwbGFpbi90ZXh0IGRhdGEKKyAgICAvLyB3aXRoIHZlcnkgZmV3IGFsbG93
ZWQgY2hhcmFjdGVycyAoYXMgcGVyIHRoZSBSRkMpLgorCisgICAgaWYgKEdTVF9TVEFURShzcmMp
ID49IEdTVF9TVEFURV9QQVVTRUQpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJF
bGVtZW50IGFscmVhZHkgY29uZmlndXJlZC4gUmVzZXQgaXQgYW5kIHJldHJ5Iik7CisgICAgfSBl
bHNlIGlmICghb3B0aW9uc19zaXplKQorICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkEg
bWltZS10eXBlIGlzIG5lZWRlZCBpbiAlcyIsIHVyaSk7CisgICAgZWxzZSB7CisgICAgICAgIG1p
bWVfdHlwZSA9IG1pbWVfdHlwZV9hbmRfb3B0aW9uc1swXTsKKyAgICAgICAgZGF0YSA9IG1pbWVf
dHlwZV9hbmRfb3B0aW9uc1tvcHRpb25zX3NpemUtMV07CisKKyAgICAgICAgZ3VjaGFyKiBkZWNv
ZGVkX2RhdGEgPSAwOworICAgICAgICBnc2l6ZSBkZWNvZGVkX3NpemU7CisKKyAgICAgICAgaWYg
KCFnX3N0cl9oYXNfcHJlZml4KGRhdGEsICJiYXNlNjQiKSkKKyAgICAgICAgICAgIEdTVF9FUlJP
Ul9PQkpFQ1Qoc3JjLCAiRGF0YSBoYXMgdG8gYmUgYmFzZTY0LWVuY29kZWQgaW4gJXMiLCB1cmkp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRlY29kZWRfZGF0YSA9IGdfYmFzZTY0X2Rl
Y29kZShkYXRhKzcsICZkZWNvZGVkX3NpemUpOworICAgICAgICAgICAgR0lucHV0U3RyZWFtKiBz
dHJlYW0gPSBnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3X2Zyb21fZGF0YShkZWNvZGVkX2RhdGEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlY29kZWRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19mcmVlKTsKKyAg
ICAgICAgICAgIGdfb2JqZWN0X3NldChzcmMtPmtpZCwgInN0cmVhbSIsIHN0cmVhbSwgMCk7Cisg
ICAgICAgICAgICBnX29iamVjdF91bnJlZihzdHJlYW0pOworCisgICAgICAgICAgICBpZiAoc3Jj
LT51cmkpIHsKKyAgICAgICAgICAgICAgICBnX2ZyZWUoc3JjLT51cmkpOworICAgICAgICAgICAg
ICAgIHNyYy0+dXJpID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3JjLT51cmkg
PSBnX3N0cmR1cCh1cmkpOworICAgICAgICAgICAgcmV0ID0gVFJVRTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGdfc3RyZnJlZXYoc2NoZW1lX2FuZF9yZW1haW5zKTsKKyAgICBnX3N0cmZyZWV2
KG1pbWVfdHlwZV9hbmRfb3B0aW9ucyk7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZv
aWQKK3dlYmtpdF9kYXRhX3NyY191cmlfaGFuZGxlcl9pbml0KGdwb2ludGVyIGdfaWZhY2UsIGdw
b2ludGVyIGlmYWNlX2RhdGEpCit7CisgICAgR3N0VVJJSGFuZGxlckludGVyZmFjZSogaWZhY2Ug
PSAoR3N0VVJJSGFuZGxlckludGVyZmFjZSAqKSBnX2lmYWNlOworCisgICAgaWZhY2UtPmdldF90
eXBlID0gd2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZTsKKyAgICBpZmFjZS0+Z2V0X3Byb3Rv
Y29scyA9IHdlYmtpdF9kYXRhX3NyY191cmlfZ2V0X3Byb3RvY29sczsKKyAgICBpZmFjZS0+Z2V0
X3VyaSA9IHdlYmtpdF9kYXRhX3NyY191cmlfZ2V0X3VyaTsKKyAgICBpZmFjZS0+c2V0X3VyaSA9
IHdlYmtpdF9kYXRhX3NyY191cmlfc2V0X3VyaTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hOTUzMmZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5oCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5ICBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIERBVEFfU09VUkNFX0dTVFJFQU1FUl9ICisjZGVmaW5l
IERBVEFfU09VUkNFX0dTVFJFQU1FUl9ICisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2lu
Y2x1ZGUgPGdzdC9iYXNlL2dzdGJhc2VzcmMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5l
IFdFQktJVF9UWVBFX0RBVEFfU1JDICAgICAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19nZXRfdHlw
ZSAoKSkKKyNkZWZpbmUgV0VCS0lUX0RBVEFfU1JDKG9iaikgICAgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0
YVNyYykpCisjZGVmaW5lIFdFQktJVF9EQVRBX1NSQ19DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9EQVRBX1NSQywgV2Via2l0RGF0
YVNyY0NsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0RBVEFfU1JDKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBXRUJLSVRfVFlQRV9EQVRBX1NSQykpCisj
ZGVmaW5lIFdFQktJVF9JU19EQVRBX1NSQ19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFT
U19UWVBFICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9EQVRBX1NSQykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJraXREYXRhU3JjICAgICAgICBXZWJraXREYXRhU3JjOwordHlwZWRlZiBzdHJ1Y3QgX1dl
YmtpdERhdGFTcmNDbGFzcyAgIFdlYmtpdERhdGFTcmNDbGFzczsKKworCitzdHJ1Y3QgX1dlYmtp
dERhdGFTcmMgeworICAgIEdzdEJpbiBwYXJlbnQ7CisKKyAgICAvKiBleHBsaWNpdCBwb2ludGVy
cyB0byBzdHVmZiB1c2VkICovCisgICAgR3N0RWxlbWVudCoga2lkOworICAgIEdzdFBhZCogcGFk
OworICAgIGdjaGFyKiB1cmk7Cit9OworCitzdHJ1Y3QgX1dlYmtpdERhdGFTcmNDbGFzcyB7Cisg
ICAgR3N0QmluQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworR1R5cGUgd2Via2l0X2RhdGFfc3Jj
X2dldF90eXBlKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IDAwZDgyNDIuLjY0YzQxZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFt
ZXIuaCIKIAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKQEAgLTEyMiw2ICsxMjMsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogCiBzdGF0aWMgYm9v
bCBnc3RJbml0aWFsaXplZCA9IGZhbHNlOwogCitzdGF0aWMgdm9pZCBkb19nc3RfaW5pdCgpIHsK
KyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21t
YW5kIGxpbmUKKyAgICBpZiAoIWdzdEluaXRpYWxpemVkKSB7CisgICAgICAgIGdzdF9pbml0KDAs
IDApOworICAgICAgICBnc3RJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgIGdzdF9lbGVtZW50
X3JlZ2lzdGVyKDAsICJ3ZWJraXRtZWRpYXNyYyIsIEdTVF9SQU5LX1BSSU1BUlksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RBVEFfU1JDKTsKKworICAgIH0KK30K
KwogTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBs
YXllcikKICAgICA6IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fcGxheUJpbigwKQpAQCAtMTQw
LDExICsxNTIsNyBAQCBNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRp
YVBsYXllciogcGxheWVyKQogICAgICwgbV9zZWVraW5nKGZhbHNlKQogICAgICwgbV9lcnJvck9j
Y3VyZWQoZmFsc2UpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHRoZSBhcmd1bWVu
dHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCi0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewotICAg
ICAgICBnc3RfaW5pdCgwLCAwKTsKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwotICAg
IH0KKyAgICBkb19nc3RfaW5pdCgpOwogCiAgICAgLy8gRklYTUU6IFRoZSBzaXplIHNob3VsZG4n
dCBiZSBmaXhlZCBoZXJlLCB0aGlzIGlzIGp1c3QgYSBxdWljayBoYWNrLgogICAgIG1fc3VyZmFj
ZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIDY0MCwg
NDgwKTsKQEAgLTY1MiwxMCArNjYwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogc3RhdGlj
IEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hlKCkKIHsKLSAgICBpZiAoIWdzdEluaXRpYWxp
emVkKSB7Ci0gICAgICAgIGdzdF9pbml0KDAsIE5VTEwpOwotICAgICAgICBnc3RJbml0aWFsaXpl
ZCA9IHRydWU7Ci0gICAgfQorCisgICAgZG9fZ3N0X2luaXQoKTsKIAogICAgIHN0YXRpYyBIYXNo
U2V0PFN0cmluZz4gY2FjaGU7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGE2
NWM2NWQuLjEwOTZkYzQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUu
YWMKQEAgLTY4MCw2ICs2ODAsNyBAQCBpZiB0ZXN0ICIkZW5hYmxlX3ZpZGVvIiA9ICJ5ZXMiOyB0
aGVuCiAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbR1NUUkVBTUVSXSwKICAgICAgICAgICAgICAgICAg
ICAgIFtnc3RyZWFtZXItMC4xMCA+PSAkR1NUUkVBTUVSX1JFUVVJUkVEX1ZFUlNJT04KICAgICAg
ICAgICAgICAgICAgICAgIGdzdHJlYW1lci1iYXNlLTAuMTAKKyAgICAgICAgICAgICAgICAgICAg
IGdzdHJlYW1lci1wYnV0aWxzLTAuMTAKICAgICAgICAgICAgICAgICAgICAgIGdzdHJlYW1lci1w
bHVnaW5zLWJhc2UtMC4xMAogICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXZpZGVvLTAu
MTBdKQogICAgQUNfU1VCU1QoW0dTVFJFQU1FUl9DRkxBR1NdKQotLSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40373</attachid>
            <date>2009-09-30 08:18:24 -0700</date>
            <delta_ts>2009-10-01 01:04:23 -0700</delta_ts>
            <desc>final version</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>18034</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmNTcyMWE1NTA5NGFiNTMwMTlkZTE1MTU2OWE2ZTZkYWVhZTkzZTFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIENoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxIC0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
MCArKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNyArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVy
LmNwcCAgfCAgMjY2ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaCAgICB8ICAgNTQgKysrKwogLi4uL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgfCAgIDI0ICsrLQogY29uZmlndXJl
LmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIDkgZmls
ZXMgY2hhbmdlZCwgMzkzIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFt
ZXIuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
RGF0YVNvdXJjZUdTdHJlYW1lci5oCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IGUyYzFlZjUuLjk0Y2YyZTMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIENoZWNrIHByZXNlbmNlIG9mIGdzdHJlYW1lci1wYnV0aWxzLTAuMTAuCisKKyAgICAgICAg
KiBjb25maWd1cmUuYWM6CisKIDIwMDktMDktMjYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBHVEsgQlVJTEQgRklYOiBhZGQgRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUyBzdXBwb3J0IHRvIGNvbmZpZ3VyZS5hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1YWEzNzMuLjZjZGU3NGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0MgorCisgICAg
ICAgIFJlLWVuYWJsZSBtZWRpYS9hdWRpby1kYXRhLXVybC5odG1sLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMDktMDktMjkgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFt
YWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzY2MjBmZi4uZWY2NWI0MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTM4MDQsNyArMzgwNCw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xz
LXRyYW5zZm9ybWVkLmh0bWwKIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBtZWRp
YS92aWRlby1zaXplLWludHJpbnNpYy1zY2FsZS5odG1sCiAjICAgVGVzdHMgdGltaW5nIG91dAot
bWVkaWEvYXVkaW8tZGF0YS11cmwuaHRtbAogbWVkaWEvY29udHJvbHMtZHJhZy10aW1lYmFyLmh0
bWwKIG1lZGlhL2V2ZW50LWF0dHJpYnV0ZXMuaHRtbAogbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC5o
dG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGFhY2MzZGMuLjNkNDQxMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDktMzAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGRhdGE6IHVyaSBzdXBwb3J0IGluIG1lZGlh
IHBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk4NDIKKworICAgICAgICBOZXcgR1N0cmVhbWVyIGVsZW1lbnQgdG8gaGFuZGxlIGRhdGE6IHVy
aXMuIEZvciBub3cgb25seSBiYXNlNjQKKyAgICAgICAgZW5jb2RlZCBkYXRhIGlzIHN1cHBvcnRl
ZC4gRGVjb2RlZCBkYXRhIGlzIGhhbmRlZCBvdmVyIHRvCisgICAgICAgIGdpb3N0cmVhbXNyYy4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2d0ay9EYXRhU291cmNlR1N0cmVhbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChfZG9faW5pdCk6
CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KToKKyAgICAgICAgKHdlYmtpdF9k
YXRhX3NyY19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19yZXNldCk6Cisg
ICAgICAgICh3ZWJraXRfZGF0YV9zcmNfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNf
ZmluYWxpemUpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdHlwZSk6CisgICAg
ICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF9wcm90b2NvbHMpOgorICAgICAgICAod2Via2l0
X2RhdGFfc3JjX3VyaV9nZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlfc2V0
X3VyaSk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2hhbmRsZXJfaW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb19nc3RfaW5pdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om1pbWVUeXBlQ2FjaGUpOgorCiAyMDA5LTA5LTI5
ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpv
biBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2MDYwODUxLi41MTY5ZTVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIzMTUs
MTEgKzIzMTUsMTQgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBcCi0J
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmgKKwlXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgXAorCVdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHc3RyZWFtZXIuaAogCiB3ZWJjb3Jl
X2xpYmFkZCArPSBcCiAJLWxnc3RpbnRlcmZhY2VzLTAuMTAgXAotCS1sZ3N0dmlkZW8tMC4xMAor
CS1sZ3N0dmlkZW8tMC4xMCBcCisJLWxnc3RwYnV0aWxzLTAuMTAKIAogZW5kaWYgIyBFTkQgRU5B
QkxFX1ZJREVPCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rh
dGFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0
YVNvdXJjZUdTdHJlYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWNkMTUyNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0RhdGFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICogIENvcHly
aWdodCAoQykgMjAwOSAgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFTb3VyY2VHU3RyZWFtZXIuaCIK
KworI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z3N0
L2dzdC5oPgorI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgorCitzdGF0
aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc3JjX3RlbXBsYXRlID0gR1NUX1NUQVRJQ19QQURfVEVN
UExBVEUoInNyYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9TUkMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9B
TFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1NUX1NUQVRJQ19DQVBTX0FOWSk7CisKK0dTVF9ERUJVR19DQVRF
R09SWV9TVEFUSUMod2Via2l0X2RhdGFfc3JjX2RlYnVnKTsKKyNkZWZpbmUgR1NUX0NBVF9ERUZB
VUxUIHdlYmtpdF9kYXRhX3NyY19kZWJ1ZworCitzdGF0aWMgdm9pZCB3ZWJraXRfZGF0YV9zcmNf
dXJpX2hhbmRsZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgaWZhY2VfZGF0YSk7CisKK3N0YXRpYyB2
b2lkIHdlYmtpdF9kYXRhX3NyY19maW5hbGl6ZShXZWJraXREYXRhU3JjKiBzcmMpOworc3RhdGlj
IEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYmtpdF9kYXRhX3NyY19jaGFuZ2Vfc3RhdGUoR3N0RWxl
bWVudCogZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdzdFN0YXRlQ2hhbmdlIHRyYW5zaXRpb24pOworCitzdGF0aWMgY29u
c3QgR0ludGVyZmFjZUluZm8gdXJpaGFuZGxlcl9pbmZvID0geworICAgIHdlYmtpdF9kYXRhX3Ny
Y191cmlfaGFuZGxlcl9pbml0LAorICAgIDAsIDAKK307CisKKworc3RhdGljIHZvaWQKK19kb19p
bml0KEdUeXBlIGRhdGFzcmNfdHlwZSkKK3sKKyAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3
ZWJraXRfZGF0YV9zcmNfZGVidWcsICJ3ZWJraXRfZGF0YV9zcmMiLCAwLCAiZGF0YXNyYyBlbGVt
ZW50Iik7CisgICAgZ190eXBlX2FkZF9pbnRlcmZhY2Vfc3RhdGljKGRhdGFzcmNfdHlwZSwgR1NU
X1RZUEVfVVJJX0hBTkRMRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cmlo
YW5kbGVyX2luZm8pOworfQorCitHU1RfQk9JTEVSUExBVEVfRlVMTChXZWJraXREYXRhU3JjLCB3
ZWJraXRfZGF0YV9zcmMsIEdzdEJpbiwgR1NUX1RZUEVfQklOLCBfZG9faW5pdCk7CisKK3N0YXRp
YyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KGdwb2ludGVyIGtsYXNzKQoreworICAg
IEdzdEVsZW1lbnRDbGFzcyogZWxlbWVudF9jbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNz
KTsKKworICAgIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoZWxlbWVudF9jbGFz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9zdGF0aWNfcGFk
X3RlbXBsYXRlX2dldCgmc3JjX3RlbXBsYXRlKSk7CisgICAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0
X2RldGFpbHNfc2ltcGxlKGVsZW1lbnRfY2xhc3MsIChnY2hhciopICJXZWJLaXQgZGF0YSBzb3Vy
Y2UgZWxlbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn
Y2hhciopICJTb3VyY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ2NoYXIqKSAiSGFuZGxlcyBkYXRhOiB1cmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdjaGFyKikgIlBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGln
YWxpYS5jb20+Iik7CisKK30KKworc3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19jbGFzc19p
bml0KFdlYmtpdERhdGFTcmNDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBva2xh
c3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisgICAgR3N0RWxlbWVudENsYXNzKiBla2xhc3Mg
PSBHU1RfRUxFTUVOVF9DTEFTUyhrbGFzcyk7CisKKyAgICBva2xhc3MtPmZpbmFsaXplID0gKEdP
YmplY3RGaW5hbGl6ZUZ1bmMpIHdlYmtpdF9kYXRhX3NyY19maW5hbGl6ZTsKKyAgICBla2xhc3Mt
PmNoYW5nZV9zdGF0ZSA9IHdlYmtpdF9kYXRhX3NyY19jaGFuZ2Vfc3RhdGU7Cit9CisKKworc3Rh
dGljIGdib29sZWFuCit3ZWJraXRfZGF0YV9zcmNfcmVzZXQoV2Via2l0RGF0YVNyYyogc3JjKQor
eworICAgIEdzdFBhZCogdGFyZ2V0cGFkOworCisgICAgaWYgKHNyYy0+a2lkKSB7CisgICAgICAg
IGdzdF9lbGVtZW50X3NldF9zdGF0ZShzcmMtPmtpZCwgR1NUX1NUQVRFX05VTEwpOworICAgICAg
ICBnc3RfYmluX3JlbW92ZShHU1RfQklOKHNyYyksIHNyYy0+a2lkKTsKKyAgICB9CisKKyAgICBz
cmMtPmtpZCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZ2lvc3RyZWFtc3JjIiwgInN0cmVh
bXNyYyIpOworICAgIGlmICghc3JjLT5raWQpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChz
cmMsICJGYWlsZWQgdG8gY3JlYXRlIGdpb3N0cmVhbXNyYyIpOworICAgICAgICByZXR1cm4gRkFM
U0U7CisgICAgfQorCisgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihzcmMpLCBzcmMtPmtpZCk7CisK
KyAgICB0YXJnZXRwYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChzcmMtPmtpZCwgInNy
YyIpOworICAgIGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldChHU1RfR0hPU1RfUEFEKHNyYy0+cGFk
KSwgdGFyZ2V0cGFkKTsKKyAgICBnc3Rfb2JqZWN0X3VucmVmKHRhcmdldHBhZCk7CisKKyAgICBy
ZXR1cm4gVFJVRTsKK30KKworc3RhdGljIHZvaWQKK3dlYmtpdF9kYXRhX3NyY19pbml0KFdlYmtp
dERhdGFTcmMqIHNyYywKKyAgICBXZWJraXREYXRhU3JjQ2xhc3MqIGdfY2xhc3MpCit7CisgICAg
R3N0UGFkVGVtcGxhdGUqIHBhZF90ZW1wbGF0ZSA9IGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dl
dCgmc3JjX3RlbXBsYXRlKTsKKyAgICBzcmMtPnBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X25vX3Rh
cmdldF9mcm9tX3RlbXBsYXRlKCJzcmMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkX3RlbXBsYXRlKTsKKworICAgIGdzdF9lbGVt
ZW50X2FkZF9wYWQoR1NUX0VMRU1FTlQoc3JjKSwgc3JjLT5wYWQpOworCisgICAgd2Via2l0X2Rh
dGFfc3JjX3Jlc2V0KHNyYyk7Cit9CisKK3N0YXRpYyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfZmlu
YWxpemUoV2Via2l0RGF0YVNyYyogc3JjKQoreworICAgIGdfZnJlZShzcmMtPnVyaSk7CisKKyAg
ICBpZiAoc3JjLT5raWQpIHsKKyAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSZW1vdmlu
ZyBnaW9zdHJlYW1zcmMgZWxlbWVudCIpOworICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUo
c3JjLT5raWQsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJ
TihzcmMpLCBzcmMtPmtpZCk7CisgICAgICAgIHNyYy0+a2lkID0gMDsKKyAgICB9CisKKyAgICBH
U1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGZpbmFsaXplLCAoKEdPYmplY3QgKikoc3Jj
KSkpOworfQorCitzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4KK3dlYmtpdF9kYXRhX3NyY19j
aGFuZ2Vfc3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlv
bikKK3sKKyAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiByZXQgPSBHU1RfU1RBVEVfQ0hBTkdFX1NV
Q0NFU1M7CisgICAgV2Via2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RBVEFfU1JDKGVsZW1lbnQp
OworCisgICAgc3dpdGNoICh0cmFuc2l0aW9uKSB7CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdF
X05VTExfVE9fUkVBRFk6CisgICAgICAgIGlmICghc3JjLT5raWQpIHsKKyAgICAgICAgICAgIGdz
dF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdzdF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZV9uZXcoZWxlbWVudCwgImdp
b3N0cmVhbXNyYyIpKTsKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwg
TUlTU0lOR19QTFVHSU4sICgwKSwgKCJubyBnaW9zdHJlYW1zcmMhIikpOworICAgICAgICAgICAg
cmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUkVBRFlfVE9fUEFVU0VEOgorICAgIGNhc2Ug
R1NUX1NUQVRFX0NIQU5HRV9QQVVTRURfVE9fUkVBRFk6CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHsKKyAgICAgICAgcmV0ID0gR1NU
X0VMRU1FTlRfQ0xBU1MocGFyZW50X2NsYXNzKS0+Y2hhbmdlX3N0YXRlKGVsZW1lbnQsIHRyYW5z
aXRpb24pOworICAgICAgICBpZiAoR19VTkxJS0VMWShyZXQgPT0gR1NUX1NUQVRFX0NIQU5HRV9G
QUlMVVJFKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgc3dpdGNoICh0
cmFuc2l0aW9uKSB7CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BMQVlJTkdfVE9fUEFVU0VE
OgorICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9QQVVTRURfVE9fUkVBRFk6CisgICAgY2FzZSBH
U1RfU1RBVEVfQ0hBTkdFX1JFQURZX1RPX05VTEw6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qKiog
R1NUVVJJSEFORExFUiBJTlRFUkZBQ0UgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKi8KKworc3RhdGljIEdzdFVSSVR5cGUKK3dlYmtpdF9kYXRhX3NyY191
cmlfZ2V0X3R5cGUodm9pZCkKK3sKKyAgICByZXR1cm4gR1NUX1VSSV9TUkM7Cit9CisKK3N0YXRp
YyBnY2hhciAqKgord2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKHZvaWQpCit7Cisg
ICAgc3RhdGljIGdjaGFyKiBwcm90b2NvbHNbXSA9IHsoZ2NoYXIqKSAiZGF0YSIsIDAgfTsKKwor
ICAgIHJldHVybiBwcm90b2NvbHM7Cit9CisKK3N0YXRpYyBjb25zdCBnY2hhciAqCit3ZWJraXRf
ZGF0YV9zcmNfdXJpX2dldF91cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKK3sKKyAgICBXZWJr
aXREYXRhU3JjKiBzcmMgPSBXRUJLSVRfREFUQV9TUkMoaGFuZGxlcik7CisKKyAgICByZXR1cm4g
c3JjLT51cmk7Cit9CisKK3N0YXRpYyBnYm9vbGVhbgord2Via2l0X2RhdGFfc3JjX3VyaV9zZXRf
dXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIsIGNvbnN0IGdjaGFyKiB1cmkpCit7CisgICAgV2Vi
a2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RBVEFfU1JDKGhhbmRsZXIpOworCisgICAgLy8gVVJJ
IGFzIGRlZmluZWQgaW4gUkZDMjM5NzoKKyAgICAvLyAiZGF0YToiIFsgbWVkaWF0eXBlIF0gWyAi
O2Jhc2U2NCIgXSAiLCIgZGF0YQorICAgIC8vIHdlIHBhcnNlIFVSSXMgbGlrZSB0aGlzIG9uZToK
KyAgICAvLyBkYXRhOmF1ZGlvLzNncHA7YmFzZTY0LEFBLi4uCisKKyAgICBnY2hhcioqIHNjaGVt
ZV9hbmRfcmVtYWlucyA9IGdfc3Ryc3BsaXQodXJpLCAiOiIsIDIpOworICAgIGdjaGFyKiogbWlt
ZV90eXBlX2FuZF9vcHRpb25zID0gZ19zdHJzcGxpdChzY2hlbWVfYW5kX3JlbWFpbnNbMV0sICI7
IiwgMCk7CisgICAgZ2ludCBvcHRpb25zX3NpemUgPSBnX3N0cnZfbGVuZ3RoKG1pbWVfdHlwZV9h
bmRfb3B0aW9ucyk7CisgICAgZ2NoYXIqIGRhdGEgPSAwOworICAgIGdjaGFyKiBtaW1lX3R5cGUg
PSAwOworICAgIGdpbnQgcmV0ID0gRkFMU0U7CisKKyAgICAvLyB3ZSByZXF1aXJlIHVyaXMgd2l0
aCBhIHNwZWNpZmllZCBtaW1lLXR5cGUgYW5kIGJhc2U2NC1lbmNvZGVkCisgICAgLy8gZGF0YS4g
SXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5IHRvIHBsYXkgcGxhaW4vdGV4dCBkYXRh
CisgICAgLy8gd2l0aCB2ZXJ5IGZldyBhbGxvd2VkIGNoYXJhY3RlcnMgKGFzIHBlciB0aGUgUkZD
KS4KKworICAgIGlmIChHU1RfU1RBVEUoc3JjKSA+PSBHU1RfU1RBVEVfUEFVU0VEKSB7CisgICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRWxlbWVudCBhbHJlYWR5IGNvbmZpZ3VyZWQuIFJl
c2V0IGl0IGFuZCByZXRyeSIpOworICAgIH0gZWxzZSBpZiAoIW9wdGlvbnNfc2l6ZSkKKyAgICAg
ICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJBIG1pbWUtdHlwZSBpcyBuZWVkZWQgaW4gJXMiLCB1
cmkpOworICAgIGVsc2UgeworICAgICAgICBtaW1lX3R5cGUgPSBtaW1lX3R5cGVfYW5kX29wdGlv
bnNbMF07CisgICAgICAgIGRhdGEgPSBtaW1lX3R5cGVfYW5kX29wdGlvbnNbb3B0aW9uc19zaXpl
LTFdOworCisgICAgICAgIGd1Y2hhciogZGVjb2RlZF9kYXRhID0gMDsKKyAgICAgICAgZ3NpemUg
ZGVjb2RlZF9zaXplOworCisgICAgICAgIGlmICghZ19zdHJfaGFzX3ByZWZpeChkYXRhLCAiYmFz
ZTY0IikpCisgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkRhdGEgaGFzIHRvIGJl
IGJhc2U2NC1lbmNvZGVkIGluICVzIiwgdXJpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBkZWNvZGVkX2RhdGEgPSBnX2Jhc2U2NF9kZWNvZGUoZGF0YSs3LCAmZGVjb2RlZF9zaXplKTsK
KyAgICAgICAgICAgIEdJbnB1dFN0cmVhbSogc3RyZWFtID0gZ19tZW1vcnlfaW5wdXRfc3RyZWFt
X25ld19mcm9tX2RhdGEoZGVjb2RlZF9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVkX3NpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfZnJlZSk7CisgICAgICAgICAgICBnX29iamVjdF9zZXQoc3JjLT5r
aWQsICJzdHJlYW0iLCBzdHJlYW0sIDApOworICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYoc3Ry
ZWFtKTsKKworICAgICAgICAgICAgaWYgKHNyYy0+dXJpKSB7CisgICAgICAgICAgICAgICAgZ19m
cmVlKHNyYy0+dXJpKTsKKyAgICAgICAgICAgICAgICBzcmMtPnVyaSA9IDA7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHNyYy0+dXJpID0gZ19zdHJkdXAodXJpKTsKKyAgICAgICAgICAg
IHJldCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBnX3N0cmZyZWV2KHNjaGVtZV9h
bmRfcmVtYWlucyk7CisgICAgZ19zdHJmcmVldihtaW1lX3R5cGVfYW5kX29wdGlvbnMpOworICAg
IHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkCit3ZWJraXRfZGF0YV9zcmNfdXJpX2hhbmRs
ZXJfaW5pdChncG9pbnRlciBnX2lmYWNlLCBncG9pbnRlciBpZmFjZV9kYXRhKQoreworICAgIEdz
dFVSSUhhbmRsZXJJbnRlcmZhY2UqIGlmYWNlID0gKEdzdFVSSUhhbmRsZXJJbnRlcmZhY2UgKikg
Z19pZmFjZTsKKworICAgIGlmYWNlLT5nZXRfdHlwZSA9IHdlYmtpdF9kYXRhX3NyY191cmlfZ2V0
X3R5cGU7CisgICAgaWZhY2UtPmdldF9wcm90b2NvbHMgPSB3ZWJraXRfZGF0YV9zcmNfdXJpX2dl
dF9wcm90b2NvbHM7CisgICAgaWZhY2UtPmdldF91cmkgPSB3ZWJraXRfZGF0YV9zcmNfdXJpX2dl
dF91cmk7CisgICAgaWZhY2UtPnNldF91cmkgPSB3ZWJraXRfZGF0YV9zcmNfdXJpX3NldF91cmk7
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNl
R1N0cmVhbWVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0
cmVhbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk1MzJmZQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VH
U3RyZWFtZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwOSAg
SWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBEQVRB
X1NPVVJDRV9HU1RSRUFNRVJfSAorI2RlZmluZSBEQVRBX1NPVVJDRV9HU1RSRUFNRVJfSAorCisj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RiYXNlc3JjLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9EQVRBX1NSQyAgICAgICAg
ICAgICh3ZWJraXRfZGF0YV9zcmNfZ2V0X3R5cGUgKCkpCisjZGVmaW5lIFdFQktJVF9EQVRBX1NS
QyhvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgV0VC
S0lUX1RZUEVfREFUQV9TUkMsIFdlYmtpdERhdGFTcmMpKQorI2RlZmluZSBXRUJLSVRfREFUQV9T
UkNfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgV0VC
S0lUX1RZUEVfREFUQV9TUkMsIFdlYmtpdERhdGFTcmNDbGFzcykpCisjZGVmaW5lIFdFQktJVF9J
U19EQVRBX1NSQyhvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2Jq
KSwgV0VCS0lUX1RZUEVfREFUQV9TUkMpKQorI2RlZmluZSBXRUJLSVRfSVNfREFUQV9TUkNfQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgV0VCS0lUX1RZUEVf
REFUQV9TUkMpKQorCit0eXBlZGVmIHN0cnVjdCBfV2Via2l0RGF0YVNyYyAgICAgICAgV2Via2l0
RGF0YVNyYzsKK3R5cGVkZWYgc3RydWN0IF9XZWJraXREYXRhU3JjQ2xhc3MgICBXZWJraXREYXRh
U3JjQ2xhc3M7CisKKworc3RydWN0IF9XZWJraXREYXRhU3JjIHsKKyAgICBHc3RCaW4gcGFyZW50
OworCisgICAgLyogZXhwbGljaXQgcG9pbnRlcnMgdG8gc3R1ZmYgdXNlZCAqLworICAgIEdzdEVs
ZW1lbnQqIGtpZDsKKyAgICBHc3RQYWQqIHBhZDsKKyAgICBnY2hhciogdXJpOworfTsKKworc3Ry
dWN0IF9XZWJraXREYXRhU3JjQ2xhc3MgeworICAgIEdzdEJpbkNsYXNzIHBhcmVudF9jbGFzczsK
K307CisKK0dUeXBlIHdlYmtpdF9kYXRhX3NyY19nZXRfdHlwZSh2b2lkKTsKKworR19FTkRfREVD
TFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwMGQ4MjQyLi42NGM0
MWQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBF
TkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIK
KyNpbmNsdWRlICJEYXRhU291cmNlR1N0cmVhbWVyLmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0xMjIsNiArMTIzLDE3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0
cmFyIHJlZ2lzdHJhcikKIAogc3RhdGljIGJvb2wgZ3N0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAor
c3RhdGljIHZvaWQgZG9fZ3N0X2luaXQoKSB7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNz
IHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCisgICAgaWYgKCFnc3RJbml0aWFs
aXplZCkgeworICAgICAgICBnc3RfaW5pdCgwLCAwKTsKKyAgICAgICAgZ3N0SW5pdGlhbGl6ZWQg
PSB0cnVlOworICAgICAgICBnc3RfZWxlbWVudF9yZWdpc3RlcigwLCAid2Via2l0bWVkaWFzcmMi
LCBHU1RfUkFOS19QUklNQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
VFlQRV9EQVRBX1NSQyk7CisKKyAgICB9Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIp
CiAgICAgLCBtX3BsYXlCaW4oMCkKQEAgLTE0MCwxMSArMTUyLDcgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fc2Vl
a2luZyhmYWxzZSkKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogewotICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcGFzcyB0aGUgYXJndW1lbnRzIGZyb20gdGhlIGNvbW1hbmQgbGluZQotICAg
IGlmICghZ3N0SW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgZ3N0X2luaXQoMCwgMCk7Ci0gICAgICAg
IGdzdEluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICB9CisgICAgZG9fZ3N0X2luaXQoKTsKIAogICAg
IC8vIEZJWE1FOiBUaGUgc2l6ZSBzaG91bGRuJ3QgYmUgZml4ZWQgaGVyZSwgdGhpcyBpcyBqdXN0
IGEgcXVpY2sgaGFjay4KICAgICBtX3N1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0
ZShDQUlST19GT1JNQVRfQVJHQjMyLCA2NDAsIDQ4MCk7CkBAIC02NTIsMTAgKzY2MCw4IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIHJlY3QpCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNo
ZSgpCiB7Ci0gICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewotICAgICAgICBnc3RfaW5pdCgwLCBO
VUxMKTsKLSAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgIH0KKworICAgIGRvX2dz
dF9pbml0KCk7CiAKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IGNhY2hlOwogICAgIHN0YXRp
YyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2NvbmZpZ3Vy
ZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBhNjVjNjVkLi4xMDk2ZGM0IDEwMDY0NAotLS0gYS9j
b25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC02ODAsNiArNjgwLDcgQEAgaWYgdGVz
dCAiJGVuYWJsZV92aWRlbyIgPSAieWVzIjsgdGhlbgogICAgUEtHX0NIRUNLX01PRFVMRVMoW0dT
VFJFQU1FUl0sCiAgICAgICAgICAgICAgICAgICAgICBbZ3N0cmVhbWVyLTAuMTAgPj0gJEdTVFJF
QU1FUl9SRVFVSVJFRF9WRVJTSU9OCiAgICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXItYmFz
ZS0wLjEwCisgICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXItcGJ1dGlscy0wLjEwCiAgICAg
ICAgICAgICAgICAgICAgICBnc3RyZWFtZXItcGx1Z2lucy1iYXNlLTAuMTAKICAgICAgICAgICAg
ICAgICAgICAgIGdzdHJlYW1lci12aWRlby0wLjEwXSkKICAgIEFDX1NVQlNUKFtHU1RSRUFNRVJf
Q0ZMQUdTXSkKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="21589"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40427</attachid>
            <date>2009-10-01 01:04:23 -0700</date>
            <delta_ts>2009-10-01 01:19:43 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-GTK-data-uris-support-in-media-player.patch</filename>
            <type>text/plain</type>
            <size>17797</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3YTAwZWM4MjMxNWIwZDliZWZmZDIyNjk2YWQ1YTA1ZTYxNjVkZTIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDMwIFNlcCAyMDA5IDEwOjUxOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R1RLOiBkYXRhOiB1cmlzIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVyCgotLS0KIENoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxIC0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
MCArKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNyArLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVy
LmNwcCAgfCAgMjQzICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0RhdGFTb3VyY2VHU3RyZWFtZXIuaCAgICB8ICAgNTQgKysrKysKIC4uLi9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgIHwgICAyNCArKy0KIGNvbmZpZ3Vy
ZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiA5IGZp
bGVzIGNoYW5nZWQsIDM3MCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVh
bWVyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0RhdGFTb3VyY2VHU3RyZWFtZXIuaAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxv
ZwppbmRleCBlMmMxZWY1Li45NGNmMmUzIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDktMzAgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtHVEtdIGRhdGE6IHVyaSBzdXBwb3J0IGluIG1lZGlhIHBsYXllcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk4NDIKKworICAg
ICAgICBDaGVjayBwcmVzZW5jZSBvZiBnc3RyZWFtZXItcGJ1dGlscy0wLjEwLgorCisgICAgICAg
ICogY29uZmlndXJlLmFjOgorCiAyMDA5LTA5LTI2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgR1RLIEJVSUxEIEZJWDogYWRkIEVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMgc3VwcG9ydCB0byBjb25maWd1cmUuYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNzQ3ZTAxLi5hNTQ1MGVm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDktMzAgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtHVEtdIGRhdGE6IHVyaSBzdXBwb3J0IGluIG1lZGlhIHBsYXllcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk4NDIKKworICAg
ICAgICBSZS1lbmFibGUgbWVkaWEvYXVkaW8tZGF0YS11cmwuaHRtbC4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOgorCiAyMDA5LTA5LTMwICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAppbmRleCAzNjYyMGZmLi5lZjY1YjQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZApAQCAtMzgwNCw3ICszODA0LDYgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNm
b3JtZWQuaHRtbAogbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwKIG1lZGlhL3ZpZGVv
LXNpemUtaW50cmluc2ljLXNjYWxlLmh0bWwKICMgICBUZXN0cyB0aW1pbmcgb3V0Ci1tZWRpYS9h
dWRpby1kYXRhLXVybC5odG1sCiBtZWRpYS9jb250cm9scy1kcmFnLXRpbWViYXIuaHRtbAogbWVk
aWEvZXZlbnQtYXR0cmlidXRlcy5odG1sCiBtZWRpYS91bnN1cHBvcnRlZC1ydHNwLmh0bWwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE1
ZTU5OC4uMDZjMmEwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0wOS0zMCAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW0dUS10gZGF0YTogdXJpIHN1cHBvcnQgaW4gbWVkaWEgcGxheWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg0Mgor
CisgICAgICAgIE5ldyBHU3RyZWFtZXIgZWxlbWVudCB0byBoYW5kbGUgZGF0YTogdXJpcy4gRm9y
IG5vdyBvbmx5IGJhc2U2NAorICAgICAgICBlbmNvZGVkIGRhdGEgaXMgc3VwcG9ydGVkLiBEZWNv
ZGVkIGRhdGEgaXMgaGFuZGVkIG92ZXIgdG8KKyAgICAgICAgZ2lvc3RyZWFtc3JjLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rh
dGFTb3VyY2VHU3RyZWFtZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9kb19pbml0KToKKyAgICAg
ICAgKHdlYmtpdF9kYXRhX3NyY19iYXNlX2luaXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3Jj
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3Jlc2V0KToKKyAgICAgICAg
KHdlYmtpdF9kYXRhX3NyY19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY19maW5hbGl6
ZSk6CisgICAgICAgICh3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF90eXBlKToKKyAgICAgICAgKHdl
YmtpdF9kYXRhX3NyY191cmlfZ2V0X3Byb3RvY29scyk6CisgICAgICAgICh3ZWJraXRfZGF0YV9z
cmNfdXJpX2dldF91cmkpOgorICAgICAgICAod2Via2l0X2RhdGFfc3JjX3VyaV9zZXRfdXJpKToK
KyAgICAgICAgKHdlYmtpdF9kYXRhX3NyY191cmlfaGFuZGxlcl9pbml0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRvX2dzdF9pbml0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZTo6bWltZVR5cGVDYWNoZSk6CisKIDIwMDktMDktMzAgIERhbmll
bCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA5MzkyOGFlLi4xZDBjNjU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIzMTYsMTEgKzIz
MTYsMTQgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBcCi0JV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvVmlkZW9TaW5rR1N0cmVhbWVyLmgKKwlXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2d0ay9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCisJV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5jcHAgXAorCVdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3VyY2VHc3RyZWFtZXIuaAogCiB3ZWJjb3JlX2xpYmFk
ZCArPSBcCiAJLWxnc3RpbnRlcmZhY2VzLTAuMTAgXAotCS1sZ3N0dmlkZW8tMC4xMAorCS1sZ3N0
dmlkZW8tMC4xMCBcCisJLWxnc3RwYnV0aWxzLTAuMTAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1ZJ
REVPCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFTb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJj
ZUdTdHJlYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZjMmRm
YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0RhdGFT
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEsMjQzIEBACisvKgorICogIENvcHlyaWdodCAo
QykgMjAwOSBJZ2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVNvdXJjZUdTdHJlYW1lci5oIgorCisjaW5j
bHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+
CisjaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+CisKK3N0YXRpYyBHc3RT
dGF0aWNQYWRUZW1wbGF0ZSBzcmNfdGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgi
c3JjIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHU1RfUEFEX1NSQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1RfUEFEX0FMV0FZUywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHU1RfU1RBVElDX0NBUFNfQU5ZKTsKKworR1NUX0RFQlVHX0NBVEVHT1JZX1NU
QVRJQyh3ZWJraXRfZGF0YV9zcmNfZGVidWcpOworI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgd2Vi
a2l0X2RhdGFfc3JjX2RlYnVnCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kYXRhX3NyY191cmlfaGFu
ZGxlcl9pbml0KGdwb2ludGVyIGdfaWZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncG9pbnRlciBpZmFjZV9kYXRhKTsKKworc3RhdGljIHZvaWQgd2Vi
a2l0X2RhdGFfc3JjX2ZpbmFsaXplKFdlYmtpdERhdGFTcmMqIHNyYyk7CitzdGF0aWMgR3N0U3Rh
dGVDaGFuZ2VSZXR1cm4gd2Via2l0X2RhdGFfc3JjX2NoYW5nZV9zdGF0ZShHc3RFbGVtZW50KiBl
bGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbik7CisKK3N0YXRpYyBjb25zdCBHSW50
ZXJmYWNlSW5mbyB1cmloYW5kbGVyX2luZm8gPSB7CisgICAgd2Via2l0X2RhdGFfc3JjX3VyaV9o
YW5kbGVyX2luaXQsCisgICAgMCwgMAorfTsKKworCitzdGF0aWMgdm9pZCBfZG9faW5pdChHVHlw
ZSBkYXRhc3JjX3R5cGUpCit7CisgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X2Rh
dGFfc3JjX2RlYnVnLCAid2Via2l0X2RhdGFfc3JjIiwgMCwgImRhdGFzcmMgZWxlbWVudCIpOwor
ICAgIGdfdHlwZV9hZGRfaW50ZXJmYWNlX3N0YXRpYyhkYXRhc3JjX3R5cGUsIEdTVF9UWVBFX1VS
SV9IQU5ETEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXJpaGFuZGxlcl9p
bmZvKTsKK30KKworR1NUX0JPSUxFUlBMQVRFX0ZVTEwoV2Via2l0RGF0YVNyYywgd2Via2l0X2Rh
dGFfc3JjLCBHc3RCaW4sIEdTVF9UWVBFX0JJTiwgX2RvX2luaXQpOworCitzdGF0aWMgdm9pZCB3
ZWJraXRfZGF0YV9zcmNfYmFzZV9pbml0KGdwb2ludGVyIGtsYXNzKQoreworICAgIEdzdEVsZW1l
bnRDbGFzcyogZWxlbWVudF9jbGFzcyA9IEdTVF9FTEVNRU5UX0NMQVNTKGtsYXNzKTsKKworICAg
IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoZWxlbWVudF9jbGFzcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRl
X2dldCgmc3JjX3RlbXBsYXRlKSk7CisgICAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNf
c2ltcGxlKGVsZW1lbnRfY2xhc3MsIChnY2hhciopICJXZWJLaXQgZGF0YSBzb3VyY2UgZWxlbWVu
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2hhciopICJT
b3VyY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NoYXIq
KSAiSGFuZGxlcyBkYXRhOiB1cmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdjaGFyKikgIlBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+
Iik7CisKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2RhdGFfc3JjX2NsYXNzX2luaXQoV2Via2l0
RGF0YVNyY0NsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9rbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHc3RFbGVtZW50Q2xhc3MqIGVrbGFzcyA9IEdTVF9FTEVN
RU5UX0NMQVNTKGtsYXNzKTsKKworICAgIG9rbGFzcy0+ZmluYWxpemUgPSAoR09iamVjdEZpbmFs
aXplRnVuYykgd2Via2l0X2RhdGFfc3JjX2ZpbmFsaXplOworICAgIGVrbGFzcy0+Y2hhbmdlX3N0
YXRlID0gd2Via2l0X2RhdGFfc3JjX2NoYW5nZV9zdGF0ZTsKK30KKworCitzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0X2RhdGFfc3JjX3Jlc2V0KFdlYmtpdERhdGFTcmMqIHNyYykKK3sKKyAgICBHc3RQ
YWQqIHRhcmdldHBhZDsKKworICAgIGlmIChzcmMtPmtpZCkgeworICAgICAgICBnc3RfZWxlbWVu
dF9zZXRfc3RhdGUoc3JjLT5raWQsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgZ3N0X2Jpbl9y
ZW1vdmUoR1NUX0JJTihzcmMpLCBzcmMtPmtpZCk7CisgICAgfQorCisgICAgc3JjLT5raWQgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImdpb3N0cmVhbXNyYyIsICJzdHJlYW1zcmMiKTsKKyAg
ICBpZiAoIXNyYy0+a2lkKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVk
IHRvIGNyZWF0ZSBnaW9zdHJlYW1zcmMiKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0K
KworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgc3JjLT5raWQpOworCisgICAgdGFyZ2V0
cGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoc3JjLT5raWQsICJzcmMiKTsKKyAgICBn
c3RfZ2hvc3RfcGFkX3NldF90YXJnZXQoR1NUX0dIT1NUX1BBRChzcmMtPnBhZCksIHRhcmdldHBh
ZCk7CisgICAgZ3N0X29iamVjdF91bnJlZih0YXJnZXRwYWQpOworCisgICAgcmV0dXJuIFRSVUU7
Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kYXRhX3NyY19pbml0KFdlYmtpdERhdGFTcmMqIHNy
YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYmtpdERhdGFTcmNDbGFzcyog
Z19jbGFzcykKK3sKKyAgICBHc3RQYWRUZW1wbGF0ZSogcGFkX3RlbXBsYXRlID0gZ3N0X3N0YXRp
Y19wYWRfdGVtcGxhdGVfZ2V0KCZzcmNfdGVtcGxhdGUpOworICAgIHNyYy0+cGFkID0gZ3N0X2do
b3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoInNyYyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRfdGVtcGxhdGUp
OworCisgICAgZ3N0X2VsZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzcmMpLCBzcmMtPnBhZCk7
CisKKyAgICB3ZWJraXRfZGF0YV9zcmNfcmVzZXQoc3JjKTsKK30KKworc3RhdGljIHZvaWQgd2Vi
a2l0X2RhdGFfc3JjX2ZpbmFsaXplKFdlYmtpdERhdGFTcmMqIHNyYykKK3sKKyAgICBnX2ZyZWUo
c3JjLT51cmkpOworCisgICAgaWYgKHNyYy0+a2lkKSB7CisgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiUmVtb3ZpbmcgZ2lvc3RyZWFtc3JjIGVsZW1lbnQiKTsKKyAgICAgICAgZ3N0X2Vs
ZW1lbnRfc2V0X3N0YXRlKHNyYy0+a2lkLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgICAgIGdzdF9i
aW5fcmVtb3ZlKEdTVF9CSU4oc3JjKSwgc3JjLT5raWQpOworICAgICAgICBzcmMtPmtpZCA9IDA7
CisgICAgfQorCisgICAgR1NUX0NBTExfUEFSRU5UKEdfT0JKRUNUX0NMQVNTLCBmaW5hbGl6ZSwg
KChHT2JqZWN0KiApKHNyYykpKTsKK30KKworc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdl
YmtpdF9kYXRhX3NyY19jaGFuZ2Vfc3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdGVD
aGFuZ2UgdHJhbnNpdGlvbikKK3sKKyAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiByZXQgPSBHU1Rf
U1RBVEVfQ0hBTkdFX1NVQ0NFU1M7CisgICAgV2Via2l0RGF0YVNyYyogc3JjID0gV0VCS0lUX0RB
VEFfU1JDKGVsZW1lbnQpOworCisgICAgc3dpdGNoICh0cmFuc2l0aW9uKSB7CisgICAgY2FzZSBH
U1RfU1RBVEVfQ0hBTkdFX05VTExfVE9fUkVBRFk6CisgICAgICAgIGlmICghc3JjLT5raWQpIHsK
KyAgICAgICAgICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZV9u
ZXcoZWxlbWVudCwgImdpb3N0cmVhbXNyYyIpKTsKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VS
Uk9SKHNyYywgQ09SRSwgTUlTU0lOR19QTFVHSU4sICgwKSwgKCJubyBnaW9zdHJlYW1zcmMiKSk7
CisgICAgICAgICAgICByZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHJldCA9IEdTVF9FTEVNRU5UX0NMQVNTKHBhcmVudF9jbGFzcyktPmNoYW5nZV9zdGF0ZShl
bGVtZW50LCB0cmFuc2l0aW9uKTsKKyAgICBpZiAoR19VTkxJS0VMWShyZXQgPT0gR1NUX1NUQVRF
X0NIQU5HRV9GQUlMVVJFKSkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIC8vIERvd253YXJk
cyBzdGF0ZSBjaGFuZ2UgY29kZSBzaG91bGQgYmUgaGVyZSwgYWZ0ZXIgY2hhaW5pbmcgdXAKKyAg
ICAvLyB0byB0aGUgcGFyZW50IGNsYXNzLgorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoqKiBH
U1RVUklIQU5ETEVSIElOVEVSRkFDRSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqLworCitzdGF0aWMgR3N0VVJJVHlwZSB3ZWJraXRfZGF0YV9zcmNfdXJp
X2dldF90eXBlKHZvaWQpCit7CisgICAgcmV0dXJuIEdTVF9VUklfU1JDOworfQorCitzdGF0aWMg
Z2NoYXIqKiB3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF9wcm90b2NvbHModm9pZCkKK3sKKyAgICBz
dGF0aWMgZ2NoYXIqIHByb3RvY29sc1tdID0geyhnY2hhciopICJkYXRhIiwgMCB9OworCisgICAg
cmV0dXJuIHByb3RvY29sczsKK30KKworc3RhdGljIGNvbnN0IGdjaGFyKiB3ZWJraXRfZGF0YV9z
cmNfdXJpX2dldF91cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKK3sKKyAgICBXZWJraXREYXRh
U3JjKiBzcmMgPSBXRUJLSVRfREFUQV9TUkMoaGFuZGxlcik7CisKKyAgICByZXR1cm4gc3JjLT51
cmk7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZGF0YV9zcmNfdXJpX3NldF91cmkoR3N0
VVJJSGFuZGxlciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBXZWJraXREYXRh
U3JjKiBzcmMgPSBXRUJLSVRfREFUQV9TUkMoaGFuZGxlcik7CisKKyAgICAvLyBVUkkgYXMgZGVm
aW5lZCBpbiBSRkMyMzk3OgorICAgIC8vICJkYXRhOiIgWyBtZWRpYXR5cGUgXSBbICI7YmFzZTY0
IiBdICIsIiBkYXRhCisgICAgLy8gd2UgcGFyc2UgVVJJcyBsaWtlIHRoaXMgb25lOgorICAgIC8v
IGRhdGE6YXVkaW8vM2dwcDtiYXNlNjQsQUEuLi4KKworICAgIGdjaGFyKiogc2NoZW1lX2FuZF9y
ZW1haW5zID0gZ19zdHJzcGxpdCh1cmksICI6IiwgMik7CisgICAgZ2NoYXIqKiBtaW1lX3R5cGVf
YW5kX29wdGlvbnMgPSBnX3N0cnNwbGl0KHNjaGVtZV9hbmRfcmVtYWluc1sxXSwgIjsiLCAwKTsK
KyAgICBnaW50IG9wdGlvbnNfc2l6ZSA9IGdfc3Rydl9sZW5ndGgobWltZV90eXBlX2FuZF9vcHRp
b25zKTsKKyAgICBnY2hhciogZGF0YSA9IDA7CisgICAgZ2NoYXIqIG1pbWVfdHlwZSA9IDA7Cisg
ICAgZ2ludCByZXQgPSBGQUxTRTsKKworICAgIC8vIHdlIHJlcXVpcmUgdXJpcyB3aXRoIGEgc3Bl
Y2lmaWVkIG1pbWUtdHlwZSBhbmQgYmFzZTY0LWVuY29kZWQKKyAgICAvLyBkYXRhLiBJdCBkb2Vz
bid0IG1ha2UgbXVjaCBzZW5zZSBhbnl3YXkgdG8gcGxheSBwbGFpbi90ZXh0IGRhdGEKKyAgICAv
LyB3aXRoIHZlcnkgZmV3IGFsbG93ZWQgY2hhcmFjdGVycyAoYXMgcGVyIHRoZSBSRkMpLgorCisg
ICAgaWYgKEdTVF9TVEFURShzcmMpID49IEdTVF9TVEFURV9QQVVTRUQpIHsKKyAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChzcmMsICJFbGVtZW50IGFscmVhZHkgY29uZmlndXJlZC4gUmVzZXQgaXQg
YW5kIHJldHJ5Iik7CisgICAgfSBlbHNlIGlmICghb3B0aW9uc19zaXplKQorICAgICAgICBHU1Rf
RVJST1JfT0JKRUNUKHNyYywgIkEgbWltZS10eXBlIGlzIG5lZWRlZCBpbiAlcyIsIHVyaSk7Cisg
ICAgZWxzZSB7CisgICAgICAgIG1pbWVfdHlwZSA9IG1pbWVfdHlwZV9hbmRfb3B0aW9uc1swXTsK
KyAgICAgICAgZGF0YSA9IG1pbWVfdHlwZV9hbmRfb3B0aW9uc1tvcHRpb25zX3NpemUtMV07CisK
KyAgICAgICAgZ3VjaGFyKiBkZWNvZGVkX2RhdGEgPSAwOworICAgICAgICBnc2l6ZSBkZWNvZGVk
X3NpemU7CisKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4KGRhdGEsICJiYXNlNjQiKSkK
KyAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRGF0YSBoYXMgdG8gYmUgYmFzZTY0
LWVuY29kZWQgaW4gJXMiLCB1cmkpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRlY29k
ZWRfZGF0YSA9IGdfYmFzZTY0X2RlY29kZShkYXRhKzcsICZkZWNvZGVkX3NpemUpOworICAgICAg
ICAgICAgR0lucHV0U3RyZWFtKiBzdHJlYW0gPSBnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3X2Zy
b21fZGF0YShkZWNvZGVkX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWRfc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ19mcmVlKTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3NldChzcmMtPmtpZCwgInN0
cmVhbSIsIHN0cmVhbSwgMCk7CisgICAgICAgICAgICBnX29iamVjdF91bnJlZihzdHJlYW0pOwor
CisgICAgICAgICAgICBpZiAoc3JjLT51cmkpIHsKKyAgICAgICAgICAgICAgICBnX2ZyZWUoc3Jj
LT51cmkpOworICAgICAgICAgICAgICAgIHNyYy0+dXJpID0gMDsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgc3JjLT51cmkgPSBnX3N0cmR1cCh1cmkpOworICAgICAgICAgICAgcmV0ID0g
VFJVRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGdfc3RyZnJlZXYoc2NoZW1lX2FuZF9yZW1h
aW5zKTsKKyAgICBnX3N0cmZyZWV2KG1pbWVfdHlwZV9hbmRfb3B0aW9ucyk7CisgICAgcmV0dXJu
IHJldDsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2RhdGFfc3JjX3VyaV9oYW5kbGVyX2luaXQo
Z3BvaW50ZXIgZ19pZmFjZSwgZ3BvaW50ZXIgaWZhY2VfZGF0YSkKK3sKKyAgICBHc3RVUklIYW5k
bGVySW50ZXJmYWNlKiBpZmFjZSA9IChHc3RVUklIYW5kbGVySW50ZXJmYWNlICopIGdfaWZhY2U7
CisKKyAgICBpZmFjZS0+Z2V0X3R5cGUgPSB3ZWJraXRfZGF0YV9zcmNfdXJpX2dldF90eXBlOwor
ICAgIGlmYWNlLT5nZXRfcHJvdG9jb2xzID0gd2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfcHJvdG9j
b2xzOworICAgIGlmYWNlLT5nZXRfdXJpID0gd2Via2l0X2RhdGFfc3JjX3VyaV9nZXRfdXJpOwor
ICAgIGlmYWNlLT5zZXRfdXJpID0gd2Via2l0X2RhdGFfc3JjX3VyaV9zZXRfdXJpOworfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1l
ci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGF0YVNvdXJjZUdTdHJlYW1lci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlODhmNjMKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EYXRhU291cmNlR1N0cmVhbWVy
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMu
TAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBEQVRBX1NPVVJDRV9H
U1RSRUFNRVJfSAorI2RlZmluZSBEQVRBX1NPVVJDRV9HU1RSRUFNRVJfSAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RiYXNlc3JjLmg+CisKK0dfQkVH
SU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9EQVRBX1NSQyAgICAgICAgICAgICh3ZWJr
aXRfZGF0YV9zcmNfZ2V0X3R5cGUgKCkpCisjZGVmaW5lIFdFQktJVF9EQVRBX1NSQyhvYmopICAg
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgV0VCS0lUX1RZUEVf
REFUQV9TUkMsIFdlYmtpdERhdGFTcmMpKQorI2RlZmluZSBXRUJLSVRfREFUQV9TUkNfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgV0VCS0lUX1RZUEVf
REFUQV9TUkMsIFdlYmtpdERhdGFTcmNDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19EQVRBX1NS
QyhvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgV0VCS0lU
X1RZUEVfREFUQV9TUkMpKQorI2RlZmluZSBXRUJLSVRfSVNfREFUQV9TUkNfQ0xBU1Moa2xhc3Mp
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgV0VCS0lUX1RZUEVfREFUQV9TUkMp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2Via2l0RGF0YVNyYyAgICAgICAgV2Via2l0RGF0YVNyYzsK
K3R5cGVkZWYgc3RydWN0IF9XZWJraXREYXRhU3JjQ2xhc3MgICBXZWJraXREYXRhU3JjQ2xhc3M7
CisKKworc3RydWN0IF9XZWJraXREYXRhU3JjIHsKKyAgICBHc3RCaW4gcGFyZW50OworCisgICAg
LyogZXhwbGljaXQgcG9pbnRlcnMgdG8gc3R1ZmYgdXNlZCAqLworICAgIEdzdEVsZW1lbnQqIGtp
ZDsKKyAgICBHc3RQYWQqIHBhZDsKKyAgICBnY2hhciogdXJpOworfTsKKworc3RydWN0IF9XZWJr
aXREYXRhU3JjQ2xhc3MgeworICAgIEdzdEJpbkNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK0dU
eXBlIHdlYmtpdF9kYXRhX3NyY19nZXRfdHlwZSh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwMGQ4MjQyLi42NGM0MWQxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBFTkFCTEUoVklE
RU8pCiAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKKyNpbmNsdWRl
ICJEYXRhU291cmNlR1N0cmVhbWVyLmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0xMjIsNiArMTIzLDE3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lz
dHJhcikKIAogc3RhdGljIGJvb2wgZ3N0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAorc3RhdGljIHZv
aWQgZG9fZ3N0X2luaXQoKSB7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHRoZSBhcmd1
bWVudHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCisgICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewor
ICAgICAgICBnc3RfaW5pdCgwLCAwKTsKKyAgICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwor
ICAgICAgICBnc3RfZWxlbWVudF9yZWdpc3RlcigwLCAid2Via2l0bWVkaWFzcmMiLCBHU1RfUkFO
S19QUklNQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9EQVRB
X1NSQyk7CisKKyAgICB9Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBt
X3BsYXlCaW4oMCkKQEAgLTE0MCwxMSArMTUyLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRp
YVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fc2Vla2luZyhmYWxz
ZSkKICAgICAsIG1fZXJyb3JPY2N1cmVkKGZhbHNlKQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgcGFzcyB0aGUgYXJndW1lbnRzIGZyb20gdGhlIGNvbW1hbmQgbGluZQotICAgIGlmICghZ3N0
SW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgZ3N0X2luaXQoMCwgMCk7Ci0gICAgICAgIGdzdEluaXRp
YWxpemVkID0gdHJ1ZTsKLSAgICB9CisgICAgZG9fZ3N0X2luaXQoKTsKIAogICAgIC8vIEZJWE1F
OiBUaGUgc2l6ZSBzaG91bGRuJ3QgYmUgZml4ZWQgaGVyZSwgdGhpcyBpcyBqdXN0IGEgcXVpY2sg
aGFjay4KICAgICBtX3N1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19G
T1JNQVRfQVJHQjMyLCA2NDAsIDQ4MCk7CkBAIC02NTIsMTAgKzY2MCw4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7Ci0g
ICAgaWYgKCFnc3RJbml0aWFsaXplZCkgewotICAgICAgICBnc3RfaW5pdCgwLCBOVUxMKTsKLSAg
ICAgICAgZ3N0SW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgIH0KKworICAgIGRvX2dzdF9pbml0KCk7
CiAKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IGNhY2hlOwogICAgIHN0YXRpYyBib29sIHR5
cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2Nv
bmZpZ3VyZS5hYwppbmRleCBhNjVjNjVkLi4xMDk2ZGM0IDEwMDY0NAotLS0gYS9jb25maWd1cmUu
YWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC02ODAsNiArNjgwLDcgQEAgaWYgdGVzdCAiJGVuYWJs
ZV92aWRlbyIgPSAieWVzIjsgdGhlbgogICAgUEtHX0NIRUNLX01PRFVMRVMoW0dTVFJFQU1FUl0s
CiAgICAgICAgICAgICAgICAgICAgICBbZ3N0cmVhbWVyLTAuMTAgPj0gJEdTVFJFQU1FUl9SRVFV
SVJFRF9WRVJTSU9OCiAgICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXItYmFzZS0wLjEwCisg
ICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXItcGJ1dGlscy0wLjEwCiAgICAgICAgICAgICAg
ICAgICAgICBnc3RyZWFtZXItcGx1Z2lucy1iYXNlLTAuMTAKICAgICAgICAgICAgICAgICAgICAg
IGdzdHJlYW1lci12aWRlby0wLjEwXSkKICAgIEFDX1NVQlNUKFtHU1RSRUFNRVJfQ0ZMQUdTXSkK
LS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>