<?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>51586</bug_id>
          
          <creation_ts>2010-12-24 01:46:34 -0800</creation_ts>
          <short_desc>CSSParser: m_implicitShorthand should probably be RAII</short_desc>
          <delta_ts>2011-05-25 02:37:39 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>levin</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>326514</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-12-24 01:46:34 -0800</bug_when>
    <thetext>m_implicitShorthand is switched to true then false manually across the code, which is highly error-prone. Most probably this switching should either go into ShorthandScope or a standalone RAII implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397945</commentid>
    <comment_count>1</comment_count>
      <attachid>92251</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-04 08:54:30 -0700</bug_when>
    <thetext>Created attachment 92251
[PATCH] Suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398023</commentid>
    <comment_count>2</comment_count>
      <attachid>92251</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-05-04 10:11:17 -0700</bug_when>
    <thetext>Comment on attachment 92251
[PATCH] Suggested fix

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

&gt; Source/WebCore/css/CSSParser.h:397
&gt; +        bool m_oldImplicitShorthand;

is m_oldImplicitShorthand used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398027</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-04 10:17:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 92251 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92251&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.h:397
&gt; &gt; +        bool m_oldImplicitShorthand;
&gt; 
&gt; is m_oldImplicitShorthand used?

Yikes, it was intended to be, but then I decided to retain the original behavior. Attaching a fixed patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398035</commentid>
    <comment_count>4</comment_count>
      <attachid>92272</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-04 10:28:18 -0700</bug_when>
    <thetext>Created attachment 92272
[PATCH] Removed unused field</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404287</commentid>
    <comment_count>5</comment_count>
      <attachid>92272</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-15 22:23:04 -0700</bug_when>
    <thetext>Comment on attachment 92272
[PATCH] Removed unused field

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

&gt; Source/WebCore/css/CSSParser.cpp:2411
&gt; +            ImplicitScope implicitScope(this, true);

Can we move this before the switch statement and remove duplication?

&gt; Source/WebCore/css/CSSParser.h:386
&gt; +        ImplicitScope(CSSParser* parser, bool isImplicit = true) : m_parser(parser)

Please make it explicit or it looks we don&apos;t need the default value for the second parameter.
Also, We don&apos;t need to put the header file. This can be local to CSSparser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404406</commentid>
    <comment_count>6</comment_count>
      <attachid>93633</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-16 04:05:23 -0700</bug_when>
    <thetext>Created attachment 93633
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404407</commentid>
    <comment_count>7</comment_count>
      <attachid>92272</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-16 04:06:14 -0700</bug_when>
    <thetext>Comment on attachment 92272
[PATCH] Removed unused field

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2411
&gt;&gt; +            ImplicitScope implicitScope(this, true);
&gt; 
&gt; Can we move this before the switch statement and remove duplication?

No, the rule-specified &quot;longhand&quot; properties in a 4-value shorthand (e.g. top right bottom left) are not implicit.

&gt;&gt; Source/WebCore/css/CSSParser.h:386
&gt;&gt; +        ImplicitScope(CSSParser* parser, bool isImplicit = true) : m_parser(parser)
&gt; 
&gt; Please make it explicit or it looks we don&apos;t need the default value for the second parameter.
&gt; Also, We don&apos;t need to put the header file. This can be local to CSSparser.cpp.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404902</commentid>
    <comment_count>8</comment_count>
      <attachid>93633</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-16 19:36:40 -0700</bug_when>
    <thetext>Comment on attachment 93633
[PATCH] Comments addressed

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

&gt; Source/WebCore/css/CSSParser.cpp:98
&gt; +    WTF_MAKE_FAST_ALLOCATED;

Why are you adding this here?

What about non-copyable?

&gt; Source/WebCore/css/CSSParser.cpp:100
&gt; +    ImplicitScope(WebCore::CSSParser* parser, bool isImplicit) : m_parser(parser)

Put initialization for m_parser on a new line.

Why pass in isImplicit when it is always true?

&gt; Source/WebCore/css/CSSParser.cpp:102
&gt; +       m_parser-&gt;m_implicitShorthand = isImplicit;

It looks like you have a 3 space indent instead of 4 spaces.

&gt; Source/WebCore/css/CSSParser.cpp:103
&gt; +    }

add blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404984</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-17 02:05:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 93633 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93633&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.cpp:98
&gt; &gt; +    WTF_MAKE_FAST_ALLOCATED;
&gt; 
&gt; Why are you adding this here?

This class is a replica of ShorthandScope which has this macro. Removed.

&gt; What about non-copyable?

Added. I&apos;m not sure about the guidelines for both of these macros (are they articulated anywhere?)

&gt; &gt; Source/WebCore/css/CSSParser.cpp:100
&gt; &gt; +    ImplicitScope(WebCore::CSSParser* parser, bool isImplicit) : m_parser(parser)
&gt; 
&gt; Put initialization for m_parser on a new line.

Done.

&gt; Why pass in isImplicit when it is always true?

I have a followup change that may win a little something with this in place.

&gt; &gt; Source/WebCore/css/CSSParser.cpp:102
&gt; &gt; +       m_parser-&gt;m_implicitShorthand = isImplicit;
&gt; 
&gt; It looks like you have a 3 space indent instead of 4 spaces.

Done.

&gt; &gt; Source/WebCore/css/CSSParser.cpp:103
&gt; &gt; +    }
&gt; 
&gt; add blank line here.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404985</commentid>
    <comment_count>10</comment_count>
      <attachid>93751</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-17 02:08:23 -0700</bug_when>
    <thetext>Created attachment 93751
[PATCH] levin&apos;s comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408753</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-24 03:14:25 -0700</bug_when>
    <thetext>@reviewers: ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408754</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-24 03:16:17 -0700</bug_when>
    <thetext>Reviewers: ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408832</commentid>
    <comment_count>13</comment_count>
      <attachid>93751</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-24 07:24:05 -0700</bug_when>
    <thetext>Comment on attachment 93751
[PATCH] levin&apos;s comments addressed

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

&gt; Source/WebCore/css/CSSParser.cpp:100
&gt; +    ImplicitScope(WebCore::CSSParser* parser, bool isImplicit)

bool isImplicit should be an enum (instead of a bool) because one can&apos;t tell at the calling site what it means.

For example, when one sees
 ImplicitScope implicitScope(this, true);
It isn&apos;t clear what &quot;true&quot; means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408834</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-24 07:27:05 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 93633 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93633&amp;action=review
&gt; &gt; What about non-copyable?
&gt; 
&gt; Added. I&apos;m not sure about the guidelines for both of these macros (are they articulated anywhere?)

No idea about WTF_MAKE_FAST_ALLOCATE so I never include it. I leave it up to the people who put it in but i&apos;m pretty sure it is meaningless in this case since it has to do with how the class is allocated (when using new) and this class is only used on the stack.

For non-copyable, always add it whenever you can. (Think of it like the equivalent in the Google style guide.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408933</commentid>
    <comment_count>15</comment_count>
      <attachid>94630</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-24 09:48:02 -0700</bug_when>
    <thetext>Created attachment 94630
[PATCH] Enum instead of bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408935</commentid>
    <comment_count>16</comment_count>
      <attachid>94630</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-24 09:51:50 -0700</bug_when>
    <thetext>Comment on attachment 94630
[PATCH] Enum instead of bool

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

&gt; Source/WebCore/css/CSSParser.cpp:100
&gt; +    enum PropertyType {

Making this enum a class member makes the call sites ugly with extra qualification needed. How about just making this a namespace-level enum instead?

&gt; Source/WebCore/css/CSSParser.cpp:101
&gt; +        PropertyExplicit = 0,

Do we really need the &quot;= 0&quot; here? Please omit it.

&gt; Source/WebCore/css/CSSParser.cpp:105
&gt; +    ImplicitScope(WebCore::CSSParser* parser, PropertyType propertyType)

I don’t think we need an argument at all. This class is already named ImplicitScope. I suggest removing the argument completely and just having this set to true.

&gt; Source/WebCore/css/CSSParser.cpp:108
&gt; +        m_parser-&gt;m_implicitShorthand = static_cast&lt;bool&gt;(propertyType);

I don’t think the static_cast here is good style. Is it required by some compiler? Actually, I would suggest writing this:

    m_parser-&gt;m_implicitShorthand = propertyType == PropertyImplicit;

I think that’s clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408938</commentid>
    <comment_count>17</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-24 09:57:25 -0700</bug_when>
    <thetext>Thanks for the review, Darin

(In reply to comment #16)
&gt; (From update of attachment 94630 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94630&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.cpp:100
&gt; &gt; +    enum PropertyType {
&gt; 
&gt; Making this enum a class member makes the call sites ugly with extra qualification needed. How about just making this a namespace-level enum instead?

OK

&gt; &gt; Source/WebCore/css/CSSParser.cpp:101
&gt; &gt; +        PropertyExplicit = 0,
&gt; 
&gt; Do we really need the &quot;= 0&quot; here? Please omit it.

This was necessary to clarify the static_cast validity below.

&gt; &gt; Source/WebCore/css/CSSParser.cpp:105
&gt; &gt; +    ImplicitScope(WebCore::CSSParser* parser, PropertyType propertyType)
&gt; 
&gt; I don’t think we need an argument at all. This class is already named ImplicitScope. I suggest removing the argument completely and just having this set to true.

As I mentioned in the #9 comment, I&apos;ve got a pending patch (https://bugs.webkit.org/attachment.cgi?id=92972) for bug 15598 that will make a good use of this argument (now it uses an ugly solution instead).

&gt; &gt; Source/WebCore/css/CSSParser.cpp:108
&gt; &gt; +        m_parser-&gt;m_implicitShorthand = static_cast&lt;bool&gt;(propertyType);
&gt; 
&gt; I don’t think the static_cast here is good style. Is it required by some compiler? Actually, I would suggest writing this:
&gt; 
&gt;     m_parser-&gt;m_implicitShorthand = propertyType == PropertyImplicit;
&gt; 
&gt; I think that’s clearer.

Makes sense. The sole reason I wrote it this way is that I seem to have seen a similar cast once in the WebKit code (but not sure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408956</commentid>
    <comment_count>18</comment_count>
      <attachid>94635</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-24 10:11:12 -0700</bug_when>
    <thetext>Created attachment 94635
[PATCH] darin@&apos;s comments addressed (parameter retained for reuse by a subsequent patch)

The class name &quot;ImplicitScope&quot; denotes the fact that it affects the state of the &quot;implicit&quot; flag used by CSSParser when constructing property instances. Once a property has been determined to be implicit or explicit, the corresponding value can be passed into the ImplicitScope constructor (this is handy for constructing the &quot;font&quot; property longhands).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409540</commentid>
    <comment_count>19</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-25 02:37:39 -0700</bug_when>
    <thetext>Committed r87281: &lt;http://trac.webkit.org/changeset/87281&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92251</attachid>
            <date>2011-05-04 08:54:30 -0700</date>
            <delta_ts>2011-05-04 10:28:18 -0700</delta_ts>
            <desc>[PATCH] Suggested fix</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>5282</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDM0NjQyMmQ0M2ZmOWJhMGQ2MDllYzdiMDJiYzk1ODMzMmEzNTU3NWQKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiOWEyZjEyLi44MjMy
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMDQgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlNFZhbHVl
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQm9yZGVyUmFkaXVzKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdFNjb3Bl
OjpJbXBsaWNpdFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0U2NvcGU6On5JbXBs
aWNpdFNjb3BlKToKKwogMjAxMS0wNS0wNCAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxOTcxMWQyLi4xMTQ2YzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtMjM3OSwxMiArMjM3OSwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VT
aG9ydGhhbmQoaW50IHByb3BJZCwgY29uc3QgaW50ICpwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVy
dAogICAgIH0KIAogICAgIC8vIEZpbGwgaW4gYW55IHJlbWFpbmluZyBwcm9wZXJ0aWVzIHdpdGgg
dGhlIGluaXRpYWwgdmFsdWUuCi0gICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAg
SW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIHRydWUpOwogICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbnVtUHJvcGVydGllczsgKytpKSB7CiAgICAgICAgIGlmICghZm5kW2ldKQogICAg
ICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1tpXSwgQ1NTSW5pdGlhbFZhbHVlOjpjcmVh
dGVJbXBsaWNpdCgpLCBpbXBvcnRhbnQpOwogICAgIH0KLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5k
ID0gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI0MDksMzEgKzI0MDgsMjggQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlcyhpbnQgcHJvcElkLCBjb25zdCBpbnQgKnByb3Bl
cnRpZXMsICBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzBdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNl
ZFByb3BlcnRpZXMtMV0tPnZhbHVlKCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5k
ID0gdHJ1ZTsKKyAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCB0
cnVlKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMV0sIHZhbHVlLCBpbXBv
cnRhbnQpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFsdWUsIGlt
cG9ydGFudCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwg
aW1wb3J0YW50KTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgMjogewogICAgICAgICAg
ICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFs
dWUocHJvcGVydGllc1sxXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9u
dW1QYXJzZWRQcm9wZXJ0aWVzLTJdLT52YWx1ZSgpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNo
b3J0aGFuZCA9IHRydWU7CisgICAgICAgICAgICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUo
dGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzJdLCB2YWx1
ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21f
bnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5
KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAgICAgICAgbV9pbXBsaWNp
dFNob3J0aGFuZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSAzOiB7CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwg
aW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8ICFw
YXJzZVZhbHVlKHByb3BlcnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0
aWVzW21fbnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKLSAgICAgICAgICAgIG1faW1w
bGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAgICAgICAgICAgSW1wbGljaXRTY29wZSBpbXBsaWNp
dFNjb3BlKHRoaXMsIHRydWUpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1sz
XSwgdmFsdWUsIGltcG9ydGFudCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0g
ZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIDQ6IHsK
QEAgLTQ5ODksMTIgKzQ5ODUsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQm9yZGVyUmFkaXVz
KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0gZWxzZQogICAgICAgICBjb21wbGV0
ZUJvcmRlclJhZGlpKHJhZGlpWzFdKTsKIAotICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVl
OworICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCB0cnVlKTsKICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3JlYXRlKHJhZGlpWzBdWzBdLnJlbGVhc2UoKSwgcmFk
aWlbMV1bMF0ucmVsZWFzZSgpKSksIGltcG9ydGFudCk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJv
cGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVW
YWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bMV0ucmVsZWFzZSgpLCByYWRpaVsxXVsxXS5yZWxl
YXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbVJpZ2h0UmFkaXVzLCBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBhaXI6
OmNyZWF0ZShyYWRpaVswXVsyXS5yZWxlYXNlKCksIHJhZGlpWzFdWzJdLnJlbGVhc2UoKSkpLCBp
bXBvcnRhbnQpOwogICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJh
ZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFk
aWlbMF1bM10ucmVsZWFzZSgpLCByYWRpaVsxXVszXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsK
LSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwNTI0MzAyLi5iOTUwNGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0zODAsNiArMzgwLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgQ1NTUGFyc2VyKiBtX3BhcnNlcjsKICAgICB9OwogCisgICAgY2xhc3MgSW1wbGljaXRTY29w
ZSB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAg
ICAgSW1wbGljaXRTY29wZShDU1NQYXJzZXIqIHBhcnNlciwgYm9vbCBpc0ltcGxpY2l0ID0gdHJ1
ZSkgOiBtX3BhcnNlcihwYXJzZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcGFyc2VyLT5t
X2ltcGxpY2l0U2hvcnRoYW5kID0gaXNJbXBsaWNpdDsKKyAgICAgICAgfQorICAgICAgICB+SW1w
bGljaXRTY29wZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcGFyc2VyLT5tX2ltcGxpY2l0
U2hvcnRoYW5kID0gZmFsc2U7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIENT
U1BhcnNlciogbV9wYXJzZXI7CisgICAgICAgIGJvb2wgbV9vbGRJbXBsaWNpdFNob3J0aGFuZDsK
KyAgICB9OworCiAgICAgU3RyaW5nIHF1b3RlQ1NTU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAg
IFN0cmluZyBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmlu
ZyBxdW90ZUNTU1VSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92272</attachid>
            <date>2011-05-04 10:28:18 -0700</date>
            <delta_ts>2011-05-16 04:06:14 -0700</delta_ts>
            <desc>[PATCH] Removed unused field</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>5244</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDI5ZTFlNDE4ZjI5N2I0ODRmNzg1NWYyMzhmN2NmNDAyNjE1OGNjYWEKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiOWEyZjEyLi44MjMy
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMDQgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlNFZhbHVl
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQm9yZGVyUmFkaXVzKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdFNjb3Bl
OjpJbXBsaWNpdFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0U2NvcGU6On5JbXBs
aWNpdFNjb3BlKToKKwogMjAxMS0wNS0wNCAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxOTcxMWQyLi4xMTQ2YzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtMjM3OSwxMiArMjM3OSwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VT
aG9ydGhhbmQoaW50IHByb3BJZCwgY29uc3QgaW50ICpwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVy
dAogICAgIH0KIAogICAgIC8vIEZpbGwgaW4gYW55IHJlbWFpbmluZyBwcm9wZXJ0aWVzIHdpdGgg
dGhlIGluaXRpYWwgdmFsdWUuCi0gICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAg
SW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIHRydWUpOwogICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbnVtUHJvcGVydGllczsgKytpKSB7CiAgICAgICAgIGlmICghZm5kW2ldKQogICAg
ICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1tpXSwgQ1NTSW5pdGlhbFZhbHVlOjpjcmVh
dGVJbXBsaWNpdCgpLCBpbXBvcnRhbnQpOwogICAgIH0KLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5k
ID0gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI0MDksMzEgKzI0MDgsMjggQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlcyhpbnQgcHJvcElkLCBjb25zdCBpbnQgKnByb3Bl
cnRpZXMsICBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzBdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNl
ZFByb3BlcnRpZXMtMV0tPnZhbHVlKCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5k
ID0gdHJ1ZTsKKyAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCB0
cnVlKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMV0sIHZhbHVlLCBpbXBv
cnRhbnQpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFsdWUsIGlt
cG9ydGFudCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwg
aW1wb3J0YW50KTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgMjogewogICAgICAgICAg
ICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFs
dWUocHJvcGVydGllc1sxXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9u
dW1QYXJzZWRQcm9wZXJ0aWVzLTJdLT52YWx1ZSgpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNo
b3J0aGFuZCA9IHRydWU7CisgICAgICAgICAgICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUo
dGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzJdLCB2YWx1
ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21f
bnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5
KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAgICAgICAgbV9pbXBsaWNp
dFNob3J0aGFuZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSAzOiB7CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwg
aW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8ICFw
YXJzZVZhbHVlKHByb3BlcnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0
aWVzW21fbnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKLSAgICAgICAgICAgIG1faW1w
bGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAgICAgICAgICAgSW1wbGljaXRTY29wZSBpbXBsaWNp
dFNjb3BlKHRoaXMsIHRydWUpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1sz
XSwgdmFsdWUsIGltcG9ydGFudCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0g
ZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIDQ6IHsK
QEAgLTQ5ODksMTIgKzQ5ODUsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQm9yZGVyUmFkaXVz
KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0gZWxzZQogICAgICAgICBjb21wbGV0
ZUJvcmRlclJhZGlpKHJhZGlpWzFdKTsKIAotICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVl
OworICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCB0cnVlKTsKICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3JlYXRlKHJhZGlpWzBdWzBdLnJlbGVhc2UoKSwgcmFk
aWlbMV1bMF0ucmVsZWFzZSgpKSksIGltcG9ydGFudCk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJv
cGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVW
YWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bMV0ucmVsZWFzZSgpLCByYWRpaVsxXVsxXS5yZWxl
YXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbVJpZ2h0UmFkaXVzLCBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBhaXI6
OmNyZWF0ZShyYWRpaVswXVsyXS5yZWxlYXNlKCksIHJhZGlpWzFdWzJdLnJlbGVhc2UoKSkpLCBp
bXBvcnRhbnQpOwogICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJh
ZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFk
aWlbMF1bM10ucmVsZWFzZSgpLCByYWRpaVsxXVszXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsK
LSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwNTI0MzAyLi4wNjA4Mzg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0zODAsNiArMzgwLDIyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgQ1NTUGFyc2VyKiBtX3BhcnNlcjsKICAgICB9OwogCisgICAgY2xhc3MgSW1wbGljaXRTY29w
ZSB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAg
ICAgSW1wbGljaXRTY29wZShDU1NQYXJzZXIqIHBhcnNlciwgYm9vbCBpc0ltcGxpY2l0ID0gdHJ1
ZSkgOiBtX3BhcnNlcihwYXJzZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcGFyc2VyLT5t
X2ltcGxpY2l0U2hvcnRoYW5kID0gaXNJbXBsaWNpdDsKKyAgICAgICAgfQorICAgICAgICB+SW1w
bGljaXRTY29wZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcGFyc2VyLT5tX2ltcGxpY2l0
U2hvcnRoYW5kID0gZmFsc2U7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIENT
U1BhcnNlciogbV9wYXJzZXI7CisgICAgfTsKKwogICAgIFN0cmluZyBxdW90ZUNTU1N0cmluZyhj
b25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgcXVvdGVDU1NTdHJpbmdJZk5lZWRlZChjb25zdCBT
dHJpbmcmKTsKICAgICBTdHJpbmcgcXVvdGVDU1NVUkxJZk5lZWRlZChjb25zdCBTdHJpbmcmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93633</attachid>
            <date>2011-05-16 04:05:23 -0700</date>
            <delta_ts>2011-05-17 02:08:23 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>4970</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDNhYTAzOGZiOTQ5ZmVhZWM3ZGExMzdmNDEyMWY4NjllMjIwODU1NzQKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYTQwNWNhLi4yMTA0
MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTYgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoSW1wbGljaXRTY29wZTo6SW1wbGlj
aXRTY29wZSk6CisgICAgICAgIChJbXBsaWNpdFNjb3BlOjp+SW1wbGljaXRTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VCb3JkZXJSYWRpdXMpOgorCiAyMDExLTA1LTA1ICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDE5NzM2YTcuLjc0NTI5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC05Miw2ICs5MiwyNiBAQCBleHRlcm4gaW50IGNzc3l5
cGFyc2Uodm9pZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogCituYW1lc3BhY2UgeworCitjbGFzcyBJbXBsaWNpdFNjb3BlIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBJbXBsaWNpdFNjb3BlKFdlYkNvcmU6
OkNTU1BhcnNlciogcGFyc2VyLCBib29sIGlzSW1wbGljaXQpIDogbV9wYXJzZXIocGFyc2VyKQor
ICAgIHsKKyAgICAgICBtX3BhcnNlci0+bV9pbXBsaWNpdFNob3J0aGFuZCA9IGlzSW1wbGljaXQ7
CisgICAgfQorICAgIH5JbXBsaWNpdFNjb3BlKCkKKyAgICB7CisgICAgICAgbV9wYXJzZXItPm1f
aW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViQ29y
ZTo6Q1NTUGFyc2VyKiBtX3BhcnNlcjsKK307CisKK30gLy8gbmFtZXNwYWNlCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFMSURfTlVNX1BBUlNFRF9Q
Uk9QRVJUSUVTID0gVUlOVF9NQVg7CkBAIC0yMzc5LDEyICsyMzk5LDExIEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcElkLCBjb25zdCBpbnQgKnByb3BlcnRpZXMsIGlu
dCBudW1Qcm9wZXJ0CiAgICAgfQogCiAgICAgLy8gRmlsbCBpbiBhbnkgcmVtYWluaW5nIHByb3Bl
cnRpZXMgd2l0aCB0aGUgaW5pdGlhbCB2YWx1ZS4KLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0g
dHJ1ZTsKKyAgICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUodGhpcywgdHJ1ZSk7CiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyArK2kpIHsKICAgICAgICAgaWYgKCFm
bmRbaV0pCiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzW2ldLCBDU1NJbml0aWFs
VmFsdWU6OmNyZWF0ZUltcGxpY2l0KCksIGltcG9ydGFudCk7CiAgICAgfQotICAgIG1faW1wbGlj
aXRTaG9ydGhhbmQgPSBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjQwOSwzMSAr
MjQyOCwyOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKGludCBwcm9wSWQsIGNvbnN0
IGludCAqcHJvcGVydGllcywgIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgaWYgKCFwYXJz
ZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVz
W21fbnVtUGFyc2VkUHJvcGVydGllcy0xXS0+dmFsdWUoKTsKLSAgICAgICAgICAgIG1faW1wbGlj
aXRTaG9ydGhhbmQgPSB0cnVlOworICAgICAgICAgICAgSW1wbGljaXRTY29wZSBpbXBsaWNpdFNj
b3BlKHRoaXMsIHRydWUpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1sxXSwg
dmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzJd
LCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNb
M10sIHZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9
IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSAyOiB7
CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8
fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1fcGFyc2VkUHJv
cGVydGllc1ttX251bVBhcnNlZFByb3BlcnRpZXMtMl0tPnZhbHVlKCk7Ci0gICAgICAgICAgICBt
X2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1w
bGljaXRTY29wZSh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRp
ZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgdmFsdWUgPSBtX3BhcnNlZFBy
b3BlcnRpZXNbbV9udW1QYXJzZWRQcm9wZXJ0aWVzLTJdLT52YWx1ZSgpOwogICAgICAgICAgICAg
YWRkUHJvcGVydHkocHJvcGVydGllc1szXSwgdmFsdWUsIGltcG9ydGFudCk7Ci0gICAgICAgICAg
ICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIDM6IHsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9y
dGFudCkgfHwgIXBhcnNlVmFsdWUocHJvcGVydGllc1syXSwgaW1wb3J0YW50KSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBtX3Bh
cnNlZFByb3BlcnRpZXNbbV9udW1QYXJzZWRQcm9wZXJ0aWVzLTJdLT52YWx1ZSgpOwotICAgICAg
ICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAgICAgICAgICBJbXBsaWNpdFNj
b3BlIGltcGxpY2l0U2NvcGUodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShw
cm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1wb3J0YW50KTsKLSAgICAgICAgICAgIG1faW1wbGljaXRT
aG9ydGhhbmQgPSBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgNDogewpAQCAtNDk4OSwxMiArNTAwNSwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VC
b3JkZXJSYWRpdXMoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfSBlbHNlCiAgICAg
ICAgIGNvbXBsZXRlQm9yZGVyUmFkaWkocmFkaWlbMV0pOwogCi0gICAgbV9pbXBsaWNpdFNob3J0
aGFuZCA9IHRydWU7CisgICAgSW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIHRydWUp
OwogICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wTGVmdFJhZGl1cywgcHJpbWl0
aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bMF0ucmVs
ZWFzZSgpLCByYWRpaVsxXVswXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzLCBwcmltaXRpdmVWYWx1ZUNhY2hl
KCktPmNyZWF0ZVZhbHVlKFBhaXI6OmNyZWF0ZShyYWRpaVswXVsxXS5yZWxlYXNlKCksIHJhZGlp
WzFdWzFdLnJlbGVhc2UoKSkpLCBpbXBvcnRhbnQpOwogICAgIGFkZFByb3BlcnR5KENTU1Byb3Bl
cnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRl
VmFsdWUoUGFpcjo6Y3JlYXRlKHJhZGlpWzBdWzJdLnJlbGVhc2UoKSwgcmFkaWlbMV1bMl0ucmVs
ZWFzZSgpKSksIGltcG9ydGFudCk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJC
b3R0b21MZWZ0UmFkaXVzLCBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBhaXI6
OmNyZWF0ZShyYWRpaVswXVszXS5yZWxlYXNlKCksIHJhZGlpWzFdWzNdLnJlbGVhc2UoKSkpLCBp
bXBvcnRhbnQpOwotICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAo=
</data>
<flag name="review"
          id="86834"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93751</attachid>
            <date>2011-05-17 02:08:23 -0700</date>
            <delta_ts>2011-05-24 09:48:02 -0700</delta_ts>
            <desc>[PATCH] levin&apos;s comments addressed</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>4996</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDE5YjFkNTM0ZjQ3NjEyZGYxZjBjYmY1NjJkNTk5MjE4YTU4MTk3MTUKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDc4YjU5Li42MTQ3
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTYgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoSW1wbGljaXRTY29wZTo6SW1wbGlj
aXRTY29wZSk6CisgICAgICAgIChJbXBsaWNpdFNjb3BlOjp+SW1wbGljaXRTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VCb3JkZXJSYWRpdXMpOgorCiAyMDExLTA1LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFdpbmRvd3MgYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2NmE5NThiLi4wYTRjODQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtOTIsNiArOTIsMjggQEAgZXh0ZXJuIGludCBjc3N5
eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNw
YWNlIFdURjsKIAorbmFtZXNwYWNlIHsKKworY2xhc3MgSW1wbGljaXRTY29wZSB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1wbGljaXRTY29wZSk7CitwdWJsaWM6CisgICAgSW1wbGljaXRT
Y29wZShXZWJDb3JlOjpDU1NQYXJzZXIqIHBhcnNlciwgYm9vbCBpc0ltcGxpY2l0KQorICAgICAg
ICA6IG1fcGFyc2VyKHBhcnNlcikKKyAgICB7CisgICAgICAgIG1fcGFyc2VyLT5tX2ltcGxpY2l0
U2hvcnRoYW5kID0gaXNJbXBsaWNpdDsKKyAgICB9CisKKyAgICB+SW1wbGljaXRTY29wZSgpCisg
ICAgeworICAgICAgICBtX3BhcnNlci0+bV9pbXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDU1NQYXJzZXIqIG1fcGFyc2VyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKQEAgLTIzNzks
MTIgKzI0MDEsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKGludCBwcm9wSWQs
IGNvbnN0IGludCAqcHJvcGVydGllcywgaW50IG51bVByb3BlcnQKICAgICB9CiAKICAgICAvLyBG
aWxsIGluIGFueSByZW1haW5pbmcgcHJvcGVydGllcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlLgot
ICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAgIEltcGxpY2l0U2NvcGUgaW1wbGlj
aXRTY29wZSh0aGlzLCB0cnVlKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVByb3BlcnRp
ZXM7ICsraSkgewogICAgICAgICBpZiAoIWZuZFtpXSkKICAgICAgICAgICAgIGFkZFByb3BlcnR5
KHByb3BlcnRpZXNbaV0sIENTU0luaXRpYWxWYWx1ZTo6Y3JlYXRlSW1wbGljaXQoKSwgaW1wb3J0
YW50KTsKICAgICB9Ci0gICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0yNDA5LDMxICsyNDMwLDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZTRWYWx1ZXMoaW50IHByb3BJZCwgY29uc3QgaW50ICpwcm9wZXJ0aWVzLCAgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSAq
dmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9udW1QYXJzZWRQcm9wZXJ0aWVzLTFdLT52YWx1
ZSgpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAgICAgICAg
ICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICBh
ZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzFdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAg
IGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAg
ICAgYWRkUHJvcGVydHkocHJvcGVydGllc1szXSwgdmFsdWUsIGltcG9ydGFudCk7Ci0gICAgICAg
ICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIDI6IHsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShw
cm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGlt
cG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NT
VmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fbnVtUGFyc2VkUHJvcGVydGllcy0y
XS0+dmFsdWUoKTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAg
ICAgICAgICAgSW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIHRydWUpOwogICAgICAg
ICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAg
ICAgICAgICB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNlZFByb3BlcnRpZXMt
Ml0tPnZhbHVlKCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1
ZSwgaW1wb3J0YW50KTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgMzogewogICAgICAg
ICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNl
VmFsdWUocHJvcGVydGllc1sxXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVz
WzJdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNlZFByb3Bl
cnRpZXMtMl0tPnZhbHVlKCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1
ZTsKKyAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCB0cnVlKTsK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQp
OwotICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSA0OiB7CkBAIC00OTg5LDEyICs1MDA3LDEx
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJvcmRlclJhZGl1cyhpbnQgcHJvcElkLCBib29sIGlt
cG9ydGFudCkKICAgICB9IGVsc2UKICAgICAgICAgY29tcGxldGVCb3JkZXJSYWRpaShyYWRpaVsx
XSk7CiAKLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsKKyAgICBJbXBsaWNpdFNjb3Bl
IGltcGxpY2l0U2NvcGUodGhpcywgdHJ1ZSk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlC
b3JkZXJUb3BMZWZ0UmFkaXVzLCBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBh
aXI6OmNyZWF0ZShyYWRpaVswXVswXS5yZWxlYXNlKCksIHJhZGlpWzFdWzBdLnJlbGVhc2UoKSkp
LCBpbXBvcnRhbnQpOwogICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wUmlnaHRS
YWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3JlYXRlKHJh
ZGlpWzBdWzFdLnJlbGVhc2UoKSwgcmFkaWlbMV1bMV0ucmVsZWFzZSgpKSksIGltcG9ydGFudCk7
CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgcHJp
bWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bMl0u
cmVsZWFzZSgpLCByYWRpaVsxXVsyXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXMsIHByaW1pdGl2ZVZhbHVl
Q2FjaGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3JlYXRlKHJhZGlpWzBdWzNdLnJlbGVhc2UoKSwg
cmFkaWlbMV1bM10ucmVsZWFzZSgpKSksIGltcG9ydGFudCk7Ci0gICAgbV9pbXBsaWNpdFNob3J0
aGFuZCA9IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQogCg==
</data>
<flag name="review"
          id="86970"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94630</attachid>
            <date>2011-05-24 09:48:02 -0700</date>
            <delta_ts>2011-05-24 10:11:12 -0700</delta_ts>
            <desc>[PATCH] Enum instead of bool</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>5254</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGY0YzFhNTcwMzk2MTM2MTVmYWFjYzI1M2QyZGQ0MGU1NDcwYzY1MDYKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDc4YjU5Li42MTQ3
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTYgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoSW1wbGljaXRTY29wZTo6SW1wbGlj
aXRTY29wZSk6CisgICAgICAgIChJbXBsaWNpdFNjb3BlOjp+SW1wbGljaXRTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VCb3JkZXJSYWRpdXMpOgorCiAyMDExLTA1LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFdpbmRvd3MgYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2NmE5NThiLi41ZmVjYTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtOTIsNiArOTIsMzMgQEAgZXh0ZXJuIGludCBjc3N5
eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNw
YWNlIFdURjsKIAorbmFtZXNwYWNlIHsKKworY2xhc3MgSW1wbGljaXRTY29wZSB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1wbGljaXRTY29wZSk7CitwdWJsaWM6CisgICAgZW51bSBQcm9w
ZXJ0eVR5cGUgeworICAgICAgICBQcm9wZXJ0eUV4cGxpY2l0ID0gMCwKKyAgICAgICAgUHJvcGVy
dHlJbXBsaWNpdAorICAgIH07CisKKyAgICBJbXBsaWNpdFNjb3BlKFdlYkNvcmU6OkNTU1BhcnNl
ciogcGFyc2VyLCBQcm9wZXJ0eVR5cGUgcHJvcGVydHlUeXBlKQorICAgICAgICA6IG1fcGFyc2Vy
KHBhcnNlcikKKyAgICB7CisgICAgICAgIG1fcGFyc2VyLT5tX2ltcGxpY2l0U2hvcnRoYW5kID0g
c3RhdGljX2Nhc3Q8Ym9vbD4ocHJvcGVydHlUeXBlKTsKKyAgICB9CisKKyAgICB+SW1wbGljaXRT
Y29wZSgpCisgICAgeworICAgICAgICBtX3BhcnNlci0+bV9pbXBsaWNpdFNob3J0aGFuZCA9IGZh
bHNlOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDU1NQYXJzZXIqIG1fcGFyc2Vy
OworfTsKKworfSAvLyBuYW1lc3BhY2UKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsK
QEAgLTIzNzksMTIgKzI0MDYsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKGlu
dCBwcm9wSWQsIGNvbnN0IGludCAqcHJvcGVydGllcywgaW50IG51bVByb3BlcnQKICAgICB9CiAK
ICAgICAvLyBGaWxsIGluIGFueSByZW1haW5pbmcgcHJvcGVydGllcyB3aXRoIHRoZSBpbml0aWFs
IHZhbHVlLgotICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAgIEltcGxpY2l0U2Nv
cGUgaW1wbGljaXRTY29wZSh0aGlzLCBJbXBsaWNpdFNjb3BlOjpQcm9wZXJ0eUltcGxpY2l0KTsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7ICsraSkgewogICAgICAgICBp
ZiAoIWZuZFtpXSkKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbaV0sIENTU0lu
aXRpYWxWYWx1ZTo6Y3JlYXRlSW1wbGljaXQoKSwgaW1wb3J0YW50KTsKICAgICB9Ci0gICAgbV9p
bXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNDA5
LDMxICsyNDM1LDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMoaW50IHByb3BJZCwg
Y29uc3QgaW50ICpwcm9wZXJ0aWVzLCAgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICBpZiAo
IXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBtX3BhcnNlZFByb3Bl
cnRpZXNbbV9udW1QYXJzZWRQcm9wZXJ0aWVzLTFdLT52YWx1ZSgpOwotICAgICAgICAgICAgbV9p
bXBsaWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAgICAgICAgICBJbXBsaWNpdFNjb3BlIGltcGxp
Y2l0U2NvcGUodGhpcywgSW1wbGljaXRTY29wZTo6UHJvcGVydHlJbXBsaWNpdCk7CiAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzFdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAg
ICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAg
ICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1szXSwgdmFsdWUsIGltcG9ydGFudCk7Ci0g
ICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIDI6IHsKICAgICAgICAgICAgIGlmICghcGFyc2VW
YWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNb
MV0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fbnVtUGFyc2VkUHJvcGVy
dGllcy0yXS0+dmFsdWUoKTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVl
OworICAgICAgICAgICAgSW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRoaXMsIEltcGxpY2l0
U2NvcGU6OlByb3BlcnR5SW1wbGljaXQpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVy
dGllc1syXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICB2YWx1ZSA9IG1fcGFyc2Vk
UHJvcGVydGllc1ttX251bVBhcnNlZFByb3BlcnRpZXMtMl0tPnZhbHVlKCk7CiAgICAgICAgICAg
ICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1wb3J0YW50KTsKLSAgICAgICAg
ICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgMzogewogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHBy
b3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJvcGVydGllc1sxXSwgaW1w
b3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzJdLCBpbXBvcnRhbnQpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1f
cGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNlZFByb3BlcnRpZXMtMl0tPnZhbHVlKCk7Ci0gICAg
ICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIEltcGxpY2l0
U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCBJbXBsaWNpdFNjb3BlOjpQcm9wZXJ0eUltcGxpY2l0
KTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRh
bnQpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSA0OiB7CkBAIC00OTg5LDEyICs1MDEy
LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJvcmRlclJhZGl1cyhpbnQgcHJvcElkLCBib29s
IGltcG9ydGFudCkKICAgICB9IGVsc2UKICAgICAgICAgY29tcGxldGVCb3JkZXJSYWRpaShyYWRp
aVsxXSk7CiAKLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsKKyAgICBJbXBsaWNpdFNj
b3BlIGltcGxpY2l0U2NvcGUodGhpcywgSW1wbGljaXRTY29wZTo6UHJvcGVydHlJbXBsaWNpdCk7
CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFkaXVzLCBwcmltaXRp
dmVWYWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBhaXI6OmNyZWF0ZShyYWRpaVswXVswXS5yZWxl
YXNlKCksIHJhZGlpWzFdWzBdLnJlbGVhc2UoKSkpLCBpbXBvcnRhbnQpOwogICAgIGFkZFByb3Bl
cnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2FjaGUo
KS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3JlYXRlKHJhZGlpWzBdWzFdLnJlbGVhc2UoKSwgcmFkaWlb
MV1bMV0ucmVsZWFzZSgpKSksIGltcG9ydGFudCk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVW
YWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bMl0ucmVsZWFzZSgpLCByYWRpaVsxXVsyXS5yZWxl
YXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbUxlZnRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6
Y3JlYXRlKHJhZGlpWzBdWzNdLnJlbGVhc2UoKSwgcmFkaWlbMV1bM10ucmVsZWFzZSgpKSksIGlt
cG9ydGFudCk7Ci0gICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogICAgIHJldHVybiB0
cnVlOwogfQogCg==
</data>
<flag name="review"
          id="87958"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94635</attachid>
            <date>2011-05-24 10:11:12 -0700</date>
            <delta_ts>2011-05-24 10:59:28 -0700</delta_ts>
            <desc>[PATCH] darin@&apos;s comments addressed (parameter retained for reuse by a subsequent patch)</desc>
            <filename>implicitraii.patch</filename>
            <type>text/plain</type>
            <size>5160</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDEzNWFlOWUzOTU4ZDVlMGY4NWNkZTc0MzJkZmQ2YTgxMmU2YjllZWYKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTWF5IDQg
MTg6MDk6MjggMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDc4YjU5Li42MTQ3
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTYgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQYXJzZXI6IG1faW1wbGljaXRTaG9ydGhhbmQgc2hv
dWxkIHByb2JhYmx5IGJlIFJBSUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNTg2CisKKyAgICAgICAgSXQgd2FzIGltcG9zc2libGUgdG8gZW50aXJl
bHkgZWxpbWluYXRlIHRoZSBtX2ltcGxpY2l0U2hvcnRoYW5kIG1hbnVhbCBjaGFuZ2VzCisgICAg
ICAgIGR1ZSB0byB0aGUgcGFyc2VGaWxsKigpIG1ldGhvZCBzdGF0ZWZ1bCBjYWxsIGNoYWlucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoSW1wbGljaXRTY29wZTo6SW1wbGlj
aXRTY29wZSk6CisgICAgICAgIChJbXBsaWNpdFNjb3BlOjp+SW1wbGljaXRTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VCb3JkZXJSYWRpdXMpOgorCiAyMDExLTA1LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFdpbmRvd3MgYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2NmE5NThiLi5mNDAyOGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtOTIsNiArOTIsMzMgQEAgZXh0ZXJuIGludCBjc3N5
eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNw
YWNlIFdURjsKIAorbmFtZXNwYWNlIHsKKworZW51bSBQcm9wZXJ0eVR5cGUgeworICAgIFByb3Bl
cnR5RXhwbGljaXQsCisgICAgUHJvcGVydHlJbXBsaWNpdAorfTsKKworY2xhc3MgSW1wbGljaXRT
Y29wZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1wbGljaXRTY29wZSk7CitwdWJsaWM6
CisgICAgSW1wbGljaXRTY29wZShXZWJDb3JlOjpDU1NQYXJzZXIqIHBhcnNlciwgUHJvcGVydHlU
eXBlIHByb3BlcnR5VHlwZSkKKyAgICAgICAgOiBtX3BhcnNlcihwYXJzZXIpCisgICAgeworICAg
ICAgICBtX3BhcnNlci0+bV9pbXBsaWNpdFNob3J0aGFuZCA9IHByb3BlcnR5VHlwZSA9PSBQcm9w
ZXJ0eUltcGxpY2l0OworICAgIH0KKworICAgIH5JbXBsaWNpdFNjb3BlKCkKKyAgICB7CisgICAg
ICAgIG1fcGFyc2VyLT5tX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CisgICAgfQorCitwcml2
YXRlOgorICAgIFdlYkNvcmU6OkNTU1BhcnNlciogbV9wYXJzZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJTlZB
TElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJTlRfTUFYOwpAQCAtMjM3OSwxMiArMjQwNiwx
MSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTaG9ydGhhbmQoaW50IHByb3BJZCwgY29uc3QgaW50
ICpwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydAogICAgIH0KIAogICAgIC8vIEZpbGwgaW4gYW55
IHJlbWFpbmluZyBwcm9wZXJ0aWVzIHdpdGggdGhlIGluaXRpYWwgdmFsdWUuCi0gICAgbV9pbXBs
aWNpdFNob3J0aGFuZCA9IHRydWU7CisgICAgSW1wbGljaXRTY29wZSBpbXBsaWNpdFNjb3BlKHRo
aXMsIFByb3BlcnR5SW1wbGljaXQpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUHJvcGVy
dGllczsgKytpKSB7CiAgICAgICAgIGlmICghZm5kW2ldKQogICAgICAgICAgICAgYWRkUHJvcGVy
dHkocHJvcGVydGllc1tpXSwgQ1NTSW5pdGlhbFZhbHVlOjpjcmVhdGVJbXBsaWNpdCgpLCBpbXBv
cnRhbnQpOwogICAgIH0KLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTI0MDksMzEgKzI0MzUsMjggQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlNFZhbHVlcyhpbnQgcHJvcElkLCBjb25zdCBpbnQgKnByb3BlcnRpZXMsICBib29sIGltcG9y
dGFudCkKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRh
bnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVl
ICp2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX251bVBhcnNlZFByb3BlcnRpZXMtMV0tPnZh
bHVlKCk7Ci0gICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsKKyAgICAgICAg
ICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCBQcm9wZXJ0eUltcGxpY2l0KTsK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMV0sIHZhbHVlLCBpbXBvcnRhbnQp
OwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFsdWUsIGltcG9ydGFu
dCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1wb3J0
YW50KTsKLSAgICAgICAgICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgMjogewogICAgICAgICAgICAgaWYg
KCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJv
cGVydGllc1sxXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9udW1QYXJz
ZWRQcm9wZXJ0aWVzLTJdLT52YWx1ZSgpOwotICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0aGFu
ZCA9IHRydWU7CisgICAgICAgICAgICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUodGhpcywg
UHJvcGVydHlJbXBsaWNpdCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzJd
LCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0
aWVzW21fbnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAgICAgICAgbV9p
bXBsaWNpdFNob3J0aGFuZCA9IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSAzOiB7CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGll
c1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQp
IHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQ
cm9wZXJ0aWVzW21fbnVtUGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKLSAgICAgICAgICAg
IG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVlOworICAgICAgICAgICAgSW1wbGljaXRTY29wZSBp
bXBsaWNpdFNjb3BlKHRoaXMsIFByb3BlcnR5SW1wbGljaXQpOwogICAgICAgICAgICAgYWRkUHJv
cGVydHkocHJvcGVydGllc1szXSwgdmFsdWUsIGltcG9ydGFudCk7Ci0gICAgICAgICAgICBtX2lt
cGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIDQ6IHsKQEAgLTQ5ODksMTIgKzUwMTIsMTEgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQm9yZGVyUmFkaXVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0gZWxz
ZQogICAgICAgICBjb21wbGV0ZUJvcmRlclJhZGlpKHJhZGlpWzFdKTsKIAotICAgIG1faW1wbGlj
aXRTaG9ydGhhbmQgPSB0cnVlOworICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlz
LCBQcm9wZXJ0eUltcGxpY2l0KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRv
cExlZnRSYWRpdXMsIHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3JlYXRlVmFsdWUoUGFpcjo6Y3Jl
YXRlKHJhZGlpWzBdWzBdLnJlbGVhc2UoKSwgcmFkaWlbMV1bMF0ucmVsZWFzZSgpKSksIGltcG9y
dGFudCk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cywg
cHJpbWl0aXZlVmFsdWVDYWNoZSgpLT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1b
MV0ucmVsZWFzZSgpLCByYWRpaVsxXVsxXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsKICAgICBh
ZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBwcmltaXRpdmVW
YWx1ZUNhY2hlKCktPmNyZWF0ZVZhbHVlKFBhaXI6OmNyZWF0ZShyYWRpaVswXVsyXS5yZWxlYXNl
KCksIHJhZGlpWzFdWzJdLnJlbGVhc2UoKSkpLCBpbXBvcnRhbnQpOwogICAgIGFkZFByb3BlcnR5
KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJhZGl1cywgcHJpbWl0aXZlVmFsdWVDYWNoZSgp
LT5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUocmFkaWlbMF1bM10ucmVsZWFzZSgpLCByYWRpaVsx
XVszXS5yZWxlYXNlKCkpKSwgaW1wb3J0YW50KTsKLSAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0g
ZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>
<flag name="review"
          id="87965"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>