<?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>109725</bug_id>
          
          <creation_ts>2013-02-13 11:53:41 -0800</creation_ts>
          <short_desc>AX: Support aria-posinset/setsize</short_desc>
          <delta_ts>2013-03-05 17:50:07 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832136</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 11:53:41 -0800</bug_when>
    <thetext>WebKit needs to support

aria-posinset and
aria-setsize

http://www.w3.org/TR/wai-aria/states_and_properties#aria-posinset
http://www.w3.org/TR/wai-aria/states_and_properties#aria-setsize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832148</commentid>
    <comment_count>1</comment_count>
      <attachid>188138</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 12:00:25 -0800</bug_when>
    <thetext>Created attachment 188138
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832149</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 12:01:24 -0800</bug_when>
    <thetext>This is pretty straightforward. Just expose these ARIA attributes so that a screen reader can output something expected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834225</commentid>
    <comment_count>3</comment_count>
      <attachid>188138</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-15 11:50:09 -0800</bug_when>
    <thetext>Comment on attachment 188138
patch

On Windows and GTK, I believe that the position in set and set size are supposed to be exposed for any list item, not just those with an ARIA override. So each item in a simple &lt;ul&gt;, for example, would have a default position in set.

Would it confuse VoiceOver if these were exposed on each list item when ARIA is not used?

If not, my preference would be to remove the ARIA from the method names, and provide default implementations for list items and listbox options.

View in context: https://bugs.webkit.org/attachment.cgi?id=188138&amp;action=review
&gt; Source/WebCore/accessibility/AccessibilityObject.h:521
&gt; +    int ariaPosInset() const;

I&apos;d capitalize this ariaPosInSet, since it&apos;s short for &quot;position in set&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835292</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-02-18 03:03:47 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 188138 [details])
&gt; On Windows and GTK, I believe that the position in set and set size are 
&gt; supposed to be exposed for any list item, not just those with an ARIA override. 
&gt; So each item in a simple &lt;ul&gt;, for example, would have a default position in 
&gt; set.

For the case of GTK, the way a position of a given object in a container/parent is exposed through atk_object_get_n_accessible_children and atk_object_get_index_in_parent, which basically handle positions in the currently exposed a11y tree.

No ARIA stuff is involved at all there, afaik.

&gt; Would it confuse VoiceOver if these were exposed on each list item when ARIA is 
&gt; not used?
&gt; 
&gt; If not, my preference would be to remove the ARIA from the method names, and
&gt; provide default implementations for list items and listbox options.

Not sure if I fully understood your suggestion, Dominic, so please take the following with a grain of salt:

I wonder if it&apos;s really a good idea to mix what these ARIA properties [1] mean (not the &quot;visual position&quot; of elements in a visible set of items) with what the current ways to check the &quot;position in parent&quot; for a given object mean.

So, I think it&apos;s perhaps a better idea to keep them as separated concepts at the level of AccessibilityObject and let the platforms merge them or not at their will.

[1] http://www.w3.org/TR/wai-aria/states_and_properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836571</commentid>
    <comment_count>5</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-02-19 11:12:07 -0800</bug_when>
    <thetext>Case-sensitivity: AXARIAPosInset should probably be AXARIAPosInSet
Since it stands for &quot;position in set&quot; not &quot;position inset&quot;…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836581</commentid>
    <comment_count>6</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-19 11:18:13 -0800</bug_when>
    <thetext>OK, if there&apos;s only one platform that exposes a generic attribute like that, this implementation makes sense.

One last thought: should supportsAriaPosInSet and supportsAriaSetSize only return true when the role is appropriate? The ARIA spec makes it pretty clear that these are only intended for certain roles, perhaps we should enforce that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836590</commentid>
    <comment_count>7</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-02-19 11:28:02 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; One last thought: should supportsAriaPosInSet and supportsAriaSetSize only return true when the role is appropriate? The ARIA spec makes it pretty clear that these are only intended for certain roles, perhaps we should enforce that.

The spec never states that UAs &quot;MUST NOT&quot; expose it elsewhere, so I&apos;d err on the side of exposing it any time it is defined. This is especially true b/c the 1.0 spec clearly has an error in that it lists it for use on listem and option, but this was also intended for:

1. rows in vertical grids and treegrids
2. groups and treeitems in trees
3. gridcells, columnheaders, and rowheaders in horizontal scrolling grids (rare, but possible)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836592</commentid>
    <comment_count>8</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-19 11:32:01 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; 1. rows in vertical grids and treegrids
&gt; 3. gridcells, columnheaders, and rowheaders in horizontal scrolling grids (rare, but possible)

I&apos;d prefer if we added aria-colindex and aria-rowindex attributes, rather than reuse aria-posinset to mean row index when there&apos;s no equivalent for col index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836603</commentid>
    <comment_count>9</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-02-19 11:39:12 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;d prefer if we added aria-colindex and aria-rowindex attributes, rather than reuse aria-posinset to mean row index when there&apos;s no equivalent for col index.

Will you add that comment to PFWG-ISSUE-398?
https://www.w3.org/WAI/PF/Group/track/issues/398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836629</commentid>
    <comment_count>10</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-19 12:03:53 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Will you add that comment to PFWG-ISSUE-398?
&gt; https://www.w3.org/WAI/PF/Group/track/issues/398

Will do.

I don&apos;t want to take this bug off topic anymore - I&apos;m happy with this patch once capitalization is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839086</commentid>
    <comment_count>11</comment_count>
      <attachid>189649</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-21 17:48:04 -0800</bug_when>
    <thetext>Created attachment 189649
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839089</commentid>
    <comment_count>12</comment_count>
      <attachid>189649</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 17:53:06 -0800</bug_when>
    <thetext>Comment on attachment 189649
patch

Attachment 189649 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16689487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839093</commentid>
    <comment_count>13</comment_count>
      <attachid>189651</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-21 17:54:26 -0800</bug_when>
    <thetext>Created attachment 189651
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839094</commentid>
    <comment_count>14</comment_count>
      <attachid>189649</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 17:54:28 -0800</bug_when>
    <thetext>Comment on attachment 189649
patch

Attachment 189649 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16693452</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839199</commentid>
    <comment_count>15</comment_count>
      <attachid>189651</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 21:09:22 -0800</bug_when>
    <thetext>Comment on attachment 189651
patch

Attachment 189651 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16694501

New failing tests:
platform/mac/accessibility/aria-setsize-posinset.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839221</commentid>
    <comment_count>16</comment_count>
      <attachid>189680</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-21 22:00:23 -0800</bug_when>
    <thetext>Created attachment 189680
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848318</commentid>
    <comment_count>17</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-03-05 17:50:07 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/144858</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188138</attachid>
            <date>2013-02-13 12:00:25 -0800</date>
            <delta_ts>2013-02-21 17:48:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8996</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTEzICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFN1cHBvcnQgYXJp
YS1wb3NpbnNldC9zZXRzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgYXJpYS1zZXRzaXplIGFuZCBhcmlhLXBvc2luc2V0IHRocm91Z2gg
YWNjZXNzaWJpbGl0eS4KKyAgICAgICAgUmlnaHQgbm93IG9ubHkgdGhlIE1hYyBwbGF0Zm9ybSBl
eHBvc2VzIHRoZW0uCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
YXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0FSSUFTZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5zZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVNldFNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVBvc0luc2V0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSk6CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKwogMjAxMy0wMi0x
MyAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgU1ZH
IGJpdG1hcCBjYWNoZSB3aXRoIGRpcmVjdGx5LXJlbmRlcmVkIFNWRwpJbmRleDogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW0JKHJldmlzaW9uIDE0MjY2MikKKysrIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDE0IEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eUFSSUFCdXN5QXR0cmlidXRlIEAiQVhBUklBQnVzeSIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eUFSSUFQb3NJbnNldEF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlB
UklBUG9zSW5zZXRBdHRyaWJ1dGUgQCJBWEFSSUFQb3NJbnNldCIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eUFSSUFTZXRTaXplQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eUFSSUFTZXRTaXplQXR0cmlidXRlIEAiQVhBUklBU2V0U2l6ZSIKKyNlbmRpZgorCiAjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eUxvYWRpbmdQcm9ncmVzc0F0dHJpYnV0ZQogI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlMb2FkaW5nUHJvZ3Jlc3NBdHRyaWJ1dGUgQCJBWExvYWRpbmdQcm9ncmVzcyIK
ICNlbmRpZgpAQCAtOTk4LDYgKzEwMDYsMTEgQEAKICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSZWxldmFudEF0dHJpYnV0ZV07CiAgICAgfQogICAgIAor
ICAgIGlmIChtX29iamVjdC0+c3VwcG9ydHNBUklBU2V0U2l6ZSgpKQorICAgICAgICBbYWRkaXRp
b25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVBdHRyaWJ1dGVdOworICAg
IGlmIChtX29iamVjdC0+c3VwcG9ydHNBUklBUG9zSW5zZXQoKSkKKyAgICAgICAgW2FkZGl0aW9u
YWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFQb3NJbnNldEF0dHJpYnV0ZV07CisgICAg
CiAgICAgaWYgKG1fb2JqZWN0LT5zb3J0RGlyZWN0aW9uKCkgIT0gU29ydERpcmVjdGlvbk5vbmUp
CiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTb3J0RGlyZWN0
aW9uQXR0cmlidXRlXTsKICAgICAgICAgCkBAIC0yNjA4LDYgKzI2MjEsMTEgQEAKICAgICAgICAg
cmV0dXJuIGNvbnZlcnRUb05TQXJyYXkoYXJpYU93bnMpOwogICAgIH0KICAgICAKKyAgICBpZiAo
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUFSSUFQb3NJbnNl
dEF0dHJpYnV0ZV0pCisgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDptX29i
amVjdC0+YXJpYVBvc0luc2V0KCldOworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVBdHRyaWJ1dGVdKQorICAgICAgICByZXR1
cm4gW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6bV9vYmplY3QtPmFyaWFTZXRTaXplKCldOworICAg
IAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5
R3JhYmJlZEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJv
b2w6bV9vYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAJKHJldmlz
aW9uIDE0MjY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1ODIsNiArMTU4MiwyNiBAQAogICAgICAg
ICB8fCBpc1NwaW5CdXR0b24oKTsKIH0KICAgICAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c3VwcG9ydHNBUklBU2V0U2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShh
cmlhX3NldHNpemVBdHRyKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0
c0FSSUFQb3NJbnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShhcmlhX3Bv
c2luc2V0QXR0cik7Cit9CisgICAgCitpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVNldFNp
emUoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoYXJpYV9zZXRzaXplQXR0ciku
dG9JbnQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFQb3NJbnNldCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShhcmlhX3Bvc2luc2V0QXR0cikudG9JbnQo
KTsKK30KKyAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBRXhwYW5k
ZWQoKSBjb25zdAogewogICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFyaWFfZXhwYW5kZWRBdHRy
KS5pc0VtcHR5KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMTQyNjYyKQorKysgU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxNCw2ICs1MTQsMTEgQEAKICAgICBBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbiBzb3J0RGly
ZWN0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzdXBwb3J0c1JhbmdlVmFsdWUo
KSBjb25zdDsKKworICAgIGJvb2wgc3VwcG9ydHNBUklBU2V0U2l6ZSgpIGNvbnN0OworICAgIGJv
b2wgc3VwcG9ydHNBUklBUG9zSW5zZXQoKSBjb25zdDsKKyAgICBpbnQgYXJpYVNldFNpemUoKSBj
b25zdDsKKyAgICBpbnQgYXJpYVBvc0luc2V0KCkgY29uc3Q7CiAgICAgCiAgICAgLy8gQVJJQSBk
cmFnIGFuZCBkcm9wCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCShyZXZpc2lvbiAxNDI2NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzYsMTEgKzM2LDEzIEBACiBh
cmlhLW11bHRpc2VsZWN0YWJsZQogYXJpYS1vcmllbnRhdGlvbgogYXJpYS1vd25zCithcmlhLXBv
c2luc2V0CiBhcmlhLXByZXNzZWQKIGFyaWEtcmVhZG9ubHkKIGFyaWEtcmVsZXZhbnQKIGFyaWEt
cmVxdWlyZWQKIGFyaWEtc2VsZWN0ZWQKK2FyaWEtc2V0c2l6ZQogYXJpYS1zb3J0CiBhcmlhLXZh
bHVlbWF4CiBhcmlhLXZhbHVlbWluCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDI3NjYpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0w
Mi0xMyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiBTdXBwb3J0IGFyaWEtcG9zaW5zZXQvc2V0c2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlh
LXNldHNpemUtcG9zaW5zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbDogQWRkZWQuCisK
IDIwMTMtMDItMTMgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXBsYWNlIFNWRyBiaXRtYXAgY2FjaGUgd2l0aCBkaXJlY3RseS1yZW5kZXJlZCBTVkcKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3Np
bnNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2V0
c2l6ZS1wb3NpbnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAK
K1RoaXMgdGVzdHMgdmVyaWZpZXMgdGhhdCBhcmlhLXBvc2luc2V0IGFuZCBhcmlhLXNldHNpemUg
YXJlIGV4cG9zZWQgdG8gYWNjZXNzaWJpbGl0eSBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBl
eHBvc2VzIHNldHNpemUgYW5kIHBvc2luc2V0IGF0dHJpYnV0ZXMuCitQQVNTIGxpc3QuY2hpbGRB
dEluZGV4KDApLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMgdHJ1ZQor
UEFTUyBsaXN0LmNoaWxkQXRJbmRleCgwKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBUG9z
SW5zZXQnKSBpcyB0cnVlCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBy
ZXR1cm5zIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzZXRzaXplIGFuZCBwb3NpbnNldC4KK1BBU1Mg
bGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVNldFNpemUn
KSBpcyAxMDAKK1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUo
J0FYQVJJQVBvc0luc2V0JykgaXMgMworVmVyaWZ5IHRoYXQgdGhlIHNlY29uZCBpdGVtIGluIHRo
ZSBsaXN0IGRvZXMgbm90IHN1cHBvcnQgc2V0c2l6ZSBhbmQgcG9zaW5zZXQuCitQQVNTIGxpc3Qu
Y2hpbGRBdEluZGV4KDEpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMg
ZmFsc2UKK1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMSkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FY
QVJJQVBvc0luc2V0JykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHVsIGlkPSJs
aXN0Ij4KKzxsaSBhcmlhLXNldHNpemU9IjEwMCIgYXJpYS1wb3NpbnNldD0iMyI+MzwvbGk+Cis8
bGk+NDwvbGk+Cis8L3VsPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dmVyaWZpZXMgdGhhdCBhcmlhLXBvc2luc2V0IGFuZCBhcmlhLXNldHNpemUgYXJlIGV4cG9zZWQg
dG8gYWNjZXNzaWJpbGl0eSBjb3JyZWN0bHkuIik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICAgICB2YXIgbGlzdCA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgibGlzdCIpOworCisgICAgICAgICAgZGVi
dWcoIlZlcmlmeSB0aGF0IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IGV4cG9zZXMgc2V0c2l6
ZSBhbmQgcG9zaW5zZXQgYXR0cmlidXRlcy4iKTsKKyAgICAgICAgICBzaG91bGRCZVRydWUoImxp
c3QuY2hpbGRBdEluZGV4KDApLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJyki
KTsKKyAgICAgICAgICBzaG91bGRCZVRydWUoImxpc3QuY2hpbGRBdEluZGV4KDApLmlzQXR0cmli
dXRlU3VwcG9ydGVkKCdBWEFSSUFQb3NJbnNldCcpIik7CisKKyAgICAgICAgICBkZWJ1ZygiVmVy
aWZ5IHRoYXQgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgcmV0dXJucyB0aGUgY29ycmVjdCB2
YWx1ZSBmb3Igc2V0c2l6ZSBhbmQgcG9zaW5zZXQuIik7CisgICAgICAgICAgc2hvdWxkQmUoImxp
c3QuY2hpbGRBdEluZGV4KDApLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFTZXRTaXplJyki
LCAiMTAwIik7CisgICAgICAgICAgc2hvdWxkQmUoImxpc3QuY2hpbGRBdEluZGV4KDApLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFQb3NJbnNldCcpIiwgIjMiKTsKKworICAgICAgICAgIGRl
YnVnKCJWZXJpZnkgdGhhdCB0aGUgc2Vjb25kIGl0ZW0gaW4gdGhlIGxpc3QgZG9lcyBub3Qgc3Vw
cG9ydCBzZXRzaXplIGFuZCBwb3NpbnNldC4iKTsKKyAgICAgICAgICBzaG91bGRCZUZhbHNlKCJs
aXN0LmNoaWxkQXRJbmRleCgxKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBU2V0U2l6ZScp
Iik7CisgICAgICAgICAgc2hvdWxkQmVGYWxzZSgibGlzdC5jaGlsZEF0SW5kZXgoMSkuaXNBdHRy
aWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVBvc0luc2V0JykiKTsKKworICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsaXN0Iikuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAg
IH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189649</attachid>
            <date>2013-02-21 17:48:04 -0800</date>
            <delta_ts>2013-02-21 17:54:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8592</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzY3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTIxICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFN1cHBvcnQgYXJp
YS1wb3NpbnNldC9zZXRzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgYXJpYS1zZXRzaXplIGFuZCBhcmlhLXBvc2luc2V0IHRocm91Z2gg
YWNjZXNzaWJpbGl0eS4KKyAgICAgICAgUmlnaHQgbm93IG9ubHkgdGhlIE1hYyBwbGF0Zm9ybSBl
eHBvc2VzIHRoZW0uCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
YXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0FSSUFTZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5zZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVNldFNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVBvc0luc2V0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSk6CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKwogMjAxMy0wMi0y
MSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgdGFibGVzL21vemls
bGEvYnVncy9idWc4OTUwLmh0bWwgZmFpbHMgd2l0aCB0aHJlYWRlZCBwYXJzZXIgZHVlIHRvIGF0
dHJpYnV0ZSBkdXBsaWNhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAxNDM2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTg2LDYgKzE1ODYsMjYgQEAKICAgICAgICAgfHwgaXNTcGluQnV0dG9u
KCk7CiB9CiAgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQVNldFNp
emUoKSBjb25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9zZXRzaXplQXR0cik7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5TZXQoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpOworfQor
ICAgIAoraW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFTZXRTaXplKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfc2V0c2l6ZUF0dHIpLnRvSW50KCk7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUG9zSW5TZXQoKSBjb25zdAoreworICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpLnRvSW50KCk7Cit9CisgICAgCiBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUV4cGFuZGVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX2V4cGFuZGVkQXR0cikuaXNFbXB0eSgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDE0MzYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MTQsNiArNTE0LDExIEBA
CiAgICAgQWNjZXNzaWJpbGl0eVNvcnREaXJlY3Rpb24gc29ydERpcmVjdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc3VwcG9ydHNSYW5nZVZhbHVlKCkgY29uc3Q7CisKKyAgICBi
b29sIHN1cHBvcnRzQVJJQVNldFNpemUoKSBjb25zdDsKKyAgICBib29sIHN1cHBvcnRzQVJJQVBv
c0luU2V0KCkgY29uc3Q7CisgICAgaW50IGFyaWFTZXRTaXplKCkgY29uc3Q7CisgICAgaW50IGFy
aWFQb3NJblNldCgpIGNvbnN0OwogICAgIAogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcAogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkocmV2aXNp
b24gMTQzNjM3KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NCw2ICsxNjQs
MTQgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQUJ1c3lBdHRyaWJ1dGUgQCJBWEFSSUFC
dXN5IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVBvc0luU2V0QXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZSBAIkFYQVJJ
QVBvc0luU2V0IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVBdHRyaWJ1dGUgQCJB
WEFSSUFTZXRTaXplIgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5TG9hZGluZ1By
b2dyZXNzQXR0cmlidXRlCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxvYWRpbmdQcm9ncmVzc0F0
dHJpYnV0ZSBAIkFYTG9hZGluZ1Byb2dyZXNzIgogI2VuZGlmCkBAIC05NjAsNiArOTY4LDExIEBA
CiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUmVsZXZh
bnRBdHRyaWJ1dGVdOwogICAgIH0KICAgICAKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJ
QVNldFNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUFSSUFTZXRTaXplQXR0cmlidXRlXTsKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJQVBv
c0luU2V0KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlB
UklBUG9zSW5TZXRBdHRyaWJ1dGVdOworICAgIAogICAgIGlmIChtX29iamVjdC0+c29ydERpcmVj
dGlvbigpICE9IFNvcnREaXJlY3Rpb25Ob25lKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbkF0dHJpYnV0ZV07CiAgICAgCkBAIC0yNTY2
LDYgKzI1NzksMTEgQEAKICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb05TQXJyYXkoYXJpYU93bnMp
OwogICAgIH0KICAgICAKKyAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5T
QWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZV0pCisgICAgICAgIHJldHVybiBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDptX29iamVjdC0+YXJpYVBvc0luU2V0KCldOworICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGVdKQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6bV9vYmpl
Y3QtPmFyaWFTZXRTaXplKCldOworICAgIAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFs
VG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVy
biBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6bV9vYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07CiAg
ICAgCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDM2NzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0xMyAgQ2hyaXMgRmxlaXph
Y2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBTdXBwb3J0IGFyaWEtcG9z
aW5zZXQvc2V0c2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMjEgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaHJlYWRlZCBIVE1MIFBhcnNl
ciBmYWlscyBmYXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLmh0bWwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3Np
bnNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0
ZXN0cyB2ZXJpZmllcyB0aGF0IGFyaWEtcG9zaW5zZXQgYW5kIGFyaWEtc2V0c2l6ZSBhcmUgZXhw
b3NlZCB0byBhY2Nlc3NpYmlsaXR5IGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1ZlcmlmeSB0aGF0IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IGV4cG9zZXMg
c2V0c2l6ZSBhbmQgcG9zaW5zZXQgYXR0cmlidXRlcy4KK1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgo
MCkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVNldFNpemUnKSBpcyB0cnVlCitQQVNTIGxp
c3QuY2hpbGRBdEluZGV4KDApLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFQb3NJbnNldCcp
IGlzIHRydWUKK1ZlcmlmeSB0aGF0IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IHJldHVybnMg
dGhlIGNvcnJlY3QgdmFsdWUgZm9yIHNldHNpemUgYW5kIHBvc2luc2V0LgorUEFTUyBsaXN0LmNo
aWxkQXRJbmRleCgwKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBU2V0U2l6ZScpIGlzIDEw
MAorUEFTUyBsaXN0LmNoaWxkQXRJbmRleCgwKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklB
UG9zSW5zZXQnKSBpcyAzCitWZXJpZnkgdGhhdCB0aGUgc2Vjb25kIGl0ZW0gaW4gdGhlIGxpc3Qg
ZG9lcyBub3Qgc3VwcG9ydCBzZXRzaXplIGFuZCBwb3NpbnNldC4KK1BBU1MgbGlzdC5jaGlsZEF0
SW5kZXgoMSkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVNldFNpemUnKSBpcyBmYWxzZQor
UEFTUyBsaXN0LmNoaWxkQXRJbmRleCgxKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBUG9z
SW5zZXQnKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1z
ZXRzaXplLXBvc2luc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzx1bCBpZD0ibGlzdCI+
Cis8bGkgYXJpYS1zZXRzaXplPSIxMDAiIGFyaWEtcG9zaW5zZXQ9IjMiPjM8L2xpPgorPGxpPjQ8
L2xpPgorPC91bD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZlcmlm
aWVzIHRoYXQgYXJpYS1wb3NpbnNldCBhbmQgYXJpYS1zZXRzaXplIGFyZSBleHBvc2VkIHRvIGFj
Y2Vzc2liaWxpdHkgY29ycmVjdGx5LiIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworCisgICAgICAgICAgdmFyIGxpc3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpc3QiKTsKKworICAgICAgICAgIGRlYnVnKCJW
ZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBleHBvc2VzIHNldHNpemUgYW5k
IHBvc2luc2V0IGF0dHJpYnV0ZXMuIik7CisgICAgICAgICAgc2hvdWxkQmVUcnVlKCJsaXN0LmNo
aWxkQXRJbmRleCgwKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBU2V0U2l6ZScpIik7Cisg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJsaXN0LmNoaWxkQXRJbmRleCgwKS5pc0F0dHJpYnV0ZVN1
cHBvcnRlZCgnQVhBUklBUG9zSW5TZXQnKSIpOworCisgICAgICAgICAgZGVidWcoIlZlcmlmeSB0
aGF0IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IHJldHVybnMgdGhlIGNvcnJlY3QgdmFsdWUg
Zm9yIHNldHNpemUgYW5kIHBvc2luc2V0LiIpOworICAgICAgICAgIHNob3VsZEJlKCJsaXN0LmNo
aWxkQXRJbmRleCgwKS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBU2V0U2l6ZScpIiwgIjEw
MCIpOworICAgICAgICAgIHNob3VsZEJlKCJsaXN0LmNoaWxkQXRJbmRleCgwKS5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBUG9zSW5TZXQnKSIsICIzIik7CisKKyAgICAgICAgICBkZWJ1Zygi
VmVyaWZ5IHRoYXQgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBsaXN0IGRvZXMgbm90IHN1cHBvcnQg
c2V0c2l6ZSBhbmQgcG9zaW5zZXQuIik7CisgICAgICAgICAgc2hvdWxkQmVGYWxzZSgibGlzdC5j
aGlsZEF0SW5kZXgoMSkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVNldFNpemUnKSIpOwor
ICAgICAgICAgIHNob3VsZEJlRmFsc2UoImxpc3QuY2hpbGRBdEluZGV4KDEpLmlzQXR0cmlidXRl
U3VwcG9ydGVkKCdBWEFSSUFQb3NJblNldCcpIik7CisKKyAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibGlzdCIpLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKKyAgICB9CisK
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="210141"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189651</attachid>
            <date>2013-02-21 17:54:26 -0800</date>
            <delta_ts>2013-02-21 22:00:23 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9049</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzY3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTIxICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFN1cHBvcnQgYXJp
YS1wb3NpbnNldC9zZXRzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgYXJpYS1zZXRzaXplIGFuZCBhcmlhLXBvc2luc2V0IHRocm91Z2gg
YWNjZXNzaWJpbGl0eS4KKyAgICAgICAgUmlnaHQgbm93IG9ubHkgdGhlIE1hYyBwbGF0Zm9ybSBl
eHBvc2VzIHRoZW0uCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
YXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0FSSUFTZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5zZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVNldFNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVBvc0luc2V0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSk6CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKwogMjAxMy0wMi0y
MSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgdGFibGVzL21vemls
bGEvYnVncy9idWc4OTUwLmh0bWwgZmFpbHMgd2l0aCB0aHJlYWRlZCBwYXJzZXIgZHVlIHRvIGF0
dHJpYnV0ZSBkdXBsaWNhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAxNDM2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTg2LDYgKzE1ODYsMjYgQEAKICAgICAgICAgfHwgaXNTcGluQnV0dG9u
KCk7CiB9CiAgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQVNldFNp
emUoKSBjb25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9zZXRzaXplQXR0cik7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5TZXQoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpOworfQor
ICAgIAoraW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFTZXRTaXplKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfc2V0c2l6ZUF0dHIpLnRvSW50KCk7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUG9zSW5TZXQoKSBjb25zdAoreworICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpLnRvSW50KCk7Cit9CisgICAgCiBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUV4cGFuZGVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX2V4cGFuZGVkQXR0cikuaXNFbXB0eSgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDE0MzYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MTQsNiArNTE0LDExIEBA
CiAgICAgQWNjZXNzaWJpbGl0eVNvcnREaXJlY3Rpb24gc29ydERpcmVjdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc3VwcG9ydHNSYW5nZVZhbHVlKCkgY29uc3Q7CisKKyAgICBi
b29sIHN1cHBvcnRzQVJJQVNldFNpemUoKSBjb25zdDsKKyAgICBib29sIHN1cHBvcnRzQVJJQVBv
c0luU2V0KCkgY29uc3Q7CisgICAgaW50IGFyaWFTZXRTaXplKCkgY29uc3Q7CisgICAgaW50IGFy
aWFQb3NJblNldCgpIGNvbnN0OwogICAgIAogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcAogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkocmV2aXNp
b24gMTQzNjM3KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NCw2ICsxNjQs
MTQgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQUJ1c3lBdHRyaWJ1dGUgQCJBWEFSSUFC
dXN5IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVBvc0luU2V0QXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZSBAIkFYQVJJ
QVBvc0luU2V0IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVBdHRyaWJ1dGUgQCJB
WEFSSUFTZXRTaXplIgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5TG9hZGluZ1By
b2dyZXNzQXR0cmlidXRlCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxvYWRpbmdQcm9ncmVzc0F0
dHJpYnV0ZSBAIkFYTG9hZGluZ1Byb2dyZXNzIgogI2VuZGlmCkBAIC05NjAsNiArOTY4LDExIEBA
CiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUmVsZXZh
bnRBdHRyaWJ1dGVdOwogICAgIH0KICAgICAKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJ
QVNldFNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUFSSUFTZXRTaXplQXR0cmlidXRlXTsKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJQVBv
c0luU2V0KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlB
UklBUG9zSW5TZXRBdHRyaWJ1dGVdOworICAgIAogICAgIGlmIChtX29iamVjdC0+c29ydERpcmVj
dGlvbigpICE9IFNvcnREaXJlY3Rpb25Ob25lKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbkF0dHJpYnV0ZV07CiAgICAgCkBAIC0yNTY2
LDYgKzI1NzksMTEgQEAKICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb05TQXJyYXkoYXJpYU93bnMp
OwogICAgIH0KICAgICAKKyAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5T
QWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZV0pCisgICAgICAgIHJldHVybiBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDptX29iamVjdC0+YXJpYVBvc0luU2V0KCldOworICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGVdKQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6bV9vYmpl
Y3QtPmFyaWFTZXRTaXplKCldOworICAgIAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFs
VG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVy
biBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6bV9vYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07CiAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2
aXNpb24gMTQzNjM3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMyBAQAogYXJpYS1tdWx0aXNlbGVjdGFi
bGUKIGFyaWEtb3JpZW50YXRpb24KIGFyaWEtb3ducworYXJpYS1wb3NpbnNldAogYXJpYS1wcmVz
c2VkCiBhcmlhLXJlYWRvbmx5CiBhcmlhLXJlbGV2YW50CiBhcmlhLXJlcXVpcmVkCiBhcmlhLXNl
bGVjdGVkCithcmlhLXNldHNpemUKIGFyaWEtc29ydAogYXJpYS12YWx1ZW1heAogYXJpYS12YWx1
ZW1pbgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzNjc1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTMgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogU3VwcG9ydCBhcmlhLXBv
c2luc2V0L3NldHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTcyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvYXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTIxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGhyZWFkZWQgSFRNTCBQYXJz
ZXIgZmFpbHMgZmFzdC9kb20vRG9jdW1lbnQvcmVhZHlzdGF0ZS5odG1sCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9z
aW5zZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdHMgdmVyaWZpZXMgdGhhdCBhcmlhLXBvc2luc2V0IGFuZCBhcmlhLXNldHNpemUgYXJlIGV4
cG9zZWQgdG8gYWNjZXNzaWJpbGl0eSBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBleHBvc2Vz
IHNldHNpemUgYW5kIHBvc2luc2V0IGF0dHJpYnV0ZXMuCitQQVNTIGxpc3QuY2hpbGRBdEluZGV4
KDApLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMgdHJ1ZQorUEFTUyBs
aXN0LmNoaWxkQXRJbmRleCgwKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBUG9zSW5zZXQn
KSBpcyB0cnVlCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCByZXR1cm5z
IHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzZXRzaXplIGFuZCBwb3NpbnNldC4KK1BBU1MgbGlzdC5j
aGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVNldFNpemUnKSBpcyAx
MDAKK1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QVBvc0luc2V0JykgaXMgMworVmVyaWZ5IHRoYXQgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBsaXN0
IGRvZXMgbm90IHN1cHBvcnQgc2V0c2l6ZSBhbmQgcG9zaW5zZXQuCitQQVNTIGxpc3QuY2hpbGRB
dEluZGV4KDEpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMgZmFsc2UK
K1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMSkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVBv
c0luc2V0JykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEt
c2V0c2l6ZS1wb3NpbnNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8dWwgaWQ9Imxpc3Qi
PgorPGxpIGFyaWEtc2V0c2l6ZT0iMTAwIiBhcmlhLXBvc2luc2V0PSIzIj4zPC9saT4KKzxsaT40
PC9saT4KKzwvdWw+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2ZXJp
ZmllcyB0aGF0IGFyaWEtcG9zaW5zZXQgYW5kIGFyaWEtc2V0c2l6ZSBhcmUgZXhwb3NlZCB0byBh
Y2Nlc3NpYmlsaXR5IGNvcnJlY3RseS4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgIHZhciBsaXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJsaXN0Iik7CisKKyAgICAgICAgICBkZWJ1Zygi
VmVyaWZ5IHRoYXQgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgZXhwb3NlcyBzZXRzaXplIGFu
ZCBwb3NpbnNldCBhdHRyaWJ1dGVzLiIpOworICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibGlzdC5j
aGlsZEF0SW5kZXgoMCkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVNldFNpemUnKSIpOwor
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibGlzdC5jaGlsZEF0SW5kZXgoMCkuaXNBdHRyaWJ1dGVT
dXBwb3J0ZWQoJ0FYQVJJQVBvc0luU2V0JykiKTsKKworICAgICAgICAgIGRlYnVnKCJWZXJpZnkg
dGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCByZXR1cm5zIHRoZSBjb3JyZWN0IHZhbHVl
IGZvciBzZXRzaXplIGFuZCBwb3NpbnNldC4iKTsKKyAgICAgICAgICBzaG91bGRCZSgibGlzdC5j
aGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVNldFNpemUnKSIsICIx
MDAiKTsKKyAgICAgICAgICBzaG91bGRCZSgibGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0
cmlidXRlVmFsdWUoJ0FYQVJJQVBvc0luU2V0JykiLCAiMyIpOworCisgICAgICAgICAgZGVidWco
IlZlcmlmeSB0aGF0IHRoZSBzZWNvbmQgaXRlbSBpbiB0aGUgbGlzdCBkb2VzIG5vdCBzdXBwb3J0
IHNldHNpemUgYW5kIHBvc2luc2V0LiIpOworICAgICAgICAgIHNob3VsZEJlRmFsc2UoImxpc3Qu
Y2hpbGRBdEluZGV4KDEpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykiKTsK
KyAgICAgICAgICBzaG91bGRCZUZhbHNlKCJsaXN0LmNoaWxkQXRJbmRleCgxKS5pc0F0dHJpYnV0
ZVN1cHBvcnRlZCgnQVhBUklBUG9zSW5TZXQnKSIpOworCisgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxpc3QiKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgfQor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="210166"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189680</attachid>
            <date>2013-02-21 22:00:23 -0800</date>
            <delta_ts>2013-03-05 13:21:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9049</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzY3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTIxICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFN1cHBvcnQgYXJp
YS1wb3NpbnNldC9zZXRzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgYXJpYS1zZXRzaXplIGFuZCBhcmlhLXBvc2luc2V0IHRocm91Z2gg
YWNjZXNzaWJpbGl0eS4KKyAgICAgICAgUmlnaHQgbm93IG9ubHkgdGhlIE1hYyBwbGF0Zm9ybSBl
eHBvc2VzIHRoZW0uCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
YXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0FSSUFTZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5zZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVNldFNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVBvc0luc2V0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXSk6CisgICAgICAgICgt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKwogMjAxMy0wMi0y
MSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgdGFibGVzL21vemls
bGEvYnVncy9idWc4OTUwLmh0bWwgZmFpbHMgd2l0aCB0aHJlYWRlZCBwYXJzZXIgZHVlIHRvIGF0
dHJpYnV0ZSBkdXBsaWNhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiAxNDM2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTg2LDYgKzE1ODYsMjYgQEAKICAgICAgICAgfHwgaXNTcGluQnV0dG9u
KCk7CiB9CiAgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQVNldFNp
emUoKSBjb25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9zZXRzaXplQXR0cik7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNBUklBUG9zSW5TZXQoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpOworfQor
ICAgIAoraW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFTZXRTaXplKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfc2V0c2l6ZUF0dHIpLnRvSW50KCk7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUG9zSW5TZXQoKSBjb25zdAoreworICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoYXJpYV9wb3NpbnNldEF0dHIpLnRvSW50KCk7Cit9CisgICAgCiBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzQVJJQUV4cGFuZGVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX2V4cGFuZGVkQXR0cikuaXNFbXB0eSgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDE0MzYzNykKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MTQsNiArNTE0LDExIEBA
CiAgICAgQWNjZXNzaWJpbGl0eVNvcnREaXJlY3Rpb24gc29ydERpcmVjdGlvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc3VwcG9ydHNSYW5nZVZhbHVlKCkgY29uc3Q7CisKKyAgICBi
b29sIHN1cHBvcnRzQVJJQVNldFNpemUoKSBjb25zdDsKKyAgICBib29sIHN1cHBvcnRzQVJJQVBv
c0luU2V0KCkgY29uc3Q7CisgICAgaW50IGFyaWFTZXRTaXplKCkgY29uc3Q7CisgICAgaW50IGFy
aWFQb3NJblNldCgpIGNvbnN0OwogICAgIAogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcAogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkocmV2aXNp
b24gMTQzNjM3KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NCw2ICsxNjQs
MTQgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQUJ1c3lBdHRyaWJ1dGUgQCJBWEFSSUFC
dXN5IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVBvc0luU2V0QXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZSBAIkFYQVJJ
QVBvc0luU2V0IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVBdHRyaWJ1dGUgQCJB
WEFSSUFTZXRTaXplIgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5TG9hZGluZ1By
b2dyZXNzQXR0cmlidXRlCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxvYWRpbmdQcm9ncmVzc0F0
dHJpYnV0ZSBAIkFYTG9hZGluZ1Byb2dyZXNzIgogI2VuZGlmCkBAIC05NjAsNiArOTY4LDExIEBA
CiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUmVsZXZh
bnRBdHRyaWJ1dGVdOwogICAgIH0KICAgICAKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJ
QVNldFNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUFSSUFTZXRTaXplQXR0cmlidXRlXTsKKyAgICBpZiAobV9vYmplY3QtPnN1cHBvcnRzQVJJQVBv
c0luU2V0KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlB
UklBUG9zSW5TZXRBdHRyaWJ1dGVdOworICAgIAogICAgIGlmIChtX29iamVjdC0+c29ydERpcmVj
dGlvbigpICE9IFNvcnREaXJlY3Rpb25Ob25lKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbkF0dHJpYnV0ZV07CiAgICAgCkBAIC0yNTY2
LDYgKzI1NzksMTEgQEAKICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb05TQXJyYXkoYXJpYU93bnMp
OwogICAgIH0KICAgICAKKyAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5T
QWNjZXNzaWJpbGl0eUFSSUFQb3NJblNldEF0dHJpYnV0ZV0pCisgICAgICAgIHJldHVybiBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDptX29iamVjdC0+YXJpYVBvc0luU2V0KCldOworICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5QVJJQVNldFNpemVB
dHRyaWJ1dGVdKQorICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6bV9vYmpl
Y3QtPmFyaWFTZXRTaXplKCldOworICAgIAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFs
VG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JhYmJlZEF0dHJpYnV0ZV0pCiAgICAgICAgIHJldHVy
biBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6bV9vYmplY3QtPmlzQVJJQUdyYWJiZWQoKV07CiAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2
aXNpb24gMTQzNjM3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMyBAQAogYXJpYS1tdWx0aXNlbGVjdGFi
bGUKIGFyaWEtb3JpZW50YXRpb24KIGFyaWEtb3ducworYXJpYS1wb3NpbnNldAogYXJpYS1wcmVz
c2VkCiBhcmlhLXJlYWRvbmx5CiBhcmlhLXJlbGV2YW50CiBhcmlhLXJlcXVpcmVkCiBhcmlhLXNl
bGVjdGVkCithcmlhLXNldHNpemUKIGFyaWEtc29ydAogYXJpYS12YWx1ZW1heAogYXJpYS12YWx1
ZW1pbgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzNjc1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTMgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogU3VwcG9ydCBhcmlhLXBv
c2luc2V0L3NldHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTcyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1zZXRzaXplLXBvc2luc2V0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvYXJpYS1zZXRzaXplLXBvc2luc2V0Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTIxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGhyZWFkZWQgSFRNTCBQYXJz
ZXIgZmFpbHMgZmFzdC9kb20vRG9jdW1lbnQvcmVhZHlzdGF0ZS5odG1sCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2FyaWEtc2V0c2l6ZS1wb3NpbnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9z
aW5zZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdHMgdmVyaWZpZXMgdGhhdCBhcmlhLXBvc2luc2V0IGFuZCBhcmlhLXNldHNpemUgYXJlIGV4
cG9zZWQgdG8gYWNjZXNzaWJpbGl0eSBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBleHBvc2Vz
IHNldHNpemUgYW5kIHBvc2luc2V0IGF0dHJpYnV0ZXMuCitQQVNTIGxpc3QuY2hpbGRBdEluZGV4
KDApLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMgdHJ1ZQorUEFTUyBs
aXN0LmNoaWxkQXRJbmRleCgwKS5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhBUklBUG9zSW5TZXQn
KSBpcyB0cnVlCitWZXJpZnkgdGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCByZXR1cm5z
IHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzZXRzaXplIGFuZCBwb3NpbnNldC4KK1BBU1MgbGlzdC5j
aGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVNldFNpemUnKSBpcyAx
MDAKK1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QVBvc0luU2V0JykgaXMgMworVmVyaWZ5IHRoYXQgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBsaXN0
IGRvZXMgbm90IHN1cHBvcnQgc2V0c2l6ZSBhbmQgcG9zaW5zZXQuCitQQVNTIGxpc3QuY2hpbGRB
dEluZGV4KDEpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykgaXMgZmFsc2UK
K1BBU1MgbGlzdC5jaGlsZEF0SW5kZXgoMSkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVBv
c0luU2V0JykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLXNldHNpemUtcG9zaW5zZXQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEt
c2V0c2l6ZS1wb3NpbnNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8dWwgaWQ9Imxpc3Qi
PgorPGxpIGFyaWEtc2V0c2l6ZT0iMTAwIiBhcmlhLXBvc2luc2V0PSIzIj4zPC9saT4KKzxsaT40
PC9saT4KKzwvdWw+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2ZXJp
ZmllcyB0aGF0IGFyaWEtcG9zaW5zZXQgYW5kIGFyaWEtc2V0c2l6ZSBhcmUgZXhwb3NlZCB0byBh
Y2Nlc3NpYmlsaXR5IGNvcnJlY3RseS4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgIHZhciBsaXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJsaXN0Iik7CisKKyAgICAgICAgICBkZWJ1Zygi
VmVyaWZ5IHRoYXQgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgZXhwb3NlcyBzZXRzaXplIGFu
ZCBwb3NpbnNldCBhdHRyaWJ1dGVzLiIpOworICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibGlzdC5j
aGlsZEF0SW5kZXgoMCkuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYQVJJQVNldFNpemUnKSIpOwor
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibGlzdC5jaGlsZEF0SW5kZXgoMCkuaXNBdHRyaWJ1dGVT
dXBwb3J0ZWQoJ0FYQVJJQVBvc0luU2V0JykiKTsKKworICAgICAgICAgIGRlYnVnKCJWZXJpZnkg
dGhhdCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCByZXR1cm5zIHRoZSBjb3JyZWN0IHZhbHVl
IGZvciBzZXRzaXplIGFuZCBwb3NpbnNldC4iKTsKKyAgICAgICAgICBzaG91bGRCZSgibGlzdC5j
aGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVNldFNpemUnKSIsICIx
MDAiKTsKKyAgICAgICAgICBzaG91bGRCZSgibGlzdC5jaGlsZEF0SW5kZXgoMCkubnVtYmVyQXR0
cmlidXRlVmFsdWUoJ0FYQVJJQVBvc0luU2V0JykiLCAiMyIpOworCisgICAgICAgICAgZGVidWco
IlZlcmlmeSB0aGF0IHRoZSBzZWNvbmQgaXRlbSBpbiB0aGUgbGlzdCBkb2VzIG5vdCBzdXBwb3J0
IHNldHNpemUgYW5kIHBvc2luc2V0LiIpOworICAgICAgICAgIHNob3VsZEJlRmFsc2UoImxpc3Qu
Y2hpbGRBdEluZGV4KDEpLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWEFSSUFTZXRTaXplJykiKTsK
KyAgICAgICAgICBzaG91bGRCZUZhbHNlKCJsaXN0LmNoaWxkQXRJbmRleCgxKS5pc0F0dHJpYnV0
ZVN1cHBvcnRlZCgnQVhBUklBUG9zSW5TZXQnKSIpOworCisgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxpc3QiKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgfQor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="210174"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>