<?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>46359</bug_id>
          
          <creation_ts>2010-09-23 08:47:20 -0700</creation_ts>
          <short_desc>Message autogeneration script should parse sync message syntax</short_desc>
          <delta_ts>2010-09-23 09:47:06 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>283671</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-23 08:47:20 -0700</bug_when>
    <thetext>Message autogeneration script should parse sync message syntax</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283674</commentid>
    <comment_count>1</comment_count>
      <attachid>68526</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-23 08:53:37 -0700</bug_when>
    <thetext>Created attachment 68526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283679</commentid>
    <comment_count>2</comment_count>
      <attachid>68526</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-23 09:07:04 -0700</bug_when>
    <thetext>Comment on attachment 68526
Patch

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

&gt; WebKit2/Scripts/webkit2/messages.py:87
&gt; +                    reply_parameters = [Parameter(*type_and_name.split(&apos; &apos;)) for type_and_name in reply_parameters_string.split(&apos;, &apos;)]

Maybe we should add a function that does this instead of duplicating the code.

&gt; WebKit2/Scripts/webkit2/messages.py:102
&gt; +        if self.reply_parameters != None:

I think &quot;is not&quot; is preferred over &quot;!=&quot;.

&gt; WebKit2/Scripts/webkit2/messages.py:136
&gt; +    builtin_types = [&apos;bool&apos;, &apos;uint8_t&apos;, &apos;uint16_t&apos;, &apos;uint32_t&apos;, &apos;uint64_t&apos;]

Wrapping this in set() would be good.

I don&apos;t see a test that passes a type with :: as a non-reference.

&gt; WebKit2/Scripts/webkit2/messages.py:166
&gt; +def reply_base_class(message):
&gt; +    reply_base_class = &apos;CoreIPC::Arguments%d&apos; % len(message.reply_parameters)
&gt; +    if len(message.reply_parameters):
&gt; +        reply_base_class = &apos;%s&lt;%s&gt;&apos; % (reply_base_class, &apos;, &apos;.join(reply_parameter_type(parameter.type) for parameter in message.reply_parameters))
&gt; +    return reply_base_class
&gt; +
&gt; +
&gt; +def delayed_reply_base_class(message):
&gt; +    delayed_reply_base_class = &apos;CoreIPC::Arguments%d&apos; % len(message.reply_parameters)
&gt; +    if len(message.reply_parameters):
&gt; +        delayed_reply_base_class = &apos;%s&lt;%s&gt;&apos; % (delayed_reply_base_class, &apos;, &apos;.join(function_parameter_type(parameter.type) for parameter in message.reply_parameters))
&gt; +    return delayed_reply_base_class

So much code duplication! Can we just pass the *_parameter_type function as a parameter?

&gt; WebKit2/Scripts/webkit2/messages_unittest.py:154
&gt; +        if message.reply_parameters != None:
&gt; +            for index, parameter in enumerate(message.reply_parameters):
&gt; +                self.assertEquals(parameter.type, expected_message[&apos;reply_parameters&apos;][index][0])
&gt; +                self.assertEquals(parameter.name, expected_message[&apos;reply_parameters&apos;][index][1])

Hm, this won&apos;t catch cases where we expect there to be reply parameters but for some reason the parsing screwed up and found none.

&gt; WebKit2/Scripts/webkit2/messages_unittest.py:173
&gt; +            if message.reply_parameters != None:
&gt; +                self.assertEquals(messages.reply_base_class(message), _expected_results[&apos;messages&apos;][index][&apos;reply_base_class&apos;])
&gt; +                if message.delayed:
&gt; +                    self.assertEquals(messages.delayed_reply_base_class(message), _expected_results[&apos;messages&apos;][index][&apos;delayed_reply_base_class&apos;])

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283707</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-23 09:47:06 -0700</bug_when>
    <thetext>Committed r68153: &lt;http://trac.webkit.org/changeset/68153&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68526</attachid>
            <date>2010-09-23 08:53:37 -0700</date>
            <delta_ts>2010-09-23 09:07:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46359-20100923085336.patch</filename>
            <type>text/plain</type>
            <size>8376</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MTA1MWU0MGIwMWYyN2NiNzVjMzY1YTY2MDQ4ZTBhNGUxNGMyZjg3OC4uNDUzY2RmMDQ5YzJjMDA3
M2VhZjM5ZDk0OWMxY2JlZmY4MzQyNDM0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0yMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lc3NhZ2UgYXV0b2dlbmVyYXRpb24gc2NyaXB0
IHNob3VsZCBwYXJzZSBzeW5jIG1lc3NhZ2Ugc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjM1OQorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoTWVzc2FnZVJlY2VpdmVyLnBhcnNlKTogRXhwYW5k
IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gaGFuZGxlIHN5bmMgbWVzc2FnZXMuCisgICAgICAg
IChmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSk6IFVzZSBhIGNvbnN0IHJlZmVyZW5jZSBmb3IgYWxs
IHBhcmFtZXRlcnMgZXhjZXB0IHRoZSBrbm93biBidWlsdGlucy4KKyAgICAgICAgKGJhc2VfY2xh
c3MpOiBSZXR1cm5zIHRoZSBiYXNlIGNsYXNzIGZvciBhIHN5bmMgbWVzc2FnZSByZXBseSBzdHJ1
Y3QuCisgICAgICAgIChkZWxheWVkX2Jhc2VfY2xhc3MpOiBSZXR1cm5zIHRoZSBiYXNlIGNsYXNz
IGZvciBhIGRlbGF5ZWQgc3luYyBtZXNzYWdlIHJlcGx5IHN0cnVjdC4KKyAgICAgICAgCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5OgorICAgICAgICBBZGQg
dW5pdCB0ZXN0cyBmb3IgdmFyaW91cyBzeW5jIG1lc3NhZ2VzLgorCiAyMDEwLTA5LTIyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5IGIvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggZGY3MzkyZGJk
MTY3ZTllNGM4NzU2OGYwZjM1ZmY1NTY1MmNkNzUyMS4uMmNlMWE2MjRmYTZiZjQ0OTZhOWRkYTAy
MDk2NTRmOTY1ZmVmODlmMCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkKKysrIGIvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTcz
LDIxICs3MywzNCBAQCBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIob2JqZWN0KToKICAgICAgICAgICAg
ICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgnI2VuZGlmJyk6CiAgICAgICAgICAgICAgICAgICAg
IGNvbmRpdGlvbiA9IE5vbmUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
bWF0Y2ggPSByZS5zZWFyY2gocicoW0EtWmEtel8wLTldKylcKCguKilcKScsIGxpbmUpCisgICAg
ICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJyhbQS1aYS16XzAtOV0rKVwoKC4qPylcKSg/Oig/
OlxzKy0+XHMrKVwoKC4qPylcKSg/OlxzKyhkZWxheWVkKSk/KT8nLCBsaW5lKQogICAgICAgICAg
ICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgbmFtZSwgcGFyYW1ldGVyc19zdHJpbmcgPSBt
YXRjaC5ncm91cHMoKQorICAgICAgICAgICAgICAgIG5hbWUsIHBhcmFtZXRlcnNfc3RyaW5nLCBy
ZXBseV9wYXJhbWV0ZXJzX3N0cmluZywgZGVsYXllZF9zdHJpbmcgPSBtYXRjaC5ncm91cHMoKQog
ICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRlcnNfc3RyaW5nOgogICAgICAgICAgICAgICAgICAg
ICBwYXJhbWV0ZXJzID0gW1BhcmFtZXRlcigqdHlwZV9hbmRfbmFtZS5zcGxpdCgnICcpKSBmb3Ig
dHlwZV9hbmRfbmFtZSBpbiBwYXJhbWV0ZXJzX3N0cmluZy5zcGxpdCgnLCAnKV0KICAgICAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KLSAgICAg
ICAgICAgICAgICBtZXNzYWdlcy5hcHBlbmQoTWVzc2FnZShuYW1lLCBwYXJhbWV0ZXJzLCBjb25k
aXRpb24pKQorCisgICAgICAgICAgICAgICAgZGVsYXllZCA9IGRlbGF5ZWRfc3RyaW5nID09ICdk
ZWxheWVkJworCisgICAgICAgICAgICAgICAgaWYgcmVwbHlfcGFyYW1ldGVyc19zdHJpbmc6Cisg
ICAgICAgICAgICAgICAgICAgIHJlcGx5X3BhcmFtZXRlcnMgPSBbUGFyYW1ldGVyKCp0eXBlX2Fu
ZF9uYW1lLnNwbGl0KCcgJykpIGZvciB0eXBlX2FuZF9uYW1lIGluIHJlcGx5X3BhcmFtZXRlcnNf
c3RyaW5nLnNwbGl0KCcsICcpXQorICAgICAgICAgICAgICAgIGVsaWYgcmVwbHlfcGFyYW1ldGVy
c19zdHJpbmcgPT0gJyc6CisgICAgICAgICAgICAgICAgICAgIHJlcGx5X3BhcmFtZXRlcnMgPSBb
XQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlcGx5X3BhcmFt
ZXRlcnMgPSBOb25lCisKKyAgICAgICAgICAgICAgICBtZXNzYWdlcy5hcHBlbmQoTWVzc2FnZShu
YW1lLCBwYXJhbWV0ZXJzLCByZXBseV9wYXJhbWV0ZXJzLCBkZWxheWVkLCBjb25kaXRpb24pKQog
ICAgICAgICByZXR1cm4gTWVzc2FnZVJlY2VpdmVyKGRlc3RpbmF0aW9uLCBtZXNzYWdlcykKIAog
CiBjbGFzcyBNZXNzYWdlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBh
cmFtZXRlcnMsIGNvbmRpdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmFt
ZXRlcnMsIHJlcGx5X3BhcmFtZXRlcnMsIGRlbGF5ZWQsIGNvbmRpdGlvbik6CiAgICAgICAgIHNl
bGYubmFtZSA9IG5hbWUKICAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycworICAg
ICAgICBzZWxmLnJlcGx5X3BhcmFtZXRlcnMgPSByZXBseV9wYXJhbWV0ZXJzCisgICAgICAgIGlm
IHNlbGYucmVwbHlfcGFyYW1ldGVycyAhPSBOb25lOgorICAgICAgICAgICAgc2VsZi5kZWxheWVk
ID0gZGVsYXllZAogICAgICAgICBzZWxmLmNvbmRpdGlvbiA9IGNvbmRpdGlvbgogCiAgICAgZGVm
IGlkKHNlbGYpOgpAQCAtMTE5LDExICsxMzIsMTcgQEAgZGVmIG1lc3NhZ2VzX3RvX2tpbmRfZW51
bShtZXNzYWdlcyk6CiAKIAogZGVmIGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHR5cGUpOgotICAg
ICMgV2UgYXNzdW1lIHRoYXQgd2UgbXVzdCB1c2UgYSByZWZlcmVuY2UgZm9yIGEgdHlwZSBpZmYg
aXQgY29udGFpbnMgYSBzY29wZQotICAgICMgcmVzb2x1dGlvbiBvcGVyYXRvciAoOjopLgotICAg
IGlmIHJlLnNlYXJjaChyJzo6JywgdHlwZSk6Ci0gICAgICAgIHJldHVybiAnY29uc3QgJXMmJyAl
IHR5cGUKLSAgICByZXR1cm4gdHlwZQorICAgICMgRG9uJ3QgdXNlIHJlZmVyZW5jZXMgZm9yIGJ1
aWx0LWluIHR5cGVzLgorICAgIGJ1aWx0aW5fdHlwZXMgPSBbJ2Jvb2wnLCAndWludDhfdCcsICd1
aW50MTZfdCcsICd1aW50MzJfdCcsICd1aW50NjRfdCddCisKKyAgICBpZiB0eXBlIGluIGJ1aWx0
aW5fdHlwZXM6CisgICAgICAgIHJldHVybiB0eXBlCisKKyAgICByZXR1cm4gJ2NvbnN0ICVzJicg
JSB0eXBlCisKKworZGVmIHJlcGx5X3BhcmFtZXRlcl90eXBlKHR5cGUpOgorICAgIHJldHVybiAn
JXMmJyAlIHR5cGUKIAogCiBkZWYgYmFzZV9jbGFzcyhtZXNzYWdlKToKQEAgLTEzMyw2ICsxNTIs
MTkgQEAgZGVmIGJhc2VfY2xhc3MobWVzc2FnZSk6CiAgICAgcmV0dXJuIGJhc2VfY2xhc3MKIAog
CitkZWYgcmVwbHlfYmFzZV9jbGFzcyhtZXNzYWdlKToKKyAgICByZXBseV9iYXNlX2NsYXNzID0g
J0NvcmVJUEM6OkFyZ3VtZW50cyVkJyAlIGxlbihtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMpCisg
ICAgaWYgbGVuKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyk6CisgICAgICAgIHJlcGx5X2Jhc2Vf
Y2xhc3MgPSAnJXM8JXM+JyAlIChyZXBseV9iYXNlX2NsYXNzLCAnLCAnLmpvaW4ocmVwbHlfcGFy
YW1ldGVyX3R5cGUocGFyYW1ldGVyLnR5cGUpIGZvciBwYXJhbWV0ZXIgaW4gbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzKSkKKyAgICByZXR1cm4gcmVwbHlfYmFzZV9jbGFzcworCisKK2RlZiBkZWxh
eWVkX3JlcGx5X2Jhc2VfY2xhc3MobWVzc2FnZSk6CisgICAgZGVsYXllZF9yZXBseV9iYXNlX2Ns
YXNzID0gJ0NvcmVJUEM6OkFyZ3VtZW50cyVkJyAlIGxlbihtZXNzYWdlLnJlcGx5X3BhcmFtZXRl
cnMpCisgICAgaWYgbGVuKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyk6CisgICAgICAgIGRlbGF5
ZWRfcmVwbHlfYmFzZV9jbGFzcyA9ICclczwlcz4nICUgKGRlbGF5ZWRfcmVwbHlfYmFzZV9jbGFz
cywgJywgJy5qb2luKGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHBhcmFtZXRlci50eXBlKSBmb3Ig
cGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycykpCisgICAgcmV0dXJuIGRlbGF5
ZWRfcmVwbHlfYmFzZV9jbGFzcworCiBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24o
bWVzc2FnZSk6CiAgICAgcmVzdWx0ID0gW10KICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzID0gWyhm
dW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUpLCB4Lm5hbWUpIGZvciB4IGluIG1lc3NhZ2Uu
cGFyYW1ldGVyc10KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
X3VuaXR0ZXN0LnB5IGIvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3Qu
cHkKaW5kZXggNjg4NGJhODdiNzRmZjFkNmQ4NDhiOWVhNTRkODMzMmQzODAxNjUzMS4uZjQyMDVl
ZGRkNWU2YTcwNTM3ZjQzOTA1MmU1OWU5MTQxZjcwNWRiYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0Mi9TY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKQEAgLTU0LDYgKzU0LDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgewogI2VuZGlmCiAgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIHVpbnQzMl90IHBvbGljeUFjdGlvbikK
ICAgICBDbG9zZSgpCisKKyAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwg
V1RGOjpTdHJpbmcgbWVzc2FnZSkgLT4gKCkKKyAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zKQorICAgIEdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKFdURjo6U3RyaW5nIHBsdWdpblBhdGgpIC0+IChDb3JlSVBDOjpDb25u
ZWN0aW9uOjpIYW5kbGUgY29ubmVjdGlvbkhhbmRsZSkgZGVsYXllZAogfQogIiIiCiAKQEAgLTky
LDYgKzk2LDQyIEBAIF9leHBlY3RlZF9yZXN1bHRzID0gewogICAgICAgICAgICAgJ2NvbmRpdGlv
bic6IE5vbmUsCiAgICAgICAgICAgICAnYmFzZV9jbGFzcyc6ICdDb3JlSVBDOjpBcmd1bWVudHMw
JywKICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnUnVuSmF2YVNj
cmlwdEFsZXJ0JywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAg
ICgndWludDY0X3QnLCAnZnJhbWVJRCcpLAorICAgICAgICAgICAgICAgICgnV1RGOjpTdHJpbmcn
LCAnbWVzc2FnZScpCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ3JlcGx5X3BhcmFtZXRl
cnMnOiAoKSwKKyAgICAgICAgICAgICdjb25kaXRpb24nOiBOb25lLAorICAgICAgICAgICAgJ2Jh
c2VfY2xhc3MnOiAnQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJp
bmcmPicsCisgICAgICAgICAgICAncmVwbHlfYmFzZV9jbGFzcyc6ICdDb3JlSVBDOjpBcmd1bWVu
dHMwJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnR2V0UGx1
Z2lucycsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAgICAoJ2Jv
b2wnLCAncmVmcmVzaCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJh
bWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
JywgJ3BsdWdpbnMnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29uZGl0aW9uJzog
Tm9uZSwKKyAgICAgICAgICAgICdiYXNlX2NsYXNzJzogJ0NvcmVJUEM6OkFyZ3VtZW50czE8Ym9v
bD4nLAorICAgICAgICAgICAgJ3JlcGx5X2Jhc2VfY2xhc3MnOiAnQ29yZUlQQzo6QXJndW1lbnRz
MTxWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mPicsCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICduYW1lJzogJ0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uJywKKyAgICAg
ICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnV1RGOjpTdHJpbmcnLCAn
cGx1Z2luUGF0aCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0
ZXJzJzogKAorICAgICAgICAgICAgICAgICgnQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJywg
J2Nvbm5lY3Rpb25IYW5kbGUnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29uZGl0
aW9uJzogTm9uZSwKKyAgICAgICAgICAgICdiYXNlX2NsYXNzJzogJ0NvcmVJUEM6OkFyZ3VtZW50
czE8Y29uc3QgV1RGOjpTdHJpbmcmPicsCisgICAgICAgICAgICAncmVwbHlfYmFzZV9jbGFzcyc6
ICdDb3JlSVBDOjpBcmd1bWVudHMxPENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+JywKKyAg
ICAgICAgICAgICdkZWxheWVkX3JlcGx5X2Jhc2VfY2xhc3MnOiAnQ29yZUlQQzo6QXJndW1lbnRz
MTxjb25zdCBDb3JlSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmPicsCisgICAgICAgIH0KICAgICAp
LAogfQogCkBAIC0xMDgsNiArMTQ4LDEwIEBAIGNsYXNzIFBhcnNpbmdUZXN0KE1lc3NhZ2VzVGVz
dCk6CiAgICAgICAgIGZvciBpbmRleCwgcGFyYW1ldGVyIGluIGVudW1lcmF0ZShtZXNzYWdlLnBh
cmFtZXRlcnMpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLnR5cGUs
IGV4cGVjdGVkX21lc3NhZ2VbJ3BhcmFtZXRlcnMnXVtpbmRleF1bMF0pCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhwYXJhbWV0ZXIubmFtZSwgZXhwZWN0ZWRfbWVzc2FnZVsncGFyYW1l
dGVycyddW2luZGV4XVsxXSkKKyAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzICE9
IE5vbmU6CisgICAgICAgICAgICBmb3IgaW5kZXgsIHBhcmFtZXRlciBpbiBlbnVtZXJhdGUobWVz
c2FnZS5yZXBseV9wYXJhbWV0ZXJzKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhwYXJhbWV0ZXIudHlwZSwgZXhwZWN0ZWRfbWVzc2FnZVsncmVwbHlfcGFyYW1ldGVycyddW2lu
ZGV4XVswXSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbWV0ZXIubmFt
ZSwgZXhwZWN0ZWRfbWVzc2FnZVsncmVwbHlfcGFyYW1ldGVycyddW2luZGV4XVsxXSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMobWVzc2FnZS5jb25kaXRpb24sIGV4cGVjdGVkX21lc3NhZ2Vb
J2NvbmRpdGlvbiddKQogCiAgICAgZGVmIHRlc3RfcmVjZWl2ZXIoc2VsZik6CkBAIC0xMjMsNiAr
MTY3LDEwIEBAIGNsYXNzIEhlYWRlclRlc3QoTWVzc2FnZXNUZXN0KToKICAgICAgICAgIiIiQmFz
ZSBjbGFzc2VzIGZvciBtZXNzYWdlIHN0cnVjdHMgc2hvdWxkIG1hdGNoIGV4cGVjdGF0aW9ucyIi
IgogICAgICAgICBmb3IgaW5kZXgsIG1lc3NhZ2UgaW4gZW51bWVyYXRlKHNlbGYucmVjZWl2ZXIu
bWVzc2FnZXMpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWVzc2FnZXMuYmFzZV9j
bGFzcyhtZXNzYWdlKSwgX2V4cGVjdGVkX3Jlc3VsdHNbJ21lc3NhZ2VzJ11baW5kZXhdWydiYXNl
X2NsYXNzJ10pCisgICAgICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9u
ZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtZXNzYWdlcy5yZXBseV9iYXNl
X2NsYXNzKG1lc3NhZ2UpLCBfZXhwZWN0ZWRfcmVzdWx0c1snbWVzc2FnZXMnXVtpbmRleF1bJ3Jl
cGx5X2Jhc2VfY2xhc3MnXSkKKyAgICAgICAgICAgICAgICBpZiBtZXNzYWdlLmRlbGF5ZWQ6Cisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1lc3NhZ2VzLmRlbGF5ZWRfcmVw
bHlfYmFzZV9jbGFzcyhtZXNzYWdlKSwgX2V4cGVjdGVkX3Jlc3VsdHNbJ21lc3NhZ2VzJ11baW5k
ZXhdWydkZWxheWVkX3JlcGx5X2Jhc2VfY2xhc3MnXSkKIAogY2xhc3MgUmVjZWl2ZXJJbXBsZW1l
bnRhdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToK
</data>
<flag name="review"
          id="58063"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>