<?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>85747</bug_id>
          
          <creation_ts>2012-05-06 14:25:33 -0700</creation_ts>
          <short_desc>[WK2] Push wheel events if there are too many in queue</short_desc>
          <delta_ts>2012-05-08 16:50:02 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>617167</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-05-06 14:25:33 -0700</bug_when>
    <thetext>It is possible that a whole bunch of messages added to the message queue, or a series of long-running messages, cause unresponsiveness. The reason for this is that we have a scroll event waiting for acknowledgment from the web process before it sends the next event. And in the time between the user has scrolled, causing a large backlog of scroll events to be held in the UI process.

&lt;rdar://problem/11390790&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617172</commentid>
    <comment_count>1</comment_count>
      <attachid>140435</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-05-06 14:39:50 -0700</bug_when>
    <thetext>Created attachment 140435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617221</commentid>
    <comment_count>2</comment_count>
      <attachid>140435</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-05-06 16:34:27 -0700</bug_when>
    <thetext>Comment on attachment 140435
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:1031
&gt; +    class CoalescedWheelEvent : public RefCounted&lt;CoalescedWheelEvent&gt; {
&gt; +    public:
&gt; +        static PassRefPtr&lt;CoalescedWheelEvent&gt; create();
&gt; +        CoalescedWheelEvent();
&gt; +        virtual ~CoalescedWheelEvent();
&gt; +        Vector&lt;NativeWebWheelEvent&gt; events;
&gt; +    };

Is it necessary for this whole class to be public?  It seems like at the very least, the constructor should be private.  I&apos;m also not clear on why this needs to be RefCounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617384</commentid>
    <comment_count>3</comment_count>
      <attachid>140475</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-05-06 22:23:50 -0700</bug_when>
    <thetext>Created attachment 140475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617386</commentid>
    <comment_count>4</comment_count>
      <attachid>140475</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-05-06 22:24:51 -0700</bug_when>
    <thetext>Comment on attachment 140475
Patch

Originally had some problems using just the Vector but figured it out! Got rid of the internal class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618962</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-05-08 16:50:02 -0700</bug_when>
    <thetext>Committed r116466: &lt;http://trac.webkit.org/changeset/116466&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140435</attachid>
            <date>2012-05-06 14:39:50 -0700</date>
            <delta_ts>2012-05-06 22:23:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85747-20120506144236.patch</filename>
            <type>text/plain</type>
            <size>14030</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjBiY2M5MzI2YmE2YzZj
ZDY5YWZjNDA3NjZkNTU2Mzg0Y2MxMjI0Yy4uMDY3YTE5Y2E1OTUwZjNmZTljZGE4ZWQxMzlhYTUy
NWI1NjNiZTk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA1LTA2ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBQdXNoIHdoZWVsIGV2ZW50
cyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW4gcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MTM5MDc5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgd2hvbGUgYnVuY2ggb2YgbWVzc2FnZXMgYWRkZWQgdG8g
dGhlIG1lc3NhZ2UgcXVldWUsIG9yIGEgc2VyaWVzCisgICAgICAgIG9mIGxvbmctcnVubmluZyBt
ZXNzYWdlcywgY2F1c2UgdW5yZXNwb25zaXZlbmVzcy4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0
aGF0IHdlIGhhdmUKKyAgICAgICAgYSBzY3JvbGwgZXZlbnQgd2FpdGluZyBmb3IgYWNrbm93bGVk
Z21lbnQgZnJvbSB0aGUgd2ViIHByb2Nlc3MgYmVmb3JlIGl0IHNlbmRzIHRoZSBuZXh0CisgICAg
ICAgIGV2ZW50LiBBbmQgaW4gdGhlIHRpbWUgYmV0d2VlbiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQs
IGNhdXNpbmcgYSBsYXJnZSBiYWNrbG9nIG9mIHNjcm9sbAorICAgICAgICBldmVudHMgdG8gYmUg
aGVsZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBXZSBzaG91bGQgcHVzaCBuZXcgc2Ny
b2xsIGV2ZW50cyBpZiB0aGUgcXVldWUgYWNjdW11bGF0ZXMgdG9vIG1hbnkgb2YgdGhlbS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogVGhlIHZlY3RvciBtX2N1cnJlbnRs
eVByb2Nlc3NlZFdoZWVsRXZlbnRzIHVzZWQgdG8gaG9sZCB0aGUKKyAgICAgICAgc2VyaWVzIG9m
IHdoZWVsIGV2ZW50cyB0aGF0IHdlcmUgY29hbGVzY2VkIGFuZCBzZW50IGFzIGEgc2luZ2xlIHdo
ZWVsIGV2ZW50IHRvIHRoZSB3ZWIKKyAgICAgICAgcHJvY2Vzcy4gV2hlbiB0aGUgd2ViIHByb2Nl
c3MgYWNrbm93bGVkZ2VzIHRoaXMgd2l0aCBkaWRSZWNlaXZlRXZlbnQsIHRoZSBVSSBwcm9jZXNz
CisgICAgICAgIGNsZWFyZWQgdGhhdCB2ZWN0b3IsIHRoZW4gdHJpZWQgdG8gY29hbGVzY2UgdGhl
IG5leHQgd2hlZWwgZXZlbnQgdG8gc2VuZC4gTm93IHdlIG1pZ2h0IGhhdmUKKyAgICAgICAgbXVs
dGlwbGUgc2V0cyBvZiBjb2FsZXNjZWQgd2hlZWwgZXZlbnRzIHRoYXQgd2UgYXJlIHNlbmRpbmcg
dG8gdGhlIHdlYiBwcm9jZXNzLiBUbyBrZWVwCisgICAgICAgIHRyYWNrIG9mIHRoaXMgZ3JvdXBp
bmcgdGhlIGludGVybmFsIGNsYXNzIENvYWxlc2NlZFdoZWVsRXZlbnQgaXMgY3JlYXRlZCwgYW5k
CisgICAgICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMgbm93IGlzIGEgcXVldWUg
b2YgdGhlc2Ugb2JqZWN0cy4KKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgIChDb2Fs
ZXNjZWRXaGVlbEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDog
QWRkIG5ldyBjb25zdGFudCB3aGVlbEV2ZW50UXVldWVTaXplVGhyZXNob2xkIHJlcHJlc2VudGlu
ZworICAgICAgICB0aGUgdGhyZXNob2xkIG9mIHNjcm9sbCBldmVudHMgdG8gbG9vayBmb3IgYmVm
b3JlIHdlIHN0YXJ0IHB1c2hpbmcgZXZlbnRzLgorICAgICAgICAoV2ViS2l0OjpjYW5Db2FsZXNj
ZSk6IE1vdmUgc3RhdGljIGZ1bmN0aW9uIHNvIHRoYXQgaGFuZGxlV2hlZWxFdmVudCgpIGhhcyBh
Y2Nlc3MuIE5vIGNoYW5nZXMuCisgICAgICAgIChXZWJLaXQ6OmNvYWxlc2NlKTogTW92ZSBzdGF0
aWMgZnVuY3Rpb24gc28gdGhhdCBoYW5kbGVXaGVlbEV2ZW50KCkgaGFzIGFjY2Vzcy4gTm8gY2hh
bmdlcy4KKyAgICAgICAgKFdlYktpdDo6Y29hbGVzY2VkV2hlZWxFdmVudCk6IE1vdmUgc3RhdGlj
IGZ1bmN0aW9uIHNvIHRoYXQgaGFuZGxlV2hlZWxFdmVudCgpIGhhcyBhY2Nlc3MuIE5vIGNoYW5n
ZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudCk6IElm
IHdlIGFyZSBjdXJyZW50bHkgd2FpdGluZyBmb3IgYWNrbm93bGVkZ21lbnQKKyAgICAgICAgZnJv
bSB0aGUgd2ViIHByb2Nlc3MgdGhhdCBhIHdoZWVsIGV2ZW50IGhhcyBiZWVuIGhhbmRsZWQsIHdl
IGFkZCBpdCB0byB0aGUgcXVldWUuIFdlCisgICAgICAgIGNoZWNrIHRvIHNlZSB0aGF0IHRoZSBx
dWV1ZSBzaXplIGlzIHdpdGhpbiBvdXIgdGhyZXNob2xkIGJlZm9yZSB3ZSByZXR1cm4gZWFybHku
IE90aGVyd2lzZQorICAgICAgICB3ZSB3aWxsIHN0YXJ0IHB1c2hpbmcgZXZlbnRzIGluIHRoZSBx
dWV1ZS4gUmVmYWN0b3IgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uIGludG8KKyAgICAgICAgcHJv
Y2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCkgYW5kIHNlbmRXaGVlbEV2ZW50KCkuIElmIHdlIGFy
ZSBub3QgY3VycmVudGx5IHdhaXRpbmcgZm9yCisgICAgICAgIGFja25vd2xlZGdtZW50LCBub3Ig
aGF2ZSBldmVudHMgaW4gdGhlIHF1ZXVlLCB0aGVuIHdlIHNlbmQgdGhlIGN1cnJlbnQgd2hlZWwg
ZXZlbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc05leHRRdWV1ZWRX
aGVlbEV2ZW50KTogVHJ5IHRvIGNvYWxlc2NlIGV2ZW50cyBiYXNlZCBvbiB0aGUKKyAgICAgICAg
d2hlZWwgZXZlbnQgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlLCBhbmQgc2VuZCB0aGF0IGV2ZW50
IHRvIHRoZSB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZW5k
V2hlZWxFdmVudCk6IFJlZmFjdG9yZWQgZnJvbSBoYW5kbGVXaGVlbEV2ZW50KCkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUV2ZW50KTogSW5zdGVhZCBvZiBjbGVh
cmluZyBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLAorICAgICAgICB3aGljaCBjb250
YWluZWQgdGhlIHNldCBvZiBjb2FsZXNjZWQgd2hlZWwgZXZlbnRzLCB3ZSBwdWxsIHRoZSBoZWFk
IENvYWxlc2NlZFdoZWVsRXZlbnQsIHdoaWNoCisgICAgICAgIGNvbnRhaW5zIHRoZSBzYW1lIHNl
dCBvZiBldmVudHMuIFJlZmFjdG9yIHRvIHVzZSBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQo
KS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpDb2FsZXNjZWRXaGVlbEV2ZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OkNvYWxlc2NlZFdoZWVsRXZl
bnQ6OkNvYWxlc2NlZFdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OkNvYWxlc2NlZFdoZWVsRXZlbnQ6On5Db2FsZXNjZWRXaGVlbEV2ZW50KToKKwogMjAxMi0wNS0w
NSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyBTZXR0
aW5nL1ByZWZlcmVuY2UgdG8gZGlzYWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDQzY2RiNjkwZGQ0YTI4YTcx
YjcxYTM2MDk1M2I4MDczMDc3MmRmZS4uOGU2ODU4NTUxYWE0ZmJjOGI1MGI1ZTIyZjhmMjhkNWNm
YmY1NjgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTEwOSw2ICsxMDksOSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorLy8gUmVwcmVz
ZW50cyB0aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50cyB3ZSBjYW4gaG9sZCBpbiB0aGUgcXVldWUg
YmVmb3JlIHdlIHN0YXJ0IHB1c2hpbmcgdGhlbSBwcmVlbXB0aXZlbHkuCitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgd2hlZWxFdmVudFF1ZXVlU2l6ZVRocmVzaG9sZCA9IDEwOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV0tQYWdlRGVidWdQYWludEZsYWdzIFdlYlBhZ2VQcm94eTo6c19kZWJ1Z1Bh
aW50RmxhZ3MgPSAwOwpAQCAtOTg1LDYgKzk4OCw2OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICAgICAg
cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpNb3VzZUV2ZW50KGV2ZW50KSwgbV9w
YWdlSUQpOwogfQogCisjaWYgTUVSR0VfV0hFRUxfRVZFTlRTCitzdGF0aWMgYm9vbCBjYW5Db2Fs
ZXNjZShjb25zdCBXZWJXaGVlbEV2ZW50JiBhLCBjb25zdCBXZWJXaGVlbEV2ZW50JiBiKQorewor
ICAgIGlmIChhLnBvc2l0aW9uKCkgIT0gYi5wb3NpdGlvbigpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGEuZ2xvYmFsUG9zaXRpb24oKSAhPSBiLmdsb2JhbFBvc2l0aW9uKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYS5tb2RpZmllcnMoKSAhPSBiLm1vZGlmaWVy
cygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZ3JhbnVsYXJpdHkoKSAhPSBi
LmdyYW51bGFyaXR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBQTEFURk9STShNQUMp
CisgICAgaWYgKGEucGhhc2UoKSAhPSBiLnBoYXNlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoYS5tb21lbnR1bVBoYXNlKCkgIT0gYi5tb21lbnR1bVBoYXNlKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoYS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgIT0g
Yi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBXZWJXaGVlbEV2ZW50IGNvYWxl
c2NlKGNvbnN0IFdlYldoZWVsRXZlbnQmIGEsIGNvbnN0IFdlYldoZWVsRXZlbnQmIGIpCit7Cisg
ICAgQVNTRVJUKGNhbkNvYWxlc2NlKGEsIGIpKTsKKworICAgIEZsb2F0U2l6ZSBtZXJnZWREZWx0
YSA9IGEuZGVsdGEoKSArIGIuZGVsdGEoKTsKKyAgICBGbG9hdFNpemUgbWVyZ2VkV2hlZWxUaWNr
cyA9IGEud2hlZWxUaWNrcygpICsgYi53aGVlbFRpY2tzKCk7CisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCks
IGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3Jh
bnVsYXJpdHkoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Ny
b2xsaW5nRGVsdGFzKCksIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCksIGIuZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKCkpOworI2Vsc2UKKyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChX
ZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWRE
ZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLm1vZGlmaWVycygpLCBi
LnRpbWVzdGFtcCgpKTsKKyNlbmRpZgorfQorI2VuZGlmIC8vIE1FUkdFX1dIRUVMX0VWRU5UUwor
CitzdGF0aWMgV2ViV2hlZWxFdmVudCBjb2FsZXNjZWRXaGVlbEV2ZW50KERlcXVlPE5hdGl2ZVdl
YldoZWVsRXZlbnQ+JiBxdWV1ZSwgVmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+JiBjb2FsZXNj
ZWRFdmVudHMpCit7CisgICAgQVNTRVJUKCFxdWV1ZS5pc0VtcHR5KCkpOworICAgIEFTU0VSVChj
b2FsZXNjZWRFdmVudHMuaXNFbXB0eSgpKTsKKworI2lmIE1FUkdFX1dIRUVMX0VWRU5UUworICAg
IE5hdGl2ZVdlYldoZWVsRXZlbnQgZmlyc3RFdmVudCA9IHF1ZXVlLnRha2VGaXJzdCgpOworICAg
IGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7CisKKyAgICBXZWJXaGVlbEV2ZW50
IGV2ZW50ID0gZmlyc3RFdmVudDsKKyAgICB3aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSAmJiBjYW5D
b2FsZXNjZShldmVudCwgcXVldWUuZmlyc3QoKSkpIHsKKyAgICAgICAgTmF0aXZlV2ViV2hlZWxF
dmVudCBmaXJzdEV2ZW50ID0gcXVldWUudGFrZUZpcnN0KCk7CisgICAgICAgIGNvYWxlc2NlZEV2
ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7CisgICAgICAgIGV2ZW50ID0gY29hbGVzY2UoZXZlbnQs
IGZpcnN0RXZlbnQpOworICAgIH0KKworICAgIHJldHVybiBldmVudDsKKyNlbHNlCisgICAgd2hp
bGUgKCFxdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgIGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQocXVl
dWUudGFrZUZpcnN0KCkpOworICAgIHJldHVybiBjb2FsZXNjZWRFdmVudHMubGFzdCgpOworI2Vu
ZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIGlmICghaXNWYWxpZCgpKQpAQCAtOTkyLDE5
ICsxMDU3LDQyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5h
dGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogCiAgICAgaWYgKCFtX2N1cnJlbnRseVByb2Nlc3Nl
ZFdoZWVsRXZlbnRzLmlzRW1wdHkoKSkgewogICAgICAgICBtX3doZWVsRXZlbnRRdWV1ZS5hcHBl
bmQoZXZlbnQpOworICAgICAgICBpZiAobV93aGVlbEV2ZW50UXVldWUuc2l6ZSgpIDwgd2hlZWxF
dmVudFF1ZXVlU2l6ZVRocmVzaG9sZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLy8g
VGhlIHF1ZXVlIGhhcyB0b28gbWFueSB3aGVlbCBldmVudHMsIHNvIHB1c2ggYSBuZXcgZXZlbnQu
CisgICAgfQorCisgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgcHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLmFwcGVuZChldmVudCk7Cisg
ICAgUmVmUHRyPENvYWxlc2NlZFdoZWVsRXZlbnQ+IGNvYWxlc2NlZFdoZWVsRXZlbnQgPSBDb2Fs
ZXNjZWRXaGVlbEV2ZW50OjpjcmVhdGUoKTsKKyAgICBjb2FsZXNjZWRXaGVlbEV2ZW50LT5ldmVu
dHMuYXBwZW5kKGV2ZW50KTsKKyAgICBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLmFw
cGVuZChjb2FsZXNjZWRXaGVlbEV2ZW50LnJlbGVhc2UoKSk7CisgICAgc2VuZFdoZWVsRXZlbnQo
ZXZlbnQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2
ZW50KCkKK3sKKyAgICBSZWZQdHI8Q29hbGVzY2VkV2hlZWxFdmVudD4gbmV4dENvYWxlc2NlZEV2
ZW50ID0gQ29hbGVzY2VkV2hlZWxFdmVudDo6Y3JlYXRlKCk7CisgICAgV2ViV2hlZWxFdmVudCBu
ZXh0V2hlZWxFdmVudCA9IGNvYWxlc2NlZFdoZWVsRXZlbnQobV93aGVlbEV2ZW50UXVldWUsIG5l
eHRDb2FsZXNjZWRFdmVudC0+ZXZlbnRzKTsKKyAgICBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVs
RXZlbnRzLmFwcGVuZChuZXh0Q29hbGVzY2VkRXZlbnQucmVsZWFzZSgpKTsKKyAgICBzZW5kV2hl
ZWxFdmVudChuZXh0V2hlZWxFdmVudCk7Cit9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZW5kV2hl
ZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKK3sKICAgICBwcm9jZXNzKCktPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKIAogICAgIGlmIChtX3Nob3VsZFNlbmRFdmVu
dHNTeW5jaHJvbm91c2x5KSB7CiAgICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogICAgICAg
ICBwcm9jZXNzKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaGVlbEV2ZW50U3luY0Zv
clRlc3RpbmcoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6V2hlZWxFdmVudFN5bmNGb3JUZXN0
aW5nOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQpOwogICAgICAgICBkaWRSZWNlaXZlRXZlbnQo
ZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcHJvY2VzcygpLT5z
ZW5kKE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OldoZWVsRXZlbnQobV9wYWdlSUQsIGV2ZW50
LCBjYW5Hb0JhY2soKSwgY2FuR29Gb3J3YXJkKCkpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpXaGVl
bEV2ZW50KG1fcGFnZUlELCBldmVudCwgY2FuR29CYWNrKCksIGNhbkdvRm9yd2FyZCgpKSwgMCk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQpAQCAtMjk2Nyw2OCArMzA1NSw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRp
bE1vdXNlTW92ZXMpCiAgICAgbV9wYWdlQ2xpZW50LT5zZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoaGlkZGVuVW50aWxNb3VzZU1vdmVzKTsKIH0KIAotI2lmIE1FUkdFX1dIRUVMX0VWRU5U
Uwotc3RhdGljIGJvb2wgY2FuQ29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3Qg
V2ViV2hlZWxFdmVudCYgYikKLXsKLSAgICBpZiAoYS5wb3NpdGlvbigpICE9IGIucG9zaXRpb24o
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChhLmdsb2JhbFBvc2l0aW9uKCkgIT0g
Yi5nbG9iYWxQb3NpdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGEubW9k
aWZpZXJzKCkgIT0gYi5tb2RpZmllcnMoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChhLmdyYW51bGFyaXR5KCkgIT0gYi5ncmFudWxhcml0eSgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChhLnBoYXNlKCkgIT0gYi5waGFzZSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGEubW9tZW50dW1QaGFzZSgpICE9IGIubW9t
ZW50dW1QaGFzZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGEuaGFzUHJlY2lz
ZVNjcm9sbGluZ0RlbHRhcygpICE9IGIuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGF0
aWMgV2ViV2hlZWxFdmVudCBjb2FsZXNjZShjb25zdCBXZWJXaGVlbEV2ZW50JiBhLCBjb25zdCBX
ZWJXaGVlbEV2ZW50JiBiKQotewotICAgIEFTU0VSVChjYW5Db2FsZXNjZShhLCBiKSk7Ci0KLSAg
ICBGbG9hdFNpemUgbWVyZ2VkRGVsdGEgPSBhLmRlbHRhKCkgKyBiLmRlbHRhKCk7Ci0gICAgRmxv
YXRTaXplIG1lcmdlZFdoZWVsVGlja3MgPSBhLndoZWVsVGlja3MoKSArIGIud2hlZWxUaWNrcygp
OwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50
OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdlZERlbHRhLCBt
ZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIucGhhc2UoKSwgYi5tb21lbnR1bVBo
YXNlKCksIGIuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpLCBiLm1vZGlmaWVycygpLCBiLnRp
bWVzdGFtcCgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpKTsKLSNlbHNlCi0gICAg
cmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xv
YmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJp
dHkoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7Ci0jZW5kaWYKLX0KLSNlbmRpZgot
Ci1zdGF0aWMgV2ViV2hlZWxFdmVudCBjb2FsZXNjZWRXaGVlbEV2ZW50KERlcXVlPE5hdGl2ZVdl
YldoZWVsRXZlbnQ+JiBxdWV1ZSwgVmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+JiBjb2FsZXNj
ZWRFdmVudHMpCi17Ci0gICAgQVNTRVJUKCFxdWV1ZS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChj
b2FsZXNjZWRFdmVudHMuaXNFbXB0eSgpKTsKLQotI2lmIE1FUkdFX1dIRUVMX0VWRU5UUwotICAg
IE5hdGl2ZVdlYldoZWVsRXZlbnQgZmlyc3RFdmVudCA9IHF1ZXVlLnRha2VGaXJzdCgpOwotICAg
IGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7Ci0KLSAgICBXZWJXaGVlbEV2ZW50
IGV2ZW50ID0gZmlyc3RFdmVudDsKLSAgICB3aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSAmJiBjYW5D
b2FsZXNjZShldmVudCwgcXVldWUuZmlyc3QoKSkpIHsKLSAgICAgICAgTmF0aXZlV2ViV2hlZWxF
dmVudCBmaXJzdEV2ZW50ID0gcXVldWUudGFrZUZpcnN0KCk7Ci0gICAgICAgIGNvYWxlc2NlZEV2
ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7Ci0gICAgICAgIGV2ZW50ID0gY29hbGVzY2UoZXZlbnQs
IGZpcnN0RXZlbnQpOwotICAgIH0KLQotICAgIHJldHVybiBldmVudDsKLSNlbHNlCi0gICAgd2hp
bGUgKCFxdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQocXVl
dWUudGFrZUZpcnN0KCkpOwotICAgIHJldHVybiBjb2FsZXNjZWRFdmVudHMubGFzdCgpOwotI2Vu
ZGlmCi19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3Bh
cXVlVHlwZSwgYm9vbCBoYW5kbGVkKQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6VHlwZT4ob3BhcXVlVHlwZSk7CkBAIC0zMDkxLDE5ICszMTE3LDE0
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlw
ZSwgYm9vbCBoYW5kbGVkKQogICAgIGNhc2UgV2ViRXZlbnQ6OldoZWVsOiB7CiAgICAgICAgIEFT
U0VSVCghbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5pc0VtcHR5KCkpOwogCisgICAg
ICAgIFJlZlB0cjxDb2FsZXNjZWRXaGVlbEV2ZW50PiBvbGRlc3RDb2FsZXNjZWRFdmVudCA9IG1f
Y3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMudGFrZUZpcnN0KCk7CisKICAgICAgICAgLy8g
RklYTUU6IERpc3BhdGNoIGFkZGl0aW9uYWwgZXZlbnRzIHRvIHRoZSBkaWROb3RIYW5kbGVXaGVl
bEV2ZW50IGNsaWVudCBmdW5jdGlvbi4KICAgICAgICAgaWYgKCFoYW5kbGVkICYmIG1fdWlDbGll
bnQuaW1wbGVtZW50c0RpZE5vdEhhbmRsZVdoZWVsRXZlbnQoKSkKLSAgICAgICAgICAgIG1fdWlD
bGllbnQuZGlkTm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBtX2N1cnJlbnRseVByb2Nlc3NlZFdo
ZWVsRXZlbnRzLmxhc3QoKSk7Ci0KLSAgICAgICAgbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2
ZW50cy5jbGVhcigpOwotCi0gICAgICAgIGlmICghbV93aGVlbEV2ZW50UXVldWUuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICBXZWJXaGVlbEV2ZW50IG5ld1doZWVsRXZlbnQgPSBjb2FsZXNjZWRX
aGVlbEV2ZW50KG1fd2hlZWxFdmVudFF1ZXVlLCBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZl
bnRzKTsKLQotICAgICAgICAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0
YXJ0KCk7Ci0gICAgICAgICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0
Y2hlcjo6V2hlZWxFdmVudChtX3BhZ2VJRCwgbmV3V2hlZWxFdmVudCwgY2FuR29CYWNrKCksIGNh
bkdvRm9yd2FyZCgpKSwgMCk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIG1fdWlDbGllbnQuZGlk
Tm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBvbGRlc3RDb2FsZXNjZWRFdmVudC0+ZXZlbnRzLmxh
c3QoKSk7CiAKKyAgICAgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCkBAIC0zNzYzLDQgKzM3ODQsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUFs
dGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKIAorUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk6OkNvYWxlc2NlZFdoZWVs
RXZlbnQ+IFdlYlBhZ2VQcm94eTo6Q29hbGVzY2VkV2hlZWxFdmVudDo6Y3JlYXRlKCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBhZ2VQcm94eTo6Q29hbGVzY2VkV2hlZWxFdmVudCgp
KTsKK30KKworV2ViUGFnZVByb3h5OjpDb2FsZXNjZWRXaGVlbEV2ZW50OjpDb2FsZXNjZWRXaGVl
bEV2ZW50KCkKK3sKK30KKworV2ViUGFnZVByb3h5OjpDb2FsZXNjZWRXaGVlbEV2ZW50Ojp+Q29h
bGVzY2VkV2hlZWxFdmVudCgpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGEzZTliYjhmNzliYzA0N2E3YTgx
OGIxZTJhYjM0MjUwZjlhMWM2MzcuLjI2ZDUyMTcwOGI5ZmQ4MWI3ZjA1ODFlMjdiMDNlY2Y2YzZl
YmVjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTkwMyw2
ICs5MDMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93ZWRQbHVnaW5HZW9tZXRyeURpZENo
YW5nZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCk7CiAjZW5kaWYKIAorICAgIHZvaWQg
cHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCk7CisgICAgdm9pZCBzZW5kV2hlZWxFdmVudChj
b25zdCBXZWJXaGVlbEV2ZW50Jik7CisKICAgICBQYWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7CiAg
ICAgV2ViTG9hZGVyQ2xpZW50IG1fbG9hZGVyQ2xpZW50OwogICAgIFdlYlBvbGljeUNsaWVudCBt
X3BvbGljeUNsaWVudDsKQEAgLTEwMTksMTIgKzEwMjIsMjAgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpQb2xpY3lBY3Rpb24gbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbjsKICAg
ICB1aW50NjRfdCBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWRJRDsKIAorICAg
IGNsYXNzIENvYWxlc2NlZFdoZWVsRXZlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxDb2FsZXNjZWRX
aGVlbEV2ZW50PiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb2Fs
ZXNjZWRXaGVlbEV2ZW50PiBjcmVhdGUoKTsKKyAgICAgICAgQ29hbGVzY2VkV2hlZWxFdmVudCgp
OworICAgICAgICB2aXJ0dWFsIH5Db2FsZXNjZWRXaGVlbEV2ZW50KCk7CisgICAgICAgIFZlY3Rv
cjxOYXRpdmVXZWJXaGVlbEV2ZW50PiBldmVudHM7CisgICAgfTsKKwogI2lmIEVOQUJMRShHRVNU
VVJFX0VWRU5UUykKICAgICBEZXF1ZTxXZWJHZXN0dXJlRXZlbnQ+IG1fZ2VzdHVyZUV2ZW50UXVl
dWU7CiAjZW5kaWYKICAgICBEZXF1ZTxOYXRpdmVXZWJLZXlib2FyZEV2ZW50PiBtX2tleUV2ZW50
UXVldWU7CiAgICAgRGVxdWU8TmF0aXZlV2ViV2hlZWxFdmVudD4gbV93aGVlbEV2ZW50UXVldWU7
Ci0gICAgVmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+IG1fY3VycmVudGx5UHJvY2Vzc2VkV2hl
ZWxFdmVudHM7CisgICAgRGVxdWU8UmVmUHRyPENvYWxlc2NlZFdoZWVsRXZlbnQ+ID4gbV9jdXJy
ZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50czsKIAogICAgIGJvb2wgbV9wcm9jZXNzaW5nTW91c2VN
b3ZlRXZlbnQ7CiAgICAgT3duUHRyPE5hdGl2ZVdlYk1vdXNlRXZlbnQ+IG1fbmV4dE1vdXNlTW92
ZUV2ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140475</attachid>
            <date>2012-05-06 22:23:50 -0700</date>
            <delta_ts>2012-05-08 15:07:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85747-20120506222635.patch</filename>
            <type>text/plain</type>
            <size>12835</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjBiY2M5MzI2YmE2YzZj
ZDY5YWZjNDA3NjZkNTU2Mzg0Y2MxMjI0Yy4uMWMyNDIzNTU1MGZjMDg5MGU5ZWEzYjVkODI4ZGQy
ZjVhMWUzYjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTA2ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBQdXNoIHdoZWVsIGV2ZW50
cyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW4gcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MTM5MDc5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgd2hvbGUgYnVuY2ggb2YgbWVzc2FnZXMgYWRkZWQgdG8g
dGhlIG1lc3NhZ2UgcXVldWUsIG9yIGEgc2VyaWVzCisgICAgICAgIG9mIGxvbmctcnVubmluZyBt
ZXNzYWdlcywgY2F1c2UgdW5yZXNwb25zaXZlbmVzcy4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0
aGF0IHdlIGhhdmUKKyAgICAgICAgYSBzY3JvbGwgZXZlbnQgd2FpdGluZyBmb3IgYWNrbm93bGVk
Z21lbnQgZnJvbSB0aGUgd2ViIHByb2Nlc3MgYmVmb3JlIGl0IHNlbmRzIHRoZSBuZXh0CisgICAg
ICAgIGV2ZW50LiBBbmQgaW4gdGhlIHRpbWUgYmV0d2VlbiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQs
IGNhdXNpbmcgYSBsYXJnZSBiYWNrbG9nIG9mIHNjcm9sbAorICAgICAgICBldmVudHMgdG8gYmUg
aGVsZCBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBXZSBzaG91bGQgcHVzaCBuZXcgc2Ny
b2xsIGV2ZW50cyBpZiB0aGUgcXVldWUgYWNjdW11bGF0ZXMgdG9vIG1hbnkgb2YgdGhlbS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogVGhlIHZlY3RvciBtX2N1cnJlbnRs
eVByb2Nlc3NlZFdoZWVsRXZlbnRzIHVzZWQgdG8gaG9sZCB0aGUKKyAgICAgICAgc2VyaWVzIG9m
IHdoZWVsIGV2ZW50cyB0aGF0IHdlcmUgY29hbGVzY2VkIGFuZCBzZW50IGFzIGEgc2luZ2xlIHdo
ZWVsIGV2ZW50IHRvIHRoZSB3ZWIKKyAgICAgICAgcHJvY2Vzcy4gV2hlbiB0aGUgd2ViIHByb2Nl
c3MgYWNrbm93bGVkZ2VzIHRoaXMgd2l0aCBkaWRSZWNlaXZlRXZlbnQsIHRoZSBVSSBwcm9jZXNz
CisgICAgICAgIGNsZWFyZWQgdGhhdCB2ZWN0b3IsIHRoZW4gdHJpZWQgdG8gY29hbGVzY2UgdGhl
IG5leHQgd2hlZWwgZXZlbnQgdG8gc2VuZC4gTm93IHdlIG1pZ2h0IGhhdmUKKyAgICAgICAgbXVs
dGlwbGUgc2V0cyBvZiBjb2FsZXNjZWQgd2hlZWwgZXZlbnRzIHRoYXQgd2UgYXJlIHNlbmRpbmcg
dG8gdGhlIHdlYiBwcm9jZXNzLiBUbyBrZWVwCisgICAgICAgIHRyYWNrIG9mIHRoZXNlIHNldHMs
IG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMgbm93IGlzIGEgcXVldWUgb2YgVmVjdG9y
cy4KKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6IEFkZCBuZXcgY29uc3RhbnQgd2hlZWxFdmVudFF1ZXVlU2l6ZVRocmVzaG9sZCBy
ZXByZXNlbnRpbmcKKyAgICAgICAgdGhlIHRocmVzaG9sZCBvZiBzY3JvbGwgZXZlbnRzIHRvIGxv
b2sgZm9yIGJlZm9yZSB3ZSBzdGFydCBwdXNoaW5nIGV2ZW50cy4KKyAgICAgICAgKFdlYktpdDo6
Y2FuQ29hbGVzY2UpOiBNb3ZlIHN0YXRpYyBmdW5jdGlvbiBzbyB0aGF0IGhhbmRsZVdoZWVsRXZl
bnQoKSBoYXMgYWNjZXNzLiBObyBjaGFuZ2VzLgorICAgICAgICAoV2ViS2l0Ojpjb2FsZXNjZSk6
IE1vdmUgc3RhdGljIGZ1bmN0aW9uIHNvIHRoYXQgaGFuZGxlV2hlZWxFdmVudCgpIGhhcyBhY2Nl
c3MuIE5vIGNoYW5nZXMuCisgICAgICAgIChXZWJLaXQ6OmNvYWxlc2NlZFdoZWVsRXZlbnQpOiBN
b3ZlIHN0YXRpYyBmdW5jdGlvbiBzbyB0aGF0IGhhbmRsZVdoZWVsRXZlbnQoKSBoYXMgYWNjZXNz
LiBObyBjaGFuZ2VzLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQpOiBJZiB3ZSBhcmUgY3VycmVudGx5IHdhaXRpbmcgZm9yIGFja25vd2xlZGdtZW50Cisg
ICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRoYXQgYSB3aGVlbCBldmVudCBoYXMgYmVlbiBo
YW5kbGVkLCB3ZSBhZGQgaXQgdG8gdGhlIHF1ZXVlLiBXZQorICAgICAgICBjaGVjayB0byBzZWUg
dGhhdCB0aGUgcXVldWUgc2l6ZSBpcyB3aXRoaW4gb3VyIHRocmVzaG9sZCBiZWZvcmUgd2UgcmV0
dXJuIGVhcmx5LiBPdGhlcndpc2UKKyAgICAgICAgd2Ugd2lsbCBzdGFydCBwdXNoaW5nIGV2ZW50
cyBpbiB0aGUgcXVldWUuIFJlZmFjdG9yIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbiBpbnRvCisg
ICAgICAgIHByb2Nlc3NOZXh0UXVldWVkV2hlZWxFdmVudCgpIGFuZCBzZW5kV2hlZWxFdmVudCgp
LiBJZiB3ZSBhcmUgbm90IGN1cnJlbnRseSB3YWl0aW5nIGZvcgorICAgICAgICBhY2tub3dsZWRn
bWVudCwgbm9yIGhhdmUgZXZlbnRzIGluIHRoZSBxdWV1ZSwgdGhlbiB3ZSBzZW5kIHRoZSBjdXJy
ZW50IHdoZWVsIGV2ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NO
ZXh0UXVldWVkV2hlZWxFdmVudCk6IFRyeSB0byBjb2FsZXNjZSBldmVudHMgYmFzZWQgb24gdGhl
CisgICAgICAgIHdoZWVsIGV2ZW50IGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSwgYW5kIHNlbmQg
dGhhdCBldmVudCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2VuZFdoZWVsRXZlbnQpOiBSZWZhY3RvcmVkIGZyb20gaGFuZGxlV2hlZWxFdmVudCgp
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCk6IEluc3Rl
YWQgb2YgY2xlYXJpbmcgbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cywKKyAgICAgICAg
d2hpY2ggY29udGFpbmVkIHRoZSBzZXQgb2Ygb25lIGNvYWxlc2NlZCB3aGVlbCBldmVudCwgd2Ug
cHVsbCB0aGUgaGVhZCBWZWN0b3IsIHdoaWNoCisgICAgICAgIGNvbnRhaW5zIHRoZSBzYW1lIHNl
dCBvZiBldmVudHMuIFJlZmFjdG9yIHRvIHVzZSBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQo
KS4KKwogMjAxMi0wNS0wNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIG5ldyBTZXR0aW5nL1ByZWZlcmVuY2UgdG8gZGlzYWJsZSByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDQz
Y2RiNjkwZGQ0YTI4YTcxYjcxYTM2MDk1M2I4MDczMDc3MmRmZS4uMTE5ZGEyZTFlYTBjZDNlNDRi
Mzg2ZmQzYTFlMTBhYWZmMDkxYWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTEwOSw2ICsxMDksOSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAorLy8gUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50cyB3ZSBjYW4gaG9s
ZCBpbiB0aGUgcXVldWUgYmVmb3JlIHdlIHN0YXJ0IHB1c2hpbmcgdGhlbSBwcmVlbXB0aXZlbHku
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgd2hlZWxFdmVudFF1ZXVlU2l6ZVRocmVzaG9sZCA9IDEw
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV0tQYWdlRGVidWdQYWludEZsYWdzIFdlYlBhZ2VQ
cm94eTo6c19kZWJ1Z1BhaW50RmxhZ3MgPSAwOwpAQCAtOTg1LDYgKzk4OCw2OCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50JiBl
dmVudCkKICAgICAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpNb3VzZUV2
ZW50KGV2ZW50KSwgbV9wYWdlSUQpOwogfQogCisjaWYgTUVSR0VfV0hFRUxfRVZFTlRTCitzdGF0
aWMgYm9vbCBjYW5Db2FsZXNjZShjb25zdCBXZWJXaGVlbEV2ZW50JiBhLCBjb25zdCBXZWJXaGVl
bEV2ZW50JiBiKQoreworICAgIGlmIChhLnBvc2l0aW9uKCkgIT0gYi5wb3NpdGlvbigpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZ2xvYmFsUG9zaXRpb24oKSAhPSBiLmdsb2Jh
bFBvc2l0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYS5tb2RpZmllcnMo
KSAhPSBiLm1vZGlmaWVycygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZ3Jh
bnVsYXJpdHkoKSAhPSBiLmdyYW51bGFyaXR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgaWYgKGEucGhhc2UoKSAhPSBiLnBoYXNlKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoYS5tb21lbnR1bVBoYXNlKCkgIT0gYi5tb21lbnR1bVBo
YXNlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYS5oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzKCkgIT0gYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBXZWJX
aGVlbEV2ZW50IGNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQmIGEsIGNvbnN0IFdlYldoZWVs
RXZlbnQmIGIpCit7CisgICAgQVNTRVJUKGNhbkNvYWxlc2NlKGEsIGIpKTsKKworICAgIEZsb2F0
U2l6ZSBtZXJnZWREZWx0YSA9IGEuZGVsdGEoKSArIGIuZGVsdGEoKTsKKyAgICBGbG9hdFNpemUg
bWVyZ2VkV2hlZWxUaWNrcyA9IGEud2hlZWxUaWNrcygpICsgYi53aGVlbFRpY2tzKCk7CisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdo
ZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwg
Yi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1w
KCksIGIuZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkpOworI2Vsc2UKKyAgICByZXR1cm4g
V2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3Np
dGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBi
Lm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpKTsKKyNlbmRpZgorfQorI2VuZGlmIC8vIE1FUkdF
X1dIRUVMX0VWRU5UUworCitzdGF0aWMgV2ViV2hlZWxFdmVudCBjb2FsZXNjZWRXaGVlbEV2ZW50
KERlcXVlPE5hdGl2ZVdlYldoZWVsRXZlbnQ+JiBxdWV1ZSwgVmVjdG9yPE5hdGl2ZVdlYldoZWVs
RXZlbnQ+JiBjb2FsZXNjZWRFdmVudHMpCit7CisgICAgQVNTRVJUKCFxdWV1ZS5pc0VtcHR5KCkp
OworICAgIEFTU0VSVChjb2FsZXNjZWRFdmVudHMuaXNFbXB0eSgpKTsKKworI2lmIE1FUkdFX1dI
RUVMX0VWRU5UUworICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQgZmlyc3RFdmVudCA9IHF1ZXVlLnRh
a2VGaXJzdCgpOworICAgIGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7CisKKyAg
ICBXZWJXaGVlbEV2ZW50IGV2ZW50ID0gZmlyc3RFdmVudDsKKyAgICB3aGlsZSAoIXF1ZXVlLmlz
RW1wdHkoKSAmJiBjYW5Db2FsZXNjZShldmVudCwgcXVldWUuZmlyc3QoKSkpIHsKKyAgICAgICAg
TmF0aXZlV2ViV2hlZWxFdmVudCBmaXJzdEV2ZW50ID0gcXVldWUudGFrZUZpcnN0KCk7CisgICAg
ICAgIGNvYWxlc2NlZEV2ZW50cy5hcHBlbmQoZmlyc3RFdmVudCk7CisgICAgICAgIGV2ZW50ID0g
Y29hbGVzY2UoZXZlbnQsIGZpcnN0RXZlbnQpOworICAgIH0KKworICAgIHJldHVybiBldmVudDsK
KyNlbHNlCisgICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgIGNvYWxlc2NlZEV2
ZW50cy5hcHBlbmQocXVldWUudGFrZUZpcnN0KCkpOworICAgIHJldHVybiBjb2FsZXNjZWRFdmVu
dHMubGFzdCgpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIGlmICghaXNWYWxp
ZCgpKQpAQCAtOTkyLDE5ICsxMDU3LDQyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogCiAgICAgaWYgKCFtX2N1
cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLmlzRW1wdHkoKSkgewogICAgICAgICBtX3doZWVs
RXZlbnRRdWV1ZS5hcHBlbmQoZXZlbnQpOworICAgICAgICBpZiAobV93aGVlbEV2ZW50UXVldWUu
c2l6ZSgpIDwgd2hlZWxFdmVudFF1ZXVlU2l6ZVRocmVzaG9sZCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgLy8gVGhlIHF1ZXVlIGhhcyB0b28gbWFueSB3aGVlbCBldmVudHMsIHNvIHB1
c2ggYSBuZXcgZXZlbnQuCisgICAgfQorCisgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgcHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLmFw
cGVuZChldmVudCk7CisgICAgT3duUHRyPFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50PiA+IGNv
YWxlc2NlZFdoZWVsRXZlbnQgPSBhZG9wdFB0cihuZXcgVmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZl
bnQ+KTsKKyAgICBjb2FsZXNjZWRXaGVlbEV2ZW50LT5hcHBlbmQoZXZlbnQpOworICAgIG1fY3Vy
cmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5kKGNvYWxlc2NlZFdoZWVsRXZlbnQucmVs
ZWFzZSgpKTsKKyAgICBzZW5kV2hlZWxFdmVudChldmVudCk7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKQoreworICAgIE93blB0cjxWZWN0b3I8
TmF0aXZlV2ViV2hlZWxFdmVudD4gPiBuZXh0Q29hbGVzY2VkRXZlbnQgPSBhZG9wdFB0cihuZXcg
VmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+KTsKKyAgICBXZWJXaGVlbEV2ZW50IG5leHRXaGVl
bEV2ZW50ID0gY29hbGVzY2VkV2hlZWxFdmVudChtX3doZWVsRXZlbnRRdWV1ZSwgKm5leHRDb2Fs
ZXNjZWRFdmVudC5nZXQoKSk7CisgICAgbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5h
cHBlbmQobmV4dENvYWxlc2NlZEV2ZW50LnJlbGVhc2UoKSk7CisgICAgc2VuZFdoZWVsRXZlbnQo
bmV4dFdoZWVsRXZlbnQpOworfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZFdoZWVsRXZlbnQo
Y29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCit7CiAgICAgcHJvY2VzcygpLT5yZXNwb25zaXZl
bmVzc1RpbWVyKCktPnN0YXJ0KCk7CiAKICAgICBpZiAobV9zaG91bGRTZW5kRXZlbnRzU3luY2hy
b25vdXNseSkgewogICAgICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKICAgICAgICAgcHJvY2Vz
cygpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6V2hlZWxFdmVudFN5bmNGb3JUZXN0aW5n
KGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OldoZWVsRXZlbnRTeW5jRm9yVGVzdGluZzo6UmVw
bHkoaGFuZGxlZCksIG1fcGFnZUlEKTsKICAgICAgICAgZGlkUmVjZWl2ZUV2ZW50KGV2ZW50LnR5
cGUoKSwgaGFuZGxlZCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6RXZlbnREaXNwYXRjaGVyOjpXaGVlbEV2ZW50KG1fcGFnZUlELCBldmVudCwgY2FuR29C
YWNrKCksIGNhbkdvRm9yd2FyZCgpKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudCht
X3BhZ2VJRCwgZXZlbnQsIGNhbkdvQmFjaygpLCBjYW5Hb0ZvcndhcmQoKSksIDApOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50JiBldmVudCkKQEAgLTI5NjcsNjggKzMwNTUsNiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50aWxNb3VzZU1v
dmVzKQogICAgIG1fcGFnZUNsaWVudC0+c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhp
ZGRlblVudGlsTW91c2VNb3Zlcyk7CiB9CiAKLSNpZiBNRVJHRV9XSEVFTF9FVkVOVFMKLXN0YXRp
YyBib29sIGNhbkNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQmIGEsIGNvbnN0IFdlYldoZWVs
RXZlbnQmIGIpCi17Ci0gICAgaWYgKGEucG9zaXRpb24oKSAhPSBiLnBvc2l0aW9uKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYS5nbG9iYWxQb3NpdGlvbigpICE9IGIuZ2xvYmFs
UG9zaXRpb24oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChhLm1vZGlmaWVycygp
ICE9IGIubW9kaWZpZXJzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYS5ncmFu
dWxhcml0eSgpICE9IGIuZ3JhbnVsYXJpdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2lm
IFBMQVRGT1JNKE1BQykKLSAgICBpZiAoYS5waGFzZSgpICE9IGIucGhhc2UoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChhLm1vbWVudHVtUGhhc2UoKSAhPSBiLm1vbWVudHVtUGhh
c2UoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChhLmhhc1ByZWNpc2VTY3JvbGxp
bmdEZWx0YXMoKSAhPSBiLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIFdlYldo
ZWVsRXZlbnQgY29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViV2hlZWxF
dmVudCYgYikKLXsKLSAgICBBU1NFUlQoY2FuQ29hbGVzY2UoYSwgYikpOwotCi0gICAgRmxvYXRT
aXplIG1lcmdlZERlbHRhID0gYS5kZWx0YSgpICsgYi5kZWx0YSgpOwotICAgIEZsb2F0U2l6ZSBt
ZXJnZWRXaGVlbFRpY2tzID0gYS53aGVlbFRpY2tzKCkgKyBiLndoZWVsVGlja3MoKTsKLQotI2lm
IFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWws
IGIucG9zaXRpb24oKSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hl
ZWxUaWNrcywgYi5ncmFudWxhcml0eSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBi
Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAo
KSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSk7Ci0jZWxzZQotICAgIHJldHVybiBX
ZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0
aW9uKCksIG1lcmdlZERlbHRhLCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIu
bW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOwotI2VuZGlmCi19Ci0jZW5kaWYKLQotc3RhdGlj
IFdlYldoZWVsRXZlbnQgY29hbGVzY2VkV2hlZWxFdmVudChEZXF1ZTxOYXRpdmVXZWJXaGVlbEV2
ZW50PiYgcXVldWUsIFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50PiYgY29hbGVzY2VkRXZlbnRz
KQotewotICAgIEFTU0VSVCghcXVldWUuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoY29hbGVzY2Vk
RXZlbnRzLmlzRW1wdHkoKSk7Ci0KLSNpZiBNRVJHRV9XSEVFTF9FVkVOVFMKLSAgICBOYXRpdmVX
ZWJXaGVlbEV2ZW50IGZpcnN0RXZlbnQgPSBxdWV1ZS50YWtlRmlyc3QoKTsKLSAgICBjb2FsZXNj
ZWRFdmVudHMuYXBwZW5kKGZpcnN0RXZlbnQpOwotCi0gICAgV2ViV2hlZWxFdmVudCBldmVudCA9
IGZpcnN0RXZlbnQ7Ci0gICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkgJiYgY2FuQ29hbGVzY2Uo
ZXZlbnQsIHF1ZXVlLmZpcnN0KCkpKSB7Ci0gICAgICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQgZmly
c3RFdmVudCA9IHF1ZXVlLnRha2VGaXJzdCgpOwotICAgICAgICBjb2FsZXNjZWRFdmVudHMuYXBw
ZW5kKGZpcnN0RXZlbnQpOwotICAgICAgICBldmVudCA9IGNvYWxlc2NlKGV2ZW50LCBmaXJzdEV2
ZW50KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZXZlbnQ7Ci0jZWxzZQotICAgIHdoaWxlICghcXVl
dWUuaXNFbXB0eSgpKQotICAgICAgICBjb2FsZXNjZWRFdmVudHMuYXBwZW5kKHF1ZXVlLnRha2VG
aXJzdCgpKTsKLSAgICByZXR1cm4gY29hbGVzY2VkRXZlbnRzLmxhc3QoKTsKLSNlbmRpZgotfQot
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUs
IGJvb2wgaGFuZGxlZCkKIHsKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8
V2ViRXZlbnQ6OlR5cGU+KG9wYXF1ZVR5cGUpOwpAQCAtMzA5MSwxOSArMzExNywxNCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wg
aGFuZGxlZCkKICAgICBjYXNlIFdlYkV2ZW50OjpXaGVlbDogewogICAgICAgICBBU1NFUlQoIW1f
Y3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuaXNFbXB0eSgpKTsKIAorICAgICAgICBPd25Q
dHI8VmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+ID4gb2xkZXN0Q29hbGVzY2VkRXZlbnQgPSBt
X2N1cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzLnRha2VGaXJzdCgpOworCiAgICAgICAgIC8v
IEZJWE1FOiBEaXNwYXRjaCBhZGRpdGlvbmFsIGV2ZW50cyB0byB0aGUgZGlkTm90SGFuZGxlV2hl
ZWxFdmVudCBjbGllbnQgZnVuY3Rpb24uCiAgICAgICAgIGlmICghaGFuZGxlZCAmJiBtX3VpQ2xp
ZW50LmltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50KCkpCi0gICAgICAgICAgICBtX3Vp
Q2xpZW50LmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQodGhpcywgbV9jdXJyZW50bHlQcm9jZXNzZWRX
aGVlbEV2ZW50cy5sYXN0KCkpOwotCi0gICAgICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxF
dmVudHMuY2xlYXIoKTsKLQotICAgICAgICBpZiAoIW1fd2hlZWxFdmVudFF1ZXVlLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgV2ViV2hlZWxFdmVudCBuZXdXaGVlbEV2ZW50ID0gY29hbGVzY2Vk
V2hlZWxFdmVudChtX3doZWVsRXZlbnRRdWV1ZSwgbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2
ZW50cyk7Ci0KLSAgICAgICAgICAgIHByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5z
dGFydCgpOwotICAgICAgICAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpFdmVudERpc3Bh
dGNoZXI6OldoZWVsRXZlbnQobV9wYWdlSUQsIG5ld1doZWVsRXZlbnQsIGNhbkdvQmFjaygpLCBj
YW5Hb0ZvcndhcmQoKSksIDApOwotICAgICAgICB9CisgICAgICAgICAgICBtX3VpQ2xpZW50LmRp
ZE5vdEhhbmRsZVdoZWVsRXZlbnQodGhpcywgb2xkZXN0Q29hbGVzY2VkRXZlbnQtPmxhc3QoKSk7
CiAKKyAgICAgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTNlOWJiOGY3OWJj
MDQ3YTdhODE4YjFlMmFiMzQyNTBmOWExYzYzNy4uNjRiMDk4NDJiNGI4YWRiYWVkNGM5YjI1M2E3
ZjVkZDk4MmJkYjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtOTAzLDYgKzkwMyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dlZFBsdWdpbkdlb21l
dHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIHVpbnQ2NF90IHdpbmRvd0lEKTsKICNlbmRpZgogCisg
ICAgdm9pZCBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKKyAgICB2b2lkIHNlbmRXaGVl
bEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKKwogICAgIFBhZ2VDbGllbnQqIG1fcGFnZUNs
aWVudDsKICAgICBXZWJMb2FkZXJDbGllbnQgbV9sb2FkZXJDbGllbnQ7CiAgICAgV2ViUG9saWN5
Q2xpZW50IG1fcG9saWN5Q2xpZW50OwpAQCAtMTAyNCw3ICsxMDI3LDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogICAgIERlcXVlPE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ+IG1fa2V5RXZlbnRRdWV1ZTsK
ICAgICBEZXF1ZTxOYXRpdmVXZWJXaGVlbEV2ZW50PiBtX3doZWVsRXZlbnRRdWV1ZTsKLSAgICBW
ZWN0b3I8TmF0aXZlV2ViV2hlZWxFdmVudD4gbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50
czsKKyAgICBEZXF1ZTxPd25QdHI8VmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+ID4gPiBtX2N1
cnJlbnRseVByb2Nlc3NlZFdoZWVsRXZlbnRzOwogCiAgICAgYm9vbCBtX3Byb2Nlc3NpbmdNb3Vz
ZU1vdmVFdmVudDsKICAgICBPd25QdHI8TmF0aXZlV2ViTW91c2VFdmVudD4gbV9uZXh0TW91c2VN
b3ZlRXZlbnQ7Cg==
</data>
<flag name="review"
          id="146348"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>