<?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>54198</bug_id>
          
          <creation_ts>2011-02-10 05:49:56 -0800</creation_ts>
          <short_desc>[GTK] Log signals from AtkDocument interface also in AccessibilityController</short_desc>
          <delta_ts>2011-02-10 10:42:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25831</blocked>
    
    <blocked>53146</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348990</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 05:49:56 -0800</bug_when>
    <thetext>Apart from logging all activity related to the AtkObject&apos;s signals being emitted, it would be useful as well to log those signals being emitted by objects implementing the AtkDocument interface.

Among other things, it would probably help to write a good layout test for patch for bug 25831, instead of having to work around the situation through a unit test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348992</commentid>
    <comment_count>1</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 05:54:16 -0800</bug_when>
    <thetext>I forgot to mention what exactly I&apos;d like to get added in there. It would be the following signals:

  - load-complete
  - load-stopped
  - reload

http://library.gnome.org/devel/atk/unstable/AtkDocument.html#AtkDocument.signals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349046</commentid>
    <comment_count>2</comment_count>
      <attachid>81976</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 07:03:45 -0800</bug_when>
    <thetext>Created attachment 81976
Patch proposal

Patch proposal.

I&apos;ve also made the most of this patch to fix some static functions and parameters names which were not following the code convention before (oops!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349122</commentid>
    <comment_count>3</comment_count>
      <attachid>81976</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-10 09:17:36 -0800</bug_when>
    <thetext>Comment on attachment 81976
Patch proposal

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

Great. Please incorporate the following suggestions.

&gt; Tools/DumpRenderTree/gtk/AccessibilityCallbacks.cpp:36
&gt; +#include &quot;DumpRenderTree.h&quot;
&gt; +#include &quot;WebCoreSupport/DumpRenderTreeSupportGtk.h&quot;
&gt; +
&gt; +#include &lt;gtk/gtk.h&gt;

No empty line needed here.

&gt; Tools/DumpRenderTree/gtk/AccessibilityCallbacks.cpp:65
&gt; +    gchar* actualObjectName = 0;
&gt; +    if (!objectName || *objectName == &apos;\0&apos;)
&gt; +        actualObjectName = g_strdup(&quot;(No name)&quot;);
&gt; +    else
&gt; +        actualObjectName = g_strdup(objectName);
&gt; +

I think you can just do this:
if (!objectName || *objectName == &apos;\0&apos;)
    objectName = &quot;No name&quot;;

and avoid some extra code.

&gt; Tools/DumpRenderTree/gtk/AccessibilityCallbacks.cpp:86
&gt; +    gchar* signalName = 0;

You can use GOwnPtr here.

&gt; Tools/DumpRenderTree/gtk/AccessibilityCallbacks.cpp:102
&gt; +    } else {
&gt; +        signalName = g_strdup(signal_query.signal_name);
&gt; +    }

No curlies here since this is only one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349179</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 10:42:40 -0800</bug_when>
    <thetext>Committed r78244: &lt;http://trac.webkit.org/changeset/78244&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81976</attachid>
            <date>2011-02-10 07:03:45 -0800</date>
            <delta_ts>2011-02-10 09:17:36 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2011-02-10-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>20440</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBlMjI2ZmU4ZDY5OTRmYzJmMGQ3ZjhmNmY2NWI0MzhmZjBmYWI4YTdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUaHUsIDEwIEZlYiAyMDExIDE0OjIwOjM3ICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMi0xMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBMb2cg
c2lnbmFscyBmcm9tIEF0a0RvY3VtZW50IGludGVyZmFjZSBhbHNvIGluIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MTk4CgogICAgICAgIFRyYWNlIEF0a0RvY3VtZW50J3Mgc2lnbmFscyBlbWlzc2lvbiB0aHJv
dWdoIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLgoKICAgICAgICBBbHNvLCB0YWtlbiB0aGUgY29k
ZSByZWxhdGVkIHRvIGFkZGluZyBhbmQgcmVtb3ZpbmcgZ2xvYmFsCiAgICAgICAgbGlzdGVuZXJz
IGZvciBBVEsgc2lnbmFscyBvdXQgdG8gYSBzZXBhcmF0ZSBmaWxlLCBmb3IgdGhlIHNha2Ugb2YK
ICAgICAgICBjbGFyaXR5IGFuZCB0byBlYXNlIGZ1dHVyZSBhZGRpdGlvbnMuCgogICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDYWxsYmFja3MuaDogQWRkZWQuCiAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNhbGxiYWNrcy5jcHA6IEFkZGVk
CiAgICAgICAgKHByaW50QWNjZXNzaWJpbGl0eUV2ZW50KTogUHJpbnQgaW5mb3JtYXRpb24gYWJv
dXQgYW4gZXZlbnQuCiAgICAgICAgKGF4T2JqZWN0RXZlbnRMaXN0ZW5lcik6IEdsb2JhbCBsaXN0
ZW5lciBmb3IgQXRrT2JqZWN0J3Mgc2lnbmFscy4KICAgICAgICAoYXhEb2N1bWVudEV2ZW50TGlz
dGVuZXIpOiBHbG9iYWwgbGlzdGVuZXIgZm9yIEF0a0RvY3VtZW50J3Mgc2lnbmFscy4KICAgICAg
ICAoY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MpOiBDb25uZWN0IGFsbCBnbG9iYWwgbGlz
dGVuZXJzLgogICAgICAgIChkaXNjb25uZWN0QWNjZXNzaWJpbGl0eUNhbGxiYWNrcyk6IERpc2Nv
bm5lY3QgYWxsIGdsb2JhbCBsaXN0ZW5lcnMuCgogICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcDoKICAgICAgICAoQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOiBDYWxsIHRvCiAgICAgICAgY29u
bmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MgYW5kIGRpc2Nvbm5lY3RBY2Nlc3NpYmlsaXR5Q2Fs
bGJhY2tzLgoKICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGRlZCBuZXcgZmlsZXMuCi0tLQog
VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3
ICsrKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmNwcCAg
fCAgMjA1ICsrKysrKysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNj
ZXNzaWJpbGl0eUNhbGxiYWNrcy5oICB8ICAgMzUgKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlckd0ay5jcHAgICAgICAgICAgICAgfCAgIDk3ICstLS0tLS0tLS0KIFRvb2xzL0dO
VW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiA1IGZp
bGVzIGNoYW5nZWQsIDI3MiBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNhbGxiYWNr
cy5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eUNhbGxiYWNrcy5oCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDQxZWY2YTcuLmMwMjVkYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMi0xMCAg
TWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gTG9nIHNpZ25hbHMgZnJv
bSBBdGtEb2N1bWVudCBpbnRlcmZhY2UgYWxzbyBpbiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxOTgKKwor
ICAgICAgICBUcmFjZSBBdGtEb2N1bWVudCdzIHNpZ25hbHMgZW1pc3Npb24gdGhyb3VnaCBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci4KKworICAgICAgICBBbHNvLCB0YWtlbiB0aGUgY29kZSByZWxh
dGVkIHRvIGFkZGluZyBhbmQgcmVtb3ZpbmcgZ2xvYmFsCisgICAgICAgIGxpc3RlbmVycyBmb3Ig
QVRLIHNpZ25hbHMgb3V0IHRvIGEgc2VwYXJhdGUgZmlsZSwgZm9yIHRoZSBzYWtlIG9mCisgICAg
ICAgIGNsYXJpdHkgYW5kIHRvIGVhc2UgZnV0dXJlIGFkZGl0aW9ucy4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmg6IEFkZGVkLgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmNwcDogQWRkZWQK
KyAgICAgICAgKHByaW50QWNjZXNzaWJpbGl0eUV2ZW50KTogUHJpbnQgaW5mb3JtYXRpb24gYWJv
dXQgYW4gZXZlbnQuCisgICAgICAgIChheE9iamVjdEV2ZW50TGlzdGVuZXIpOiBHbG9iYWwgbGlz
dGVuZXIgZm9yIEF0a09iamVjdCdzIHNpZ25hbHMuCisgICAgICAgIChheERvY3VtZW50RXZlbnRM
aXN0ZW5lcik6IEdsb2JhbCBsaXN0ZW5lciBmb3IgQXRrRG9jdW1lbnQncyBzaWduYWxzLgorICAg
ICAgICAoY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MpOiBDb25uZWN0IGFsbCBnbG9iYWwg
bGlzdGVuZXJzLgorICAgICAgICAoZGlzY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MpOiBE
aXNjb25uZWN0IGFsbCBnbG9iYWwgbGlzdGVuZXJzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpzZXRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKTogQ2FsbCB0bworICAg
ICAgICBjb25uZWN0QWNjZXNzaWJpbGl0eUNhbGxiYWNrcyBhbmQgZGlzY29ubmVjdEFjY2Vzc2li
aWxpdHlDYWxsYmFja3MuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZp
bGVzLgorCiAyMDExLTAyLTEwICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTZkMDcxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDYWxsYmFja3MuY3BwCkBAIC0wLDAgKzEs
MjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDYWxsYmFja3MuaCIKKworI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIK
KyNpbmNsdWRlICJXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKKwor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CisKK3N0YXRp
YyBndWludCBzdGF0ZUNoYW5nZUxpc3RlbmVySWQgPSAwOworc3RhdGljIGd1aW50IGZvY3VzRXZl
bnRMaXN0ZW5lcklkID0gMDsKK3N0YXRpYyBndWludCBhY3RpdmVEZXNjZW5kYW50Q2hhbmdlZExp
c3RlbmVySWQgPSAwOworc3RhdGljIGd1aW50IGNoaWxkcmVuQ2hhbmdlZExpc3RlbmVySWQgPSAw
Oworc3RhdGljIGd1aW50IHByb3BlcnR5Q2hhbmdlZExpc3RlbmVySWQgPSAwOworc3RhdGljIGd1
aW50IHZpc2libGVEYXRhQ2hhbmdlZExpc3RlbmVySWQgPSAwOworCitzdGF0aWMgZ3VpbnQgbG9h
ZENvbXBsZXRlTGlzdGVuZXJJZCA9IDA7CitzdGF0aWMgZ3VpbnQgbG9hZFN0b3BwZWRMaXN0ZW5l
cklkID0gMDsKK3N0YXRpYyBndWludCByZWxvYWRMaXN0ZW5lcklkID0gMDsKKworc3RhdGljIHZv
aWQgcHJpbnRBY2Nlc3NpYmlsaXR5RXZlbnQoQXRrT2JqZWN0KiBhY2Nlc3NpYmxlLCBjb25zdCBn
Y2hhciogc2lnbmFsTmFtZSkKK3sKKyAgICAvLyBTYW5pdHkgY2hlY2suCisgICAgaWYgKCFhY2Nl
c3NpYmxlIHx8ICFBVEtfSVNfT0JKRUNUKGFjY2Vzc2libGUpIHx8ICFzaWduYWxOYW1lKQorICAg
ICAgICByZXR1cm47CisKKyAgICBjb25zdCBnY2hhciogb2JqZWN0TmFtZSA9IGF0a19vYmplY3Rf
Z2V0X25hbWUoYWNjZXNzaWJsZSk7CisgICAgZ3VpbnQgb2JqZWN0Um9sZSA9IGF0a19vYmplY3Rf
Z2V0X3JvbGUoYWNjZXNzaWJsZSk7CisKKyAgICAvLyBUcnkgdG8gYWx3YXlzIHByb3ZpZGUgYSBu
YW1lIHRvIGJlIGxvZ2dlZCBmb3IgdGhlIG9iamVjdC4KKyAgICBnY2hhciogYWN0dWFsT2JqZWN0
TmFtZSA9IDA7CisgICAgaWYgKCFvYmplY3ROYW1lIHx8ICpvYmplY3ROYW1lID09ICdcMCcpCisg
ICAgICAgIGFjdHVhbE9iamVjdE5hbWUgPSBnX3N0cmR1cCgiKE5vIG5hbWUpIik7CisgICAgZWxz
ZQorICAgICAgICBhY3R1YWxPYmplY3ROYW1lID0gZ19zdHJkdXAob2JqZWN0TmFtZSk7CisKKyAg
ICBwcmludGYoIkFjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgXCIlc1wiIC8gTmFtZTogXCIl
c1wiIC8gUm9sZTogJWRcbiIsCisgICAgICAgICAgIHNpZ25hbE5hbWUsIGFjdHVhbE9iamVjdE5h
bWUsIG9iamVjdFJvbGUpOworCisgICAgZ19mcmVlKGFjdHVhbE9iamVjdE5hbWUpOworfQorCitz
dGF0aWMgZ2Jvb2xlYW4gYXhPYmplY3RFdmVudExpc3RlbmVyKEdTaWduYWxJbnZvY2F0aW9uSGlu
dCAqc2lnbmFsSGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp
bnQgbnVtUGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEdWYWx1ZSAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdwb2ludGVyIGRhdGEpCit7CisgICAgLy8gQXQgbGVhc3Qgd2Ugc2hvdWxkIHJl
Y2VpdmUgdGhlIGluc3RhbmNlIGVtaXR0aW5nIHRoZSBzaWduYWwuCisgICAgaWYgKG51bVBhcmFt
VmFsdWVzIDwgMSkKKyAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICBBdGtPYmplY3QqIGFjY2Vz
c2libGUgPSBBVEtfT0JKRUNUKGdfdmFsdWVfZ2V0X29iamVjdCgmcGFyYW1WYWx1ZXNbMF0pKTsK
KyAgICBpZiAoIWFjY2Vzc2libGUgfHwgIUFUS19JU19PQkpFQ1QoYWNjZXNzaWJsZSkpCisgICAg
ICAgIHJldHVybiBUUlVFOworCisgICAgR1NpZ25hbFF1ZXJ5IHNpZ25hbF9xdWVyeTsKKyAgICBn
Y2hhciogc2lnbmFsTmFtZSA9IDA7CisKKyAgICBnX3NpZ25hbF9xdWVyeShzaWduYWxIaW50LT5z
aWduYWxfaWQsICZzaWduYWxfcXVlcnkpOworCisgICAgaWYgKCFnX3N0cmNtcDAoc2lnbmFsX3F1
ZXJ5LnNpZ25hbF9uYW1lLCAic3RhdGUtY2hhbmdlIikpIHsKKyAgICAgICAgc2lnbmFsTmFtZSA9
IGdfc3RyZHVwX3ByaW50Zigic3RhdGUtY2hhbmdlOiVzID0gJWQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfdmFsdWVfZ2V0X3N0cmluZygmcGFyYW1WYWx1ZXNbMV0p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFsdWVfZ2V0X2Jvb2xl
YW4oJnBhcmFtVmFsdWVzWzJdKSk7CisgICAgfSBlbHNlIGlmICghZ19zdHJjbXAwKHNpZ25hbF9x
dWVyeS5zaWduYWxfbmFtZSwgImZvY3VzLWV2ZW50IikpIHsKKyAgICAgICAgc2lnbmFsTmFtZSA9
IGdfc3RyZHVwX3ByaW50ZigiZm9jdXMtZXZlbnQgPSAlZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ192YWx1ZV9nZXRfYm9vbGVhbigmcGFyYW1WYWx1ZXNbMV0pKTsK
KyAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAoc2lnbmFsX3F1ZXJ5LnNpZ25hbF9uYW1lLCAiY2hp
bGRyZW4tY2hhbmdlZCIpKSB7CisgICAgICAgIHNpZ25hbE5hbWUgPSBnX3N0cmR1cF9wcmludGYo
ImNoaWxkcmVuLWNoYW5nZWQgPSAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ192YWx1ZV9nZXRfdWludCgmcGFyYW1WYWx1ZXNbMV0pKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBzaWduYWxOYW1lID0gZ19zdHJkdXAoc2lnbmFsX3F1ZXJ5LnNpZ25hbF9uYW1lKTsK
KyAgICB9CisKKyAgICBwcmludEFjY2Vzc2liaWxpdHlFdmVudChhY2Nlc3NpYmxlLCBzaWduYWxO
YW1lKTsKKyAgICBnX2ZyZWUoc2lnbmFsTmFtZSk7CisKKyAgICByZXR1cm4gVFJVRTsKK30KKwor
c3RhdGljIGdib29sZWFuIGF4RG9jdW1lbnRFdmVudExpc3RlbmVyKEdTaWduYWxJbnZvY2F0aW9u
SGludCAqc2lnbmFsSGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndWludCBudW1QYXJhbVZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBHVmFsdWUgKnBhcmFtVmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpCit7CisgICAgLy8gQXQgbGVhc3Qgd2Ug
c2hvdWxkIHJlY2VpdmUgdGhlIGluc3RhbmNlIGVtaXR0aW5nIHRoZSBzaWduYWwuCisgICAgaWYg
KG51bVBhcmFtVmFsdWVzIDwgMSkKKyAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICBBdGtPYmpl
Y3QqIGFjY2Vzc2libGUgPSBBVEtfT0JKRUNUKGdfdmFsdWVfZ2V0X29iamVjdCgmcGFyYW1WYWx1
ZXNbMF0pKTsKKyAgICBpZiAoIWFjY2Vzc2libGUgfHwgIUFUS19JU19ET0NVTUVOVChhY2Nlc3Np
YmxlKSkKKyAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICBHU2lnbmFsUXVlcnkgc2lnbmFsX3F1
ZXJ5OworICAgIGdfc2lnbmFsX3F1ZXJ5KHNpZ25hbEhpbnQtPnNpZ25hbF9pZCwgJnNpZ25hbF9x
dWVyeSk7CisKKyAgICBnY2hhciogc2lnbmFsTmFtZSA9IGdfc3RyZHVwKHNpZ25hbF9xdWVyeS5z
aWduYWxfbmFtZSk7CisgICAgcHJpbnRBY2Nlc3NpYmlsaXR5RXZlbnQoYWNjZXNzaWJsZSwgc2ln
bmFsTmFtZSk7CisgICAgZ19mcmVlKHNpZ25hbE5hbWUpOworCisgICAgcmV0dXJuIFRSVUU7Cit9
CisKK3ZvaWQgY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MoKQoreworICAgIC8vIEVuc3Vy
ZSBubyBjYWxsYmFja3MgYXJlIGNvbm5lY3RlZCBiZWZvcmUuCisgICAgZGlzY29ubmVjdEFjY2Vz
c2liaWxpdHlDYWxsYmFja3MoKTsKKworICAgIC8vIEVuc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkg
aXMgaW5pdGlhbGl6ZWQgZm9yIHRoZSBXZWJWaWV3IGJ5IHF1ZXJ5aW5nIGZvcgorICAgIC8vIHRo
ZSByb290IGFjY2Vzc2libGUgb2JqZWN0LCB3aGljaCB3aWxsIGNyZWF0ZSB0aGUgZnVsbCBoaWVy
YXJjaHkuCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnZXRSb290QWNjZXNzaWJsZUVs
ZW1lbnQobWFpbkZyYW1lKTsKKworICAgIC8vIEFkZCBnbG9iYWwgbGlzdGVuZXJzIGZvciBBdGtP
YmplY3QncyBzaWduYWxzLgorICAgIHN0YXRlQ2hhbmdlTGlzdGVuZXJJZCA9IGF0a19hZGRfZ2xv
YmFsX2V2ZW50X2xpc3RlbmVyKGF4T2JqZWN0RXZlbnRMaXN0ZW5lciwgIkd0azpBdGtPYmplY3Q6
c3RhdGUtY2hhbmdlIik7CisgICAgZm9jdXNFdmVudExpc3RlbmVySWQgPSBhdGtfYWRkX2dsb2Jh
bF9ldmVudF9saXN0ZW5lcihheE9iamVjdEV2ZW50TGlzdGVuZXIsICJHdGs6QXRrT2JqZWN0OmZv
Y3VzLWV2ZW50Iik7CisgICAgYWN0aXZlRGVzY2VuZGFudENoYW5nZWRMaXN0ZW5lcklkID0gYXRr
X2FkZF9nbG9iYWxfZXZlbnRfbGlzdGVuZXIoYXhPYmplY3RFdmVudExpc3RlbmVyLCAiR3RrOkF0
a09iamVjdDphY3RpdmUtZGVzY2VuZGFudC1jaGFuZ2VkIik7CisgICAgY2hpbGRyZW5DaGFuZ2Vk
TGlzdGVuZXJJZCA9IGF0a19hZGRfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGF4T2JqZWN0RXZlbnRM
aXN0ZW5lciwgIkd0azpBdGtPYmplY3Q6Y2hpbGRyZW4tY2hhbmdlZCIpOworICAgIHByb3BlcnR5
Q2hhbmdlZExpc3RlbmVySWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9saXN0ZW5lcihheE9iamVj
dEV2ZW50TGlzdGVuZXIsICJHdGs6QXRrT2JqZWN0OnByb3BlcnR5LWNoYW5nZSIpOworICAgIHZp
c2libGVEYXRhQ2hhbmdlZExpc3RlbmVySWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9saXN0ZW5l
cihheE9iamVjdEV2ZW50TGlzdGVuZXIsICJHdGs6QXRrT2JqZWN0OnZpc2libGUtZGF0YS1jaGFu
Z2VkIik7CisKKyAgICAvLyBFbnN1cmUgdGhlIEF0ayBpbnRlcmZhY2UgdHlwZXMgYXJlIHJlZ2lz
dGVyZWQsIG90aGVyd2lzZQorICAgIC8vIHRoZSBBdGtEb2N1bWVudCBzaWduYWwgaGFuZGxlcnMg
YmVsb3cgd29uJ3QgZ2V0IHJlZ2lzdGVyZWQuCisgICAgR09iamVjdCogZHVtbXlBeE9iamVjdCA9
IEdfT0JKRUNUKGdfb2JqZWN0X25ldyhBVEtfVFlQRV9PQkpFQ1QsIDApKTsKKyAgICBBdGtPYmpl
Y3QqIGR1bW15Tm9PcEF4T2JqZWN0ID0gYXRrX25vX29wX29iamVjdF9uZXcoZHVtbXlBeE9iamVj
dCk7CisgICAgZ19vYmplY3RfdW5yZWYoR19PQkpFQ1QoZHVtbXlOb09wQXhPYmplY3QpKTsKKyAg
ICBnX29iamVjdF91bnJlZihkdW1teUF4T2JqZWN0KTsKKworICAgIC8vIEFkZCBnbG9iYWwgbGlz
dGVuZXJzIGZvciBBdGtEb2N1bWVudCdzIHNpZ25hbHMuCisgICAgbG9hZENvbXBsZXRlTGlzdGVu
ZXJJZCA9IGF0a19hZGRfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGF4RG9jdW1lbnRFdmVudExpc3Rl
bmVyLCAiR3RrOkF0a0RvY3VtZW50OmxvYWQtY29tcGxldGUiKTsKKyAgICBsb2FkU3RvcHBlZExp
c3RlbmVySWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9saXN0ZW5lcihheERvY3VtZW50RXZlbnRM
aXN0ZW5lciwgIkd0azpBdGtEb2N1bWVudDpsb2FkLXN0b3BwZWQiKTsKKyAgICByZWxvYWRMaXN0
ZW5lcklkID0gYXRrX2FkZF9nbG9iYWxfZXZlbnRfbGlzdGVuZXIoYXhEb2N1bWVudEV2ZW50TGlz
dGVuZXIsICJHdGs6QXRrRG9jdW1lbnQ6cmVsb2FkIik7Cit9CisKK3ZvaWQgZGlzY29ubmVjdEFj
Y2Vzc2liaWxpdHlDYWxsYmFja3MoKQoreworICAgIC8vIEF0a09iamVjdCBzaWduYWxzLgorICAg
IGlmIChzdGF0ZUNoYW5nZUxpc3RlbmVySWQpIHsKKyAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxf
ZXZlbnRfbGlzdGVuZXIoc3RhdGVDaGFuZ2VMaXN0ZW5lcklkKTsKKyAgICAgICAgc3RhdGVDaGFu
Z2VMaXN0ZW5lcklkID0gMDsKKyAgICB9CisgICAgaWYgKGZvY3VzRXZlbnRMaXN0ZW5lcklkKSB7
CisgICAgICAgIGF0a19yZW1vdmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGZvY3VzRXZlbnRMaXN0
ZW5lcklkKTsKKyAgICAgICAgZm9jdXNFdmVudExpc3RlbmVySWQgPSAwOworICAgIH0KKyAgICBp
ZiAoYWN0aXZlRGVzY2VuZGFudENoYW5nZWRMaXN0ZW5lcklkKSB7CisgICAgICAgIGF0a19yZW1v
dmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkTGlzdGVuZXJJ
ZCk7CisgICAgICAgIGFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkTGlzdGVuZXJJZCA9IDA7CisgICAg
fQorICAgIGlmIChjaGlsZHJlbkNoYW5nZWRMaXN0ZW5lcklkKSB7CisgICAgICAgIGF0a19yZW1v
dmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGNoaWxkcmVuQ2hhbmdlZExpc3RlbmVySWQpOworICAg
ICAgICBjaGlsZHJlbkNoYW5nZWRMaXN0ZW5lcklkID0gMDsKKyAgICB9CisgICAgaWYgKHByb3Bl
cnR5Q2hhbmdlZExpc3RlbmVySWQpIHsKKyAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRf
bGlzdGVuZXIocHJvcGVydHlDaGFuZ2VkTGlzdGVuZXJJZCk7CisgICAgICAgIHByb3BlcnR5Q2hh
bmdlZExpc3RlbmVySWQgPSAwOworICAgIH0KKyAgICBpZiAodmlzaWJsZURhdGFDaGFuZ2VkTGlz
dGVuZXJJZCkgeworICAgICAgICBhdGtfcmVtb3ZlX2dsb2JhbF9ldmVudF9saXN0ZW5lcih2aXNp
YmxlRGF0YUNoYW5nZWRMaXN0ZW5lcklkKTsKKyAgICAgICAgdmlzaWJsZURhdGFDaGFuZ2VkTGlz
dGVuZXJJZCA9IDA7CisgICAgfQorCisgICAgLy8gQXRrRG9jdW1lbnQgc2lnbmFscy4KKyAgICBp
ZiAobG9hZENvbXBsZXRlTGlzdGVuZXJJZCkgeworICAgICAgICBhdGtfcmVtb3ZlX2dsb2JhbF9l
dmVudF9saXN0ZW5lcihsb2FkQ29tcGxldGVMaXN0ZW5lcklkKTsKKyAgICAgICAgbG9hZENvbXBs
ZXRlTGlzdGVuZXJJZCA9IDA7CisgICAgfQorICAgIGlmIChsb2FkU3RvcHBlZExpc3RlbmVySWQp
IHsKKyAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIobG9hZFN0b3BwZWRM
aXN0ZW5lcklkKTsKKyAgICAgICAgbG9hZFN0b3BwZWRMaXN0ZW5lcklkID0gMDsKKyAgICB9Cisg
ICAgaWYgKHJlbG9hZExpc3RlbmVySWQpIHsKKyAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZl
bnRfbGlzdGVuZXIocmVsb2FkTGlzdGVuZXJJZCk7CisgICAgICAgIHJlbG9hZExpc3RlbmVySWQg
PSAwOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0Fj
Y2Vzc2liaWxpdHlDYWxsYmFja3MuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3Np
YmlsaXR5Q2FsbGJhY2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIy
NTc1NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3Np
YmlsaXR5Q2FsbGJhY2tzLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eUNhbGxiYWNrc19oCisjZGVmaW5l
IEFjY2Vzc2liaWxpdHlDYWxsYmFja3NfaAorCit2b2lkIGNvbm5lY3RBY2Nlc3NpYmlsaXR5Q2Fs
bGJhY2tzKCk7Cit2b2lkIGRpc2Nvbm5lY3RBY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzKCk7CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMTk3NmU1Mi4uZGE3MGVmYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3RrLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDYWxsYmFja3Mu
aCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgiCiAjaW5jbHVkZSAiRHVtcFJl
bmRlclRyZWUuaCIKICNpbmNsdWRlICJXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuaCIKQEAgLTM3LDEzICszOCw2IEBACiAKIHN0YXRpYyBib29sIGxvZ2dpbmdBY2Nlc3Np
YmlsaXR5RXZlbnRzID0gZmFsc2U7CiAKLXN0YXRpYyBndWludCBzdGF0ZV9jaGFuZ2VfbGlzdGVu
ZXJfaWQgPSAwOwotc3RhdGljIGd1aW50IGZvY3VzX2V2ZW50X2xpc3RlbmVyX2lkID0gMDsKLXN0
YXRpYyBndWludCBhY3RpdmVfZGVzY2VuZGFudF9jaGFuZ2VkX2xpc3RlbmVyX2lkID0gMDsKLXN0
YXRpYyBndWludCBjaGlsZHJlbl9jaGFuZ2VkX2xpc3RlbmVyX2lkID0gMDsKLXN0YXRpYyBndWlu
dCBwcm9wZXJ0eV9jaGFuZ2VkX2xpc3RlbmVyX2lkID0gMDsKLXN0YXRpYyBndWludCB2aXNpYmxl
X2RhdGFfY2hhbmdlZF9saXN0ZW5lcl9pZCA9IDA7Ci0KIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpCiB7CiB9CkBAIC04OCwxMDMgKzgyLDE4IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKGJvb2wp
CiB7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiBhY2Nlc3NpYmlsaXR5X2V2ZW50X2xpc3RlbmVyKEdT
aWduYWxJbnZvY2F0aW9uSGludCAqc2lnbmFsX2hpbnQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG5fcGFyYW1fdmFsdWVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgKnBhcmFtX3ZhbHVl
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg
ZGF0YSkKLXsKLSAgICAvLyBBdCBsZWFzdCB3ZSBzaG91bGQgcmVjZWl2ZSB0aGUgaW5zdGFuY2Ug
ZW1pdHRpbmcgdGhlIHNpZ25hbC4KLSAgICBpZiAobl9wYXJhbV92YWx1ZXMgPCAxKQotICAgICAg
ICByZXR1cm4gVFJVRTsKLQotICAgIEF0a09iamVjdCogYWNjZXNzaWJsZSA9IEFUS19PQkpFQ1Qo
Z192YWx1ZV9nZXRfb2JqZWN0KCZwYXJhbV92YWx1ZXNbMF0pKTsKLSAgICBjb25zdCBnY2hhciog
YXhPYmplY3ROYW1lID0gMDsKLSAgICBndWludCBheE9iamVjdFJvbGUgPSAwOwotICAgIGlmIChh
Y2Nlc3NpYmxlKSB7Ci0gICAgICAgIGF4T2JqZWN0TmFtZSA9IGF0a19vYmplY3RfZ2V0X25hbWUo
YWNjZXNzaWJsZSk7Ci0gICAgICAgIGF4T2JqZWN0Um9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUo
YWNjZXNzaWJsZSk7Ci0gICAgfQotCi0gICAgR1NpZ25hbFF1ZXJ5IHNpZ25hbF9xdWVyeTsKLSAg
ICBnY2hhciogc2lnbmFsTmFtZSA9IDA7Ci0KLSAgICBnX3NpZ25hbF9xdWVyeShzaWduYWxfaGlu
dC0+c2lnbmFsX2lkLCAmc2lnbmFsX3F1ZXJ5KTsKLQotICAgIGlmICghZ19zdHJjbXAwKHNpZ25h
bF9xdWVyeS5zaWduYWxfbmFtZSwgInN0YXRlLWNoYW5nZSIpKSB7Ci0gICAgICAgIHNpZ25hbE5h
bWUgPSBnX3N0cmR1cF9wcmludGYoInN0YXRlLWNoYW5nZTolcyA9ICVkIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhbHVlX2dldF9zdHJpbmcoJnBhcmFtX3ZhbHVl
c1sxXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YWx1ZV9nZXRf
Ym9vbGVhbigmcGFyYW1fdmFsdWVzWzJdKSk7Ci0gICAgfSBlbHNlIGlmICghZ19zdHJjbXAwKHNp
Z25hbF9xdWVyeS5zaWduYWxfbmFtZSwgImZvY3VzLWV2ZW50IikpIHsKLSAgICAgICAgc2lnbmFs
TmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiZm9jdXMtZXZlbnQgPSAlZCIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ192YWx1ZV9nZXRfYm9vbGVhbigmcGFyYW1fdmFsdWVz
WzFdKSk7Ci0gICAgfSBlbHNlIGlmICghZ19zdHJjbXAwKHNpZ25hbF9xdWVyeS5zaWduYWxfbmFt
ZSwgImNoaWxkcmVuLWNoYW5nZWQiKSkgewotICAgICAgICBzaWduYWxOYW1lID0gZ19zdHJkdXBf
cHJpbnRmKCJjaGlsZHJlbi1jaGFuZ2VkID0gJWQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfdmFsdWVfZ2V0X3VpbnQoJnBhcmFtX3ZhbHVlc1sxXSkpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHNpZ25hbE5hbWUgPSBnX3N0cmR1cChzaWduYWxfcXVlcnkuc2lnbmFs
X25hbWUpOwotICAgIH0KLQotICAgIC8vIFRyeSB0byBwcm92aWRlIGFsd2F5cyBhIG5hbWUgdG8g
YmUgbG9nZ2VkIGZvciB0aGUgb2JqZWN0LgotICAgIGdjaGFyKiBvYmplY3ROYW1lID0gMDsKLSAg
ICBpZiAoIWF4T2JqZWN0TmFtZSB8fCAqYXhPYmplY3ROYW1lID09ICdcMCcpCi0gICAgICAgIG9i
amVjdE5hbWUgPSBnX3N0cmR1cCgiKE5vIG5hbWUpIik7Ci0gICAgZWxzZQotICAgICAgICBvYmpl
Y3ROYW1lID0gZ19zdHJkdXAoYXhPYmplY3ROYW1lKTsKLQotICAgIHByaW50ZigiQWNjZXNzaWJp
bGl0eSBvYmplY3QgZW1pdHRlZCBcIiVzXCIgLyBOYW1lOiBcIiVzXCIgLyBSb2xlOiAlZFxuIiwg
c2lnbmFsTmFtZSwgb2JqZWN0TmFtZSwgYXhPYmplY3RSb2xlKTsKLSAgICBnX2ZyZWUoc2lnbmFs
TmFtZSk7Ci0gICAgZ19mcmVlKG9iamVjdE5hbWUpOwotCi0gICAgcmV0dXJuIFRSVUU7Ci19Ci0K
IHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMo
Ym9vbCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKQogewogICAgIGlmIChsb2dBY2Nlc3NpYmlsaXR5
RXZlbnRzID09IGxvZ2dpbmdBY2Nlc3NpYmlsaXR5RXZlbnRzKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoc3RhdGVfY2hhbmdlX2xpc3RlbmVyX2lkKSB7Ci0gICAgICAgIGF0a19yZW1vdmVf
Z2xvYmFsX2V2ZW50X2xpc3RlbmVyKHN0YXRlX2NoYW5nZV9saXN0ZW5lcl9pZCk7Ci0gICAgICAg
IHN0YXRlX2NoYW5nZV9saXN0ZW5lcl9pZCA9IDA7Ci0gICAgfQotICAgIGlmIChmb2N1c19ldmVu
dF9saXN0ZW5lcl9pZCkgewotICAgICAgICBhdGtfcmVtb3ZlX2dsb2JhbF9ldmVudF9saXN0ZW5l
cihmb2N1c19ldmVudF9saXN0ZW5lcl9pZCk7Ci0gICAgICAgIGZvY3VzX2V2ZW50X2xpc3RlbmVy
X2lkID0gMDsKLSAgICB9Ci0gICAgaWYgKGFjdGl2ZV9kZXNjZW5kYW50X2NoYW5nZWRfbGlzdGVu
ZXJfaWQpIHsKLSAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIoYWN0aXZl
X2Rlc2NlbmRhbnRfY2hhbmdlZF9saXN0ZW5lcl9pZCk7Ci0gICAgICAgIGFjdGl2ZV9kZXNjZW5k
YW50X2NoYW5nZWRfbGlzdGVuZXJfaWQgPSAwOwotICAgIH0KLSAgICBpZiAoY2hpbGRyZW5fY2hh
bmdlZF9saXN0ZW5lcl9pZCkgewotICAgICAgICBhdGtfcmVtb3ZlX2dsb2JhbF9ldmVudF9saXN0
ZW5lcihjaGlsZHJlbl9jaGFuZ2VkX2xpc3RlbmVyX2lkKTsKLSAgICAgICAgY2hpbGRyZW5fY2hh
bmdlZF9saXN0ZW5lcl9pZCA9IDA7Ci0gICAgfQotICAgIGlmIChwcm9wZXJ0eV9jaGFuZ2VkX2xp
c3RlbmVyX2lkKSB7Ci0gICAgICAgIGF0a19yZW1vdmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKHBy
b3BlcnR5X2NoYW5nZWRfbGlzdGVuZXJfaWQpOwotICAgICAgICBwcm9wZXJ0eV9jaGFuZ2VkX2xp
c3RlbmVyX2lkID0gMDsKLSAgICB9Ci0gICAgaWYgKHZpc2libGVfZGF0YV9jaGFuZ2VkX2xpc3Rl
bmVyX2lkKSB7Ci0gICAgICAgIGF0a19yZW1vdmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKHZpc2li
bGVfZGF0YV9jaGFuZ2VkX2xpc3RlbmVyX2lkKTsKLSAgICAgICAgdmlzaWJsZV9kYXRhX2NoYW5n
ZWRfbGlzdGVuZXJfaWQgPSAwOwotICAgIH0KLQogICAgIGlmICghbG9nQWNjZXNzaWJpbGl0eUV2
ZW50cykgeworICAgICAgICBkaXNjb25uZWN0QWNjZXNzaWJpbGl0eUNhbGxiYWNrcygpOwogICAg
ICAgICBsb2dnaW5nQWNjZXNzaWJpbGl0eUV2ZW50cyA9IGZhbHNlOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgLy8gRW5zdXJlIHRoYXQgYWNjZXNzaWJpbGl0eSBpcyBpbml0aWFsaXpl
ZCBmb3IgdGhlIFdlYlZpZXcgYnkgcXVlcnlpbmcgZm9yCi0gICAgLy8gdGhlIHJvb3QgYWNjZXNz
aWJsZSBvYmplY3QuCi0gICAgcm9vdEVsZW1lbnQoKTsKLQotICAgIC8vIEFkZCBnbG9iYWwgbGlz
dGVuZXJzCi0gICAgc3RhdGVfY2hhbmdlX2xpc3RlbmVyX2lkID0gYXRrX2FkZF9nbG9iYWxfZXZl
bnRfbGlzdGVuZXIoYWNjZXNzaWJpbGl0eV9ldmVudF9saXN0ZW5lciwgIkd0azpBdGtPYmplY3Q6
c3RhdGUtY2hhbmdlIik7Ci0gICAgZm9jdXNfZXZlbnRfbGlzdGVuZXJfaWQgPSBhdGtfYWRkX2ds
b2JhbF9ldmVudF9saXN0ZW5lcihhY2Nlc3NpYmlsaXR5X2V2ZW50X2xpc3RlbmVyLCAiR3RrOkF0
a09iamVjdDpmb2N1cy1ldmVudCIpOwotICAgIGFjdGl2ZV9kZXNjZW5kYW50X2NoYW5nZWRfbGlz
dGVuZXJfaWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9saXN0ZW5lcihhY2Nlc3NpYmlsaXR5X2V2
ZW50X2xpc3RlbmVyLCAiR3RrOkF0a09iamVjdDphY3RpdmUtZGVzY2VuZGFudC1jaGFuZ2VkIik7
Ci0gICAgY2hpbGRyZW5fY2hhbmdlZF9saXN0ZW5lcl9pZCA9IGF0a19hZGRfZ2xvYmFsX2V2ZW50
X2xpc3RlbmVyKGFjY2Vzc2liaWxpdHlfZXZlbnRfbGlzdGVuZXIsICJHdGs6QXRrT2JqZWN0OmNo
aWxkcmVuLWNoYW5nZWQiKTsKLSAgICBwcm9wZXJ0eV9jaGFuZ2VkX2xpc3RlbmVyX2lkID0gYXRr
X2FkZF9nbG9iYWxfZXZlbnRfbGlzdGVuZXIoYWNjZXNzaWJpbGl0eV9ldmVudF9saXN0ZW5lciwg
Ikd0azpBdGtPYmplY3Q6cHJvcGVydHktY2hhbmdlIik7Ci0gICAgdmlzaWJsZV9kYXRhX2NoYW5n
ZWRfbGlzdGVuZXJfaWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9saXN0ZW5lcihhY2Nlc3NpYmls
aXR5X2V2ZW50X2xpc3RlbmVyLCAiR3RrOkF0a09iamVjdDp2aXNpYmxlLWRhdGEtY2hhbmdlZCIp
OwotCisgICAgY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MoKTsKICAgICBsb2dnaW5nQWNj
ZXNzaWJpbGl0eUV2ZW50cyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0dOVW1ha2Vm
aWxlLmFtIGIvVG9vbHMvR05VbWFrZWZpbGUuYW0KaW5kZXggYmM3NGViYy4uYTIwOGFmZSAxMDA2
NDQKLS0tIGEvVG9vbHMvR05VbWFrZWZpbGUuYW0KKysrIGIvVG9vbHMvR05VbWFrZWZpbGUuYW0K
QEAgLTY5LDYgKzY5LDggQEAgUHJvZ3JhbXNfRHVtcFJlbmRlclRyZWVfU09VUkNFUyA9IFwKIAlU
b29scy9EdW1wUmVuZGVyVHJlZS9jb25maWcuaCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvY2Fp
cm8vUGl4ZWxEdW1wU3VwcG9ydENhaXJvLmNwcCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvY2Fp
cm8vUGl4ZWxEdW1wU3VwcG9ydENhaXJvLmggXAorCVRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9B
Y2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmggXAorCVRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nl
c3NpYmlsaXR5Q2FsbGJhY2tzLmNwcCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyR3RrLmNwcCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RHVtcFJlbmRlclRyZWUuY3BwIFwKLS0gCjEuNy4zLjUKCg==
</data>
<flag name="review"
          id="73593"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>