<?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>100317</bug_id>
          
          <creation_ts>2012-10-24 18:26:03 -0700</creation_ts>
          <short_desc>Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.</short_desc>
          <delta_ts>2012-11-28 11:41:30 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 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="Roger Fong">roger_fong</reporter>
          <assigned_to name="Roger Fong">roger_fong</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>mitz</cc>
    
    <cc>peter+ews</cc>
    
    <cc>roger_fong</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750274</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-24 18:26:03 -0700</bug_when>
    <thetext>The existing code determines which screen the popup menu &quot;belongs&quot; to by determining which screen the owning application&apos;s hwnd belongs to,
where ownership is determined by how much of the hwnd is on which screen.
To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
However, since the drop down button is something that WebKit renders there is no hwnd.
        
To remedy this issue, we can temporarily move the popup menu&apos;s hwnd to match the position and size of the button,
determine the correct screen, and then eventually move it back to the correct final position after the rest of 
the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
between the temporary and final positionings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750282</commentid>
    <comment_count>1</comment_count>
      <attachid>170533</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-24 18:37:52 -0700</bug_when>
    <thetext>Created attachment 170533
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750283</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-10-24 18:39:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/12570435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750287</commentid>
    <comment_count>3</comment_count>
      <attachid>170533</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-24 18:44:58 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

Attachment 170533 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14593039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750289</commentid>
    <comment_count>4</comment_count>
      <attachid>170533</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-24 18:45:09 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

Attachment 170533 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14553454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750290</commentid>
    <comment_count>5</comment_count>
      <attachid>170533</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-24 18:45:39 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

Attachment 170533 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14554464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750291</commentid>
    <comment_count>6</comment_count>
      <attachid>170533</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-24 18:46:17 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

Attachment 170533 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14552436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750301</commentid>
    <comment_count>7</comment_count>
      <attachid>170533</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-24 19:07:23 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

Attachment 170533 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14566416</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750348</commentid>
    <comment_count>8</comment_count>
      <attachid>170533</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-24 21:38:04 -0700</bug_when>
    <thetext>Comment on attachment 170533
patch

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

&gt; Source/WebCore/platform/PlatformScreen.h:55
&gt; +    FloatRect monitorFromHwnd(HWND);

This will certainly break all the builds except windows, since HWND is a windows type.

I&apos;m also not clear on why this should be in platform code, if it is only called from one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750988</commentid>
    <comment_count>9</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-25 10:37:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 170533 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170533&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformScreen.h:55
&gt; &gt; +    FloatRect monitorFromHwnd(HWND);
&gt; 
&gt; This will certainly break all the builds except windows, since HWND is a windows type.

Right...

&gt; I&apos;m also not clear on why this should be in platform code, if it is only called from one place.

I stuck it there because it looked like many similar methods were coming from there (such as getting the screen from a Widget). Looking at PlatformScreenWin.cpp again, perhaps it makes more sense to just to make the method static and stick it in there. That seems to be what we did for other Windows specific screen info getting methods.

Does that seem reasonable or should I just stick it in PopupMenuWin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751234</commentid>
    <comment_count>10</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-25 14:52:17 -0700</bug_when>
    <thetext>Err right, I can&apos;t do that of course...static in a source file means no access to anything but source file...right...
Anyways, I&apos;ll just stick it with PopupMenuWin.h and call it a day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751291</commentid>
    <comment_count>11</comment_count>
      <attachid>170749</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-25 15:41:31 -0700</bug_when>
    <thetext>Created attachment 170749
revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754507</commentid>
    <comment_count>12</comment_count>
      <attachid>170749</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-30 10:49:02 -0700</bug_when>
    <thetext>Comment on attachment 170749
revised patch

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

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:694
&gt; +FloatRect PopupMenuWin::monitorFromHwnd(HWND hwnd)
&gt; +{
&gt; +    HMONITOR monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY);
&gt; +    MONITORINFOEX monitorInfo;
&gt; +    monitorInfo.cbSize = sizeof(MONITORINFOEX);
&gt; +    GetMonitorInfo(monitor, &amp;monitorInfo);
&gt; +    return monitorInfo.rcWork;
&gt; +}

This can just be a static function, no need to be a member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754589</commentid>
    <comment_count>13</comment_count>
      <attachid>171501</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-30 12:36:49 -0700</bug_when>
    <thetext>Created attachment 171501
made monitorFromHwnd static</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755704</commentid>
    <comment_count>14</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-31 16:17:30 -0700</bug_when>
    <thetext>Committed here: http://trac.webkit.org/changeset/133092</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170533</attachid>
            <date>2012-10-24 18:37:52 -0700</date>
            <delta_ts>2012-10-25 15:41:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7846</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMjQzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTI0ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIFBvcHVwTWVudSBw
b3NpdGlvbmluZyBvbiBXaW5kb3dzIHN1Y2ggdGhhdCBiZWhhdmlvdXIgb24gbXVsdGlwbGUgbW9u
aXRvcnMgbWF0Y2hlcyBXaW5kb3dzIHN0YW5kYXJkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBleGlzdGluZyBjb2RlIGRldGVybWluZXMgd2hp
Y2ggc2NyZWVuIHRoZSBwb3B1cCBtZW51ICJiZWxvbmdzIiB0byBieSBkZXRlcm1pbmluZyB3aGlj
aCBzY3JlZW4gdGhlIG93bmluZyBhcHBsaWNhdGlvbidzIGh3bmQgYmVsb25ncyB0bywKKyAgICAg
ICAgd2hlcmUgb3duZXJzaGlwIGlzIGRldGVybWluZWQgYnkgaG93IG11Y2ggb2YgdGhlIGh3bmQg
aXMgb24gd2hpY2ggc2NyZWVuLgorICAgICAgICBUbyBtYXRjaCB3aGF0IG1vc3QgV2luZG93cyBh
cHBsaWNhdGlvbnMgZG8sIHRoZSBvd25pbmcgc2NyZWVuIHNob3VsZCBiZSB3aGljaGV2ZXIgc2Ny
ZWVuIHRoZSBkcm9wIGRvd24gYnV0dG9uIGJlbG9uZ3MgdG8uCisgICAgICAgIFRvIGRldGVybWlu
ZSB3aGljaCBzY3JlZW4gYW4gZWxlbWVudCBiZWxvbmdzIHRvIGluIFdpbmRvd3Mgd2UgbmVlZCB0
byBwYXNzIGluIGFuIGh3bmQgZm9yIHRoYXQgZWxlbWVudC4KKyAgICAgICAgSG93ZXZlciwgc2lu
Y2UgdGhlIGRyb3AgZG93biBidXR0b24gaXMgc29tZXRoaW5nIHRoYXQgV2ViS2l0IHJlbmRlcnMg
dGhlcmUgaXMgbm8gaHduZC4KKworICAgICAgICBUbyByZW1lZHkgdGhpcyBpc3N1ZSwgd2UgY2Fu
IHRlbXBvcmFyaWx5IG1vdmUgdGhlIHBvcHVwIG1lbnUncyBod25kIHRvIG1hdGNoIHRoZSBwb3Np
dGlvbiBhbmQgc2l6ZSBvZiB0aGUgYnV0dG9uLAorICAgICAgICBkZXRlcm1pbmUgdGhlIGNvcnJl
Y3Qgc2NyZWVuLCBhbmQgdGhlbiBldmVudHVhbGx5IG1vdmUgaXQgYmFjayB0byB0aGUgY29ycmVj
dCBmaW5hbCBwb3NpdGlvbiBhZnRlciB0aGUgcmVzdCBvZiAKKyAgICAgICAgdGhlIGNhbGN1bGF0
aW9ucyBoYXZlIGJlZW4gY29tcGxldGVkLiBUaGlzIGlzIGFsbCBkb25lIGluIHRoZSBzYW1lIGZ1
bmN0aW9uIGNhbGwgc28gbm8gcmVuZGVyaW5nIG9mIHRoZSBwb3B1cCBtZW51IG9jY3VycworICAg
ICAgICBiZXR3ZWVuIHRoZSB0ZW1wb3JhcnkgYW5kIGZpbmFsIHBvc2l0aW9uaW5ncy4KKyAgICAg
ICAgCisgICAgICAgIFRoZXJlJ3Mgbm90IHJlYWxseSBhIGdvb2Qgd2F5IG9mIHRlc3RpbmcgcG9w
dXAgbWVudXMgZXhjZXB0IG1hbnVhbGx5LCB0aGV5J3JlIHNlcGFyYXRlIGh3bmRzIGNyZWF0ZWQg
b3V0c2lkZSBvZiB0aGUgV2ViVmlldy4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZv
cm1TY3JlZW5XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bW9uaXRvckZyb21Id25kKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKToKKwogMjAxMi0xMC0y
NCAgU2Vva2p1IEt3b24gIDxzZW9ranUua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbU09V
UF0gUHJvdmlkZSBsb2dnaW5nIGZvciBTb2NrZXRTdHJlYW1IYW5kbGVTb3VwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgJKHJldmlzaW9uIDEzMjI3MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgRmxvYXRSZWN0IHNj
cmVlblJlY3QoV2lkZ2V0Kik7CiAgICAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lk
Z2V0Kik7CisgICAgRmxvYXRSZWN0IG1vbml0b3JGcm9tSHduZChIV05EKTsKICAgICB2b2lkIHNj
cmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2lu
LmNwcAkocmV2aXNpb24gMTMyMjcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtU2NyZWVuV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCwxNSBAQCBG
bG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpCiAgICAgcmV0dXJuIG1vbml0
b3JJbmZvLnJjV29yazsKIH0KIAorRmxvYXRSZWN0IG1vbml0b3JGcm9tSHduZChIV05EIGh3bmQp
Cit7CisgICAgSE1PTklUT1IgbW9uaXRvciA9IE1vbml0b3JGcm9tV2luZG93KGh3bmQsIE1PTklU
T1JfREVGQVVMVFRPUFJJTUFSWSk7CisgICAgTU9OSVRPUklORk9FWCBtb25pdG9ySW5mbzsKKyAg
ICBtb25pdG9ySW5mby5jYlNpemUgPSBzaXplb2YoTU9OSVRPUklORk9FWCk7CisgICAgR2V0TW9u
aXRvckluZm8obW9uaXRvciwgJm1vbml0b3JJbmZvKTsKKyAgICByZXR1cm4gbW9uaXRvckluZm8u
cmNXb3JrOworfQorCiB2b2lkIHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UG9wdXBNZW51V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUG9wdXBNZW51V2luLmNwcAkocmV2aXNpb24gMTMyMjcxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50Lmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5o
IgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGJhci5oIgpAQCAtMTQ1LDIyICsxNDYsMTAgQEAgdm9pZCBQb3B1cE1lbnVX
aW46OnNob3coY29uc3QgSW50UmVjdCYgcgogICAgICAgICBtX3Njcm9sbGJhci0+c3R5bGVDaGFu
Z2VkKCk7CiAgICAgfQogCi0gICAgaWYgKCFtX3BvcHVwKSB7Ci0gICAgICAgIHJlZ2lzdGVyQ2xh
c3MoKTsKLQotICAgICAgICBEV09SRCBleFN0eWxlID0gV1NfRVhfTFRSUkVBRElORzsKLQotICAg
ICAgICBtX3BvcHVwID0gOjpDcmVhdGVXaW5kb3dFeFcoZXhTdHlsZSwga1BvcHVwV2luZG93Q2xh
c3NOYW1lLCBMIlBvcHVwTWVudSIsCi0gICAgICAgICAgICBXU19QT1BVUCB8IFdTX0JPUkRFUiwK
LSAgICAgICAgICAgIG1fd2luZG93UmVjdC54KCksIG1fd2luZG93UmVjdC55KCksIG1fd2luZG93
UmVjdC53aWR0aCgpLCBtX3dpbmRvd1JlY3QuaGVpZ2h0KCksCi0gICAgICAgICAgICBob3N0V2lu
ZG93LCAwLCBXZWJDb3JlOjppbnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsKLQotICAgICAgICBpZiAo
IW1fcG9wdXApCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8g
V2UgbmVlZCB0byByZXBvc2l0aW9uIHRoZSBwb3B1cCB3aW5kb3cuCi0gICAgICAgIDo6TW92ZVdp
bmRvdyhtX3BvcHVwLCBtX3dpbmRvd1JlY3QueCgpLCBtX3dpbmRvd1JlY3QueSgpLCBtX3dpbmRv
d1JlY3Qud2lkdGgoKSwgbV93aW5kb3dSZWN0LmhlaWdodCgpLCBmYWxzZSk7Ci0gICAgfQorICAg
IC8vIFdlIG5lZWQgdG8gcmVwb3NpdGlvbiB0aGUgcG9wdXAgd2luZG93IHRvIGl0J3MgZmluYWwg
Y29vcmRpbmF0ZXMKKyAgICAvLyBCZWZvcmUgY2FsbGluZyB0aGlzLCB0aGUgcG9wdXAgaHduZCBp
cyBjdXJyZW50bHkgdGhlIHNpemUgb2YgYW5kIGF0IHRoZSBsb2NhdGlvbiBvZiB0aGUgbWVudSBs
aXN0IGNsaWVudCBzbyBpdCBuZWVkcyB0byBiZSB1cGRhdGVkCisgICAgLy8gTm90ZSB0byByZXZp
ZXdlcjogSSBsZWZ0IHRoaXMgaGVyZSBiZWNhdXNlIHRoaXMgaXMgd2hlcmUgdGhlIGNhbGwgd2Fz
IGJlZm9yZSBidXQgSSB0aGluayBpdCdzIGJldHRlciB0byAganVzdCBwdXQgdGhpcyBpbiB0aGUg
Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplIG1ldGhvZCBpdHNlbGYsIEkgZG9uJ3QgdGhpbmsgdGhl
IHNjcm9sbGJhciBjb2RlIHdvdWxkIGFmZmVjdCB0aGUgbG9jYXRpb24gb2YgdGhlIGh3bmQsIGFs
dGhvdWdoIEkgaGF2ZW4ndCBpbnZlc3RpZ2F0ZWQgdGhvcm91Z2hseQorICAgIDo6TW92ZVdpbmRv
dyhtX3BvcHVwLCBtX3dpbmRvd1JlY3QueCgpLCBtX3dpbmRvd1JlY3QueSgpLCBtX3dpbmRvd1Jl
Y3Qud2lkdGgoKSwgbV93aW5kb3dSZWN0LmhlaWdodCgpLCBmYWxzZSk7CiAKICAgICAvLyBEZXRl
cm1pbmUgd2hldGhlciB3ZSBzaG91bGQgYW5pbWF0ZSBvdXIgcG9wdXBzCiAgICAgLy8gTm90ZTog
TXVzdCB1c2UgJ0JPT0wnIGFuZCAnRkFMU0UnIGluc3RlYWQgb2YgJ2Jvb2wnIGFuZCAnZmFsc2Un
IHRvIGF2b2lkIHN0YWNrIGNvcnJ1cHRpb24gd2l0aCBTeXN0ZW1QYXJhbWV0ZXJzSW5mbwpAQCAt
Mjk4LDggKzI4NywzNCBAQCB2b2lkIFBvcHVwTWVudVdpbjo6aGlkZSgpCiAKIHZvaWQgUG9wdXBN
ZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2KQogewotICAgIC8vIHIgaXMgaW4gYWJzb2x1dGUgZG9jdW1lbnQgY29vcmRpbmF0ZXMs
IGJ1dCB3ZSB3YW50IHRvIGJlIGluIHNjcmVlbiBjb29yZGluYXRlcworICAgIC8vIEZpcnN0IGdl
dCB0aGUgc2NyZWVuIGNvb3JkaW5hdGVzIG9mIHRoZSBwb3B1cCBtZW51IGNsaWVudAorICAgIEhX
TkQgaG9zdFdpbmRvdyA9IHYtPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Cisg
ICAgSW50UmVjdCBhYnNvbHV0ZUJvdW5kcyA9ICgoUmVuZGVyTWVudUxpc3QqKW1fcG9wdXBDbGll
bnQpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworICAgIEludFJlY3QgYWJzb2x1dGVTY3Jl
ZW5Db29yZHModi0+Y29udGVudHNUb1dpbmRvdyhhYnNvbHV0ZUJvdW5kcy5sb2NhdGlvbigpKSwg
YWJzb2x1dGVCb3VuZHMuc2l6ZSgpKTsKKyAgICBQT0lOVCBhYnNvbHV0ZUxvY2F0aW9uKGFic29s
dXRlU2NyZWVuQ29vcmRzLmxvY2F0aW9uKCkpOworICAgIGlmICghOjpDbGllbnRUb1NjcmVlbih2
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLCAmYWJzb2x1dGVMb2NhdGlvbikp
CisgICAgICAgIHJldHVybjsKKyAgICBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy5zZXRMb2NhdGlvbihh
YnNvbHV0ZUxvY2F0aW9uKTsKIAorICAgIC8vIE5vdyBzZXQgdGhlIHBvcHVwIG1lbnUncyBsb2Nh
dGlvbiB0ZW1wb3JhcmlseSB0byB0aGVzZSBjb29yZGluYXRlcyBzbyB3ZSBjYW4gZGV0ZXJtaW5l
IHdoaWNoIHNjcmVlbiB0aGUgcG9wdXAgc2hvdWxkIGxpZSBvbgorICAgIC8vIFdlIGNyZWF0ZSBv
ciBtb3ZlIG1fcG9wdXAgYXMgbmVjZXNzYXJ5CisgICAgaWYgKCFtX3BvcHVwKSB7CisgICAgICAg
IHJlZ2lzdGVyQ2xhc3MoKTsKKyAgICAgICAgRFdPUkQgZXhTdHlsZSA9IFdTX0VYX0xUUlJFQURJ
Tkc7CisgICAgICAgIG1fcG9wdXAgPSA6OkNyZWF0ZVdpbmRvd0V4VyhleFN0eWxlLCBrUG9wdXBX
aW5kb3dDbGFzc05hbWUsIEwiUG9wdXBNZW51IiwKKyAgICAgICAgICAgIFdTX1BPUFVQIHwgV1Nf
Qk9SREVSLAorICAgICAgICAgICAgYWJzb2x1dGVTY3JlZW5Db29yZHMueCgpLCBhYnNvbHV0ZVNj
cmVlbkNvb3Jkcy55KCksIGFic29sdXRlU2NyZWVuQ29vcmRzLndpZHRoKCksIGFic29sdXRlU2Ny
ZWVuQ29vcmRzLmhlaWdodCgpLAorICAgICAgICAgICAgaG9zdFdpbmRvdywgMCwgV2ViQ29yZTo6
aW5zdGFuY2VIYW5kbGUoKSwgdGhpcyk7CisKKyAgICAgICAgaWYgKCFtX3BvcHVwKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgIH0gZWxzZQorICAgICAgICA6Ok1vdmVXaW5kb3cobV9wb3B1cCwg
YWJzb2x1dGVTY3JlZW5Db29yZHMueCgpLCBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy55KCksIGFic29s
dXRlU2NyZWVuQ29vcmRzLndpZHRoKCksIGFic29sdXRlU2NyZWVuQ29vcmRzLmhlaWdodCgpLCBm
YWxzZSk7CisKKyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gbW9uaXRvckZyb21Id25kKG1fcG9wdXAp
OworICAgIAorICAgIC8vIE5vdyB3ZSBkZXRlcm1pbmUgdGhlIGFjdHVhbCBsb2NhdGlvbiBhbmQg
bWVhc3VyZW1lbnRzIG9mIHRoZSBwb3B1cCBpdHNlbGYKKyAgICAvLyByIGlzIGluIGFic29sdXRl
IGRvY3VtZW50IGNvb3JkaW5hdGVzLCBidXQgd2Ugd2FudCB0byBiZSBpbiBzY3JlZW4gY29vcmRp
bmF0ZXMKICAgICAvLyBGaXJzdCwgbW92ZSB0byBXZWJWaWV3IGNvb3JkaW5hdGVzCiAgICAgSW50
UmVjdCByU2NyZWVuQ29vcmRzKHYtPmNvbnRlbnRzVG9XaW5kb3coci5sb2NhdGlvbigpKSwgci5z
aXplKCkpOwogCkBAIC0zMTcsNyArMzMyLDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0
ZVBvc2l0aW9uQW5kUwogICAgIGludCBwb3B1cEhlaWdodCA9IG1pbihtYXhQb3B1cEhlaWdodCwg
bmF0dXJhbEhlaWdodCk7CiAgICAgLy8gVGhlIHBvcHVwIHNob3VsZCBzaG93IGFuIGludGVncmFs
IG51bWJlciBvZiBpdGVtcyAoaS5lLiBubyBwYXJ0aWFsIGl0ZW1zIHNob3VsZCBiZSB2aXNpYmxl
KQogICAgIHBvcHVwSGVpZ2h0IC09IHBvcHVwSGVpZ2h0ICUgbV9pdGVtSGVpZ2h0OwotICAgIAor
CiAgICAgLy8gTmV4dCBkZXRlcm1pbmUgaXRzIHdpZHRoCiAgICAgaW50IHBvcHVwV2lkdGggPSAw
OwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbUNvdW50OyArK2kpIHsKQEAgLTM1NSw4ICsz
NzAsNiBAQCB2b2lkIFBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTCiAKICAgICBJ
bnRSZWN0IHBvcHVwUmVjdChwb3B1cFgsIHJTY3JlZW5Db29yZHMubWF4WSgpLCBwb3B1cFdpZHRo
LCBwb3B1cEhlaWdodCk7CiAKLSAgICAvLyBUaGUgcG9wdXAgbmVlZHMgdG8gc3RheSB3aXRoaW4g
dGhlIGJvdW5kcyBvZiB0aGUgc2NyZWVuIGFuZCBub3Qgb3ZlcmxhcCBhbnkgdG9vbGJhcnMKLSAg
ICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdCh2KTsKIAogICAgIC8vIENo
ZWNrIHRoYXQgd2UgZG9uJ3QgZ28gb2ZmIHRoZSBzY3JlZW4gdmVydGljYWxseQogICAgIGlmIChw
b3B1cFJlY3QubWF4WSgpID4gc2NyZWVuLmhlaWdodCgpKSB7Cg==
</data>
<flag name="review"
          id="184164"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="184166"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170749</attachid>
            <date>2012-10-25 15:41:31 -0700</date>
            <delta_ts>2012-10-30 12:36:49 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>revised_patch.txt</filename>
            <type>text/plain</type>
            <size>7652</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMjUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTI1ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIFBvcHVwTWVudSBw
b3NpdGlvbmluZyBvbiBXaW5kb3dzIHN1Y2ggdGhhdCBiZWhhdmlvdXIgb24gbXVsdGlwbGUgbW9u
aXRvcnMgbWF0Y2hlcyBXaW5kb3dzIHN0YW5kYXJkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBleGlzdGluZyBjb2RlIGRldGVybWluZXMgd2hp
Y2ggc2NyZWVuIHRoZSBwb3B1cCBtZW51ICJiZWxvbmdzIiB0byBieSBkZXRlcm1pbmluZyB3aGlj
aCBzY3JlZW4gdGhlIG93bmluZyBhcHBsaWNhdGlvbidzIGh3bmQgYmVsb25ncyB0bywKKyAgICAg
ICAgd2hlcmUgb3duZXJzaGlwIGlzIGRldGVybWluZWQgYnkgaG93IG11Y2ggb2YgdGhlIGh3bmQg
aXMgb24gd2hpY2ggc2NyZWVuLgorICAgICAgICBUbyBtYXRjaCB3aGF0IG1vc3QgV2luZG93cyBh
cHBsaWNhdGlvbnMgZG8sIHRoZSBvd25pbmcgc2NyZWVuIHNob3VsZCBiZSB3aGljaGV2ZXIgc2Ny
ZWVuIHRoZSBkcm9wIGRvd24gYnV0dG9uIGJlbG9uZ3MgdG8uCisgICAgICAgIFRvIGRldGVybWlu
ZSB3aGljaCBzY3JlZW4gYW4gZWxlbWVudCBiZWxvbmdzIHRvIGluIFdpbmRvd3Mgd2UgbmVlZCB0
byBwYXNzIGluIGFuIGh3bmQgZm9yIHRoYXQgZWxlbWVudC4KKyAgICAgICAgSG93ZXZlciwgc2lu
Y2UgdGhlIGRyb3AgZG93biBidXR0b24gaXMgc29tZXRoaW5nIHRoYXQgV2ViS2l0IHJlbmRlcnMg
dGhlcmUgaXMgbm8gaHduZC4KKworICAgICAgICBUbyByZW1lZHkgdGhpcyBpc3N1ZSwgd2UgY2Fu
IHRlbXBvcmFyaWx5IG1vdmUgdGhlIHBvcHVwIG1lbnUncyBod25kIHRvIG1hdGNoIHRoZSBwb3Np
dGlvbiBhbmQgc2l6ZSBvZiB0aGUgYnV0dG9uLAorICAgICAgICBkZXRlcm1pbmUgdGhlIGNvcnJl
Y3Qgc2NyZWVuLCBhbmQgdGhlbiBldmVudHVhbGx5IG1vdmUgaXQgYmFjayB0byB0aGUgY29ycmVj
dCBmaW5hbCBwb3NpdGlvbiBhZnRlciB0aGUgcmVzdCBvZiAKKyAgICAgICAgdGhlIGNhbGN1bGF0
aW9ucyBoYXZlIGJlZW4gY29tcGxldGVkLiBUaGlzIGlzIGFsbCBkb25lIGluIHRoZSBzYW1lIGZ1
bmN0aW9uIGNhbGwgc28gbm8gcmVuZGVyaW5nIG9mIHRoZSBwb3B1cCBtZW51IG9jY3VycworICAg
ICAgICBiZXR3ZWVuIHRoZSB0ZW1wb3JhcnkgYW5kIGZpbmFsIHBvc2l0aW9uaW5ncy4KKworICAg
ICAgICBUaGVyZSdzIG5vdCByZWFsbHkgYSBnb29kIHdheSBvZiB0ZXN0aW5nIHBvcHVwIG1lbnVz
IGV4Y2VwdCBtYW51YWxseSwgdGhleSdyZSBzZXBhcmF0ZSBod25kcyBjcmVhdGVkIG91dHNpZGUg
b2YgdGhlIFdlYlZpZXcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2hvdyk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjptb25pdG9yRnJvbUh3bmQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAgICAgKFBvcHVwTWVudVdpbik6CisKIDIw
MTItMTAtMjUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNb3Zl
IGRlZmF1bHQgRE9NIFRpbWVyIHZhbHVlcyBpbnRvIFNldHRpbmdzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAkocmV2aXNpb24gMTMyNTMwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRl
ICJSZW5kZXJNZW51TGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgpAQCAtMTQ1LDIyICsxNDYsOSBA
QCB2b2lkIFBvcHVwTWVudVdpbjo6c2hvdyhjb25zdCBJbnRSZWN0JiByCiAgICAgICAgIG1fc2Ny
b2xsYmFyLT5zdHlsZUNoYW5nZWQoKTsKICAgICB9CiAKLSAgICBpZiAoIW1fcG9wdXApIHsKLSAg
ICAgICAgcmVnaXN0ZXJDbGFzcygpOwotCi0gICAgICAgIERXT1JEIGV4U3R5bGUgPSBXU19FWF9M
VFJSRUFESU5HOwotCi0gICAgICAgIG1fcG9wdXAgPSA6OkNyZWF0ZVdpbmRvd0V4VyhleFN0eWxl
LCBrUG9wdXBXaW5kb3dDbGFzc05hbWUsIEwiUG9wdXBNZW51IiwKLSAgICAgICAgICAgIFdTX1BP
UFVQIHwgV1NfQk9SREVSLAotICAgICAgICAgICAgbV93aW5kb3dSZWN0LngoKSwgbV93aW5kb3dS
ZWN0LnkoKSwgbV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwKLSAg
ICAgICAgICAgIGhvc3RXaW5kb3csIDAsIFdlYkNvcmU6Omluc3RhbmNlSGFuZGxlKCksIHRoaXMp
OwotCi0gICAgICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVs
c2UgewotICAgICAgICAvLyBXZSBuZWVkIHRvIHJlcG9zaXRpb24gdGhlIHBvcHVwIHdpbmRvdy4K
LSAgICAgICAgOjpNb3ZlV2luZG93KG1fcG9wdXAsIG1fd2luZG93UmVjdC54KCksIG1fd2luZG93
UmVjdC55KCksIG1fd2luZG93UmVjdC53aWR0aCgpLCBtX3dpbmRvd1JlY3QuaGVpZ2h0KCksIGZh
bHNlKTsKLSAgICB9CisgICAgLy8gV2UgbmVlZCB0byByZXBvc2l0aW9uIHRoZSBwb3B1cCB3aW5k
b3cgdG8gaXRzIGZpbmFsIGNvb3JkaW5hdGVzLgorICAgIC8vIEJlZm9yZSBjYWxsaW5nIHRoaXMs
IHRoZSBwb3B1cCBod25kIGlzIGN1cnJlbnRseSB0aGUgc2l6ZSBvZiBhbmQgYXQgdGhlIGxvY2F0
aW9uIG9mIHRoZSBtZW51IGxpc3QgY2xpZW50IHNvIGl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQuCisg
ICAgOjpNb3ZlV2luZG93KG1fcG9wdXAsIG1fd2luZG93UmVjdC54KCksIG1fd2luZG93UmVjdC55
KCksIG1fd2luZG93UmVjdC53aWR0aCgpLCBtX3dpbmRvd1JlY3QuaGVpZ2h0KCksIGZhbHNlKTsK
IAogICAgIC8vIERldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBhbmltYXRlIG91ciBwb3B1cHMK
ICAgICAvLyBOb3RlOiBNdXN0IHVzZSAnQk9PTCcgYW5kICdGQUxTRScgaW5zdGVhZCBvZiAnYm9v
bCcgYW5kICdmYWxzZScgdG8gYXZvaWQgc3RhY2sgY29ycnVwdGlvbiB3aXRoIFN5c3RlbVBhcmFt
ZXRlcnNJbmZvCkBAIC0yOTYsOSArMjg0LDM5IEBAIHZvaWQgUG9wdXBNZW51V2luOjpoaWRlKCkK
ICAgICA6OlBvc3RNZXNzYWdlKG1fcG9wdXAsIFdNX05VTEwsIDAsIDApOwogfQogCisvLyBUaGUg
c2NyZWVuIHRoYXQgdGhlIHBvcHVwIGlzIHBsYWNlZCBvbiBzaG91bGQgYmUgd2hpY2hldmVyIG9u
ZSB0aGUgcG9wdXAgbWVudSBidXR0b24gbGllcyBvbi4KKy8vIFdlIGZha2UgYW4gaHduZCAoaGVy
ZSB3ZSB1c2UgdGhlIHBvcHVwJ3MgaHduZCkgb24gdG9wIG9mIHRoZSBidXR0b24gd2hpY2ggd2Ug
Y2FuIHRoZW4gdXNlIHRvIGRldGVybWluZSB0aGUgc2NyZWVuLgorLy8gV2UgY2FuIHRoZW4gcHJv
Y2VlZCB3aXRoIG91ciBmaW5hbCBwb3NpdGlvbi9zaXplIGNhbGN1bGF0aW9ucy4KIHZvaWQgUG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJh
bWVWaWV3KiB2KQogewotICAgIC8vIHIgaXMgaW4gYWJzb2x1dGUgZG9jdW1lbnQgY29vcmRpbmF0
ZXMsIGJ1dCB3ZSB3YW50IHRvIGJlIGluIHNjcmVlbiBjb29yZGluYXRlcworICAgIC8vIEZpcnN0
IGdldCB0aGUgc2NyZWVuIGNvb3JkaW5hdGVzIG9mIHRoZSBwb3B1cCBtZW51IGNsaWVudC4KKyAg
ICBIV05EIGhvc3RXaW5kb3cgPSB2LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgp
OworICAgIEludFJlY3QgYWJzb2x1dGVCb3VuZHMgPSAoKFJlbmRlck1lbnVMaXN0KiltX3BvcHVw
Q2xpZW50KS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKKyAgICBJbnRSZWN0IGFic29sdXRl
U2NyZWVuQ29vcmRzKHYtPmNvbnRlbnRzVG9XaW5kb3coYWJzb2x1dGVCb3VuZHMubG9jYXRpb24o
KSksIGFic29sdXRlQm91bmRzLnNpemUoKSk7CisgICAgUE9JTlQgYWJzb2x1dGVMb2NhdGlvbihh
YnNvbHV0ZVNjcmVlbkNvb3Jkcy5sb2NhdGlvbigpKTsKKyAgICBpZiAoITo6Q2xpZW50VG9TY3Jl
ZW4odi0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSwgJmFic29sdXRlTG9jYXRp
b24pKQorICAgICAgICByZXR1cm47CisgICAgYWJzb2x1dGVTY3JlZW5Db29yZHMuc2V0TG9jYXRp
b24oYWJzb2x1dGVMb2NhdGlvbik7CisKKyAgICAvLyBOb3cgc2V0IHRoZSBwb3B1cCBtZW51J3Mg
bG9jYXRpb24gdGVtcG9yYXJpbHkgdG8gdGhlc2UgY29vcmRpbmF0ZXMgc28gd2UgY2FuIGRldGVy
bWluZSB3aGljaCBzY3JlZW4gdGhlIHBvcHVwIHNob3VsZCBsaWUgb24uCisgICAgLy8gV2UgY3Jl
YXRlIG9yIG1vdmUgbV9wb3B1cCBhcyBuZWNlc3NhcnkuCisgICAgaWYgKCFtX3BvcHVwKSB7Cisg
ICAgICAgIHJlZ2lzdGVyQ2xhc3MoKTsKKyAgICAgICAgRFdPUkQgZXhTdHlsZSA9IFdTX0VYX0xU
UlJFQURJTkc7CisgICAgICAgIG1fcG9wdXAgPSA6OkNyZWF0ZVdpbmRvd0V4VyhleFN0eWxlLCBr
UG9wdXBXaW5kb3dDbGFzc05hbWUsIEwiUG9wdXBNZW51IiwKKyAgICAgICAgICAgIFdTX1BPUFVQ
IHwgV1NfQk9SREVSLAorICAgICAgICAgICAgYWJzb2x1dGVTY3JlZW5Db29yZHMueCgpLCBhYnNv
bHV0ZVNjcmVlbkNvb3Jkcy55KCksIGFic29sdXRlU2NyZWVuQ29vcmRzLndpZHRoKCksIGFic29s
dXRlU2NyZWVuQ29vcmRzLmhlaWdodCgpLAorICAgICAgICAgICAgaG9zdFdpbmRvdywgMCwgV2Vi
Q29yZTo6aW5zdGFuY2VIYW5kbGUoKSwgdGhpcyk7CisKKyAgICAgICAgaWYgKCFtX3BvcHVwKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZQorICAgICAgICA6Ok1vdmVXaW5kb3cobV9w
b3B1cCwgYWJzb2x1dGVTY3JlZW5Db29yZHMueCgpLCBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy55KCks
IGFic29sdXRlU2NyZWVuQ29vcmRzLndpZHRoKCksIGFic29sdXRlU2NyZWVuQ29vcmRzLmhlaWdo
dCgpLCBmYWxzZSk7CisKKyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gbW9uaXRvckZyb21Id25kKG1f
cG9wdXApOworICAgIAorICAgIC8vIE5vdyB3ZSBkZXRlcm1pbmUgdGhlIGFjdHVhbCBsb2NhdGlv
biBhbmQgbWVhc3VyZW1lbnRzIG9mIHRoZSBwb3B1cCBpdHNlbGYuCisgICAgLy8gciBpcyBpbiBh
YnNvbHV0ZSBkb2N1bWVudCBjb29yZGluYXRlcywgYnV0IHdlIHdhbnQgdG8gYmUgaW4gc2NyZWVu
IGNvb3JkaW5hdGVzLgogCiAgICAgLy8gRmlyc3QsIG1vdmUgdG8gV2ViVmlldyBjb29yZGluYXRl
cwogICAgIEludFJlY3QgclNjcmVlbkNvb3Jkcyh2LT5jb250ZW50c1RvV2luZG93KHIubG9jYXRp
b24oKSksIHIuc2l6ZSgpKTsKQEAgLTM1NSw5ICszNzMsNiBAQCB2b2lkIFBvcHVwTWVudVdpbjo6
Y2FsY3VsYXRlUG9zaXRpb25BbmRTCiAKICAgICBJbnRSZWN0IHBvcHVwUmVjdChwb3B1cFgsIHJT
Y3JlZW5Db29yZHMubWF4WSgpLCBwb3B1cFdpZHRoLCBwb3B1cEhlaWdodCk7CiAKLSAgICAvLyBU
aGUgcG9wdXAgbmVlZHMgdG8gc3RheSB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgc2NyZWVuIGFu
ZCBub3Qgb3ZlcmxhcCBhbnkgdG9vbGJhcnMKLSAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVu
QXZhaWxhYmxlUmVjdCh2KTsKLQogICAgIC8vIENoZWNrIHRoYXQgd2UgZG9uJ3QgZ28gb2ZmIHRo
ZSBzY3JlZW4gdmVydGljYWxseQogICAgIGlmIChwb3B1cFJlY3QubWF4WSgpID4gc2NyZWVuLmhl
aWdodCgpKSB7CiAgICAgICAgIC8vIFRoZSBwb3B1cCB3aWxsIGdvIG9mZiB0aGUgc2NyZWVuLCBz
byB0cnkgcGxhY2luZyBpdCBhYm92ZSB0aGUgY2xpZW50CkBAIC02NjksNiArNjg0LDE1IEBAIHZv
aWQgUG9wdXBNZW51V2luOjpwYWludChjb25zdCBJbnRSZWN0JgogICAgIDo6Qml0Qmx0KGxvY2Fs
REMsIGRhbWFnZVJlY3QueCgpLCBkYW1hZ2VSZWN0LnkoKSwgZGFtYWdlUmVjdC53aWR0aCgpLCBk
YW1hZ2VSZWN0LmhlaWdodCgpLCBtX0RDLCBkYW1hZ2VSZWN0LngoKSwgZGFtYWdlUmVjdC55KCks
IFNSQ0NPUFkpOwogfQogCitGbG9hdFJlY3QgUG9wdXBNZW51V2luOjptb25pdG9yRnJvbUh3bmQo
SFdORCBod25kKQoreworICAgIEhNT05JVE9SIG1vbml0b3IgPSBNb25pdG9yRnJvbVdpbmRvdyho
d25kLCBNT05JVE9SX0RFRkFVTFRUT1BSSU1BUlkpOworICAgIE1PTklUT1JJTkZPRVggbW9uaXRv
ckluZm87CisgICAgbW9uaXRvckluZm8uY2JTaXplID0gc2l6ZW9mKE1PTklUT1JJTkZPRVgpOwor
ICAgIEdldE1vbml0b3JJbmZvKG1vbml0b3IsICZtb25pdG9ySW5mbyk7CisgICAgcmV0dXJuIG1v
bml0b3JJbmZvLnJjV29yazsKK30KKwogaW50IFBvcHVwTWVudVdpbjo6c2Nyb2xsU2l6ZShTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgY29uc3QKIHsKICAgICByZXR1cm4gKChvcmll
bnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgJiYgbV9zY3JvbGxiYXIpID8gKG1fc2Nyb2xs
YmFyLT50b3RhbFNpemUoKSAtIG1fc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgpKSA6IDA7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCShyZXZpc2lvbiAx
MzI1MzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50KGNv
bnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyA9IDApOwogCiAgICAgSFdORCBwb3B1cEhhbmRs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXA7IH0KKyAgICBGbG9hdFJlY3QgbW9uaXRvckZyb21I
d25kKEhXTkQpOwogCiAgICAgdm9pZCBzZXRXYXNDbGlja2VkKGJvb2wgYiA9IHRydWUpIHsgbV93
YXNDbGlja2VkID0gYjsgfQogICAgIGJvb2wgd2FzQ2xpY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2FzQ2xpY2tlZDsgfQo=
</data>
<flag name="review"
          id="185218"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171501</attachid>
            <date>2012-10-30 12:36:49 -0700</date>
            <delta_ts>2012-10-30 23:01:16 -0700</delta_ts>
            <desc>made monitorFromHwnd static</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6813</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMjkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTMwICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIFBvcHVwTWVudSBw
b3NpdGlvbmluZyBvbiBXaW5kb3dzIHN1Y2ggdGhhdCBiZWhhdmlvdXIgb24gbXVsdGlwbGUgbW9u
aXRvcnMgbWF0Y2hlcyBXaW5kb3dzIHN0YW5kYXJkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBleGlzdGluZyBjb2RlIGRldGVybWluZXMgd2hp
Y2ggc2NyZWVuIHRoZSBwb3B1cCBtZW51ICJiZWxvbmdzIiB0byBieSBkZXRlcm1pbmluZyB3aGlj
aCBzY3JlZW4gdGhlIG93bmluZyBhcHBsaWNhdGlvbidzIGh3bmQgYmVsb25ncyB0bywKKyAgICAg
ICAgd2hlcmUgb3duZXJzaGlwIGlzIGRldGVybWluZWQgYnkgaG93IG11Y2ggb2YgdGhlIGh3bmQg
aXMgb24gd2hpY2ggc2NyZWVuLgorICAgICAgICBUbyBtYXRjaCB3aGF0IG1vc3QgV2luZG93cyBh
cHBsaWNhdGlvbnMgZG8sIHRoZSBvd25pbmcgc2NyZWVuIHNob3VsZCBiZSB3aGljaGV2ZXIgc2Ny
ZWVuIHRoZSBkcm9wIGRvd24gYnV0dG9uIGJlbG9uZ3MgdG8uCisgICAgICAgIFRvIGRldGVybWlu
ZSB3aGljaCBzY3JlZW4gYW4gZWxlbWVudCBiZWxvbmdzIHRvIGluIFdpbmRvd3Mgd2UgbmVlZCB0
byBwYXNzIGluIGFuIGh3bmQgZm9yIHRoYXQgZWxlbWVudC4KKyAgICAgICAgSG93ZXZlciwgc2lu
Y2UgdGhlIGRyb3AgZG93biBidXR0b24gaXMgc29tZXRoaW5nIHRoYXQgV2ViS2l0IHJlbmRlcnMg
dGhlcmUgaXMgbm8gaHduZC4KKworICAgICAgICBUbyByZW1lZHkgdGhpcyBpc3N1ZSwgd2UgY2Fu
IHRlbXBvcmFyaWx5IG1vdmUgdGhlIHBvcHVwIG1lbnUncyBod25kIHRvIG1hdGNoIHRoZSBwb3Np
dGlvbiBhbmQgc2l6ZSBvZiB0aGUgYnV0dG9uLAorICAgICAgICBkZXRlcm1pbmUgdGhlIGNvcnJl
Y3Qgc2NyZWVuLCBhbmQgdGhlbiBldmVudHVhbGx5IG1vdmUgaXQgYmFjayB0byB0aGUgY29ycmVj
dCBmaW5hbCBwb3NpdGlvbiBhZnRlciB0aGUgcmVzdCBvZiAKKyAgICAgICAgdGhlIGNhbGN1bGF0
aW9ucyBoYXZlIGJlZW4gY29tcGxldGVkLiBUaGlzIGlzIGFsbCBkb25lIGluIHRoZSBzYW1lIGZ1
bmN0aW9uIGNhbGwgc28gbm8gcmVuZGVyaW5nIG9mIHRoZSBwb3B1cCBtZW51IG9jY3VycworICAg
ICAgICBiZXR3ZWVuIHRoZSB0ZW1wb3JhcnkgYW5kIGZpbmFsIHBvc2l0aW9uaW5ncy4KKworICAg
ICAgICBUaGVyZSdzIG5vdCByZWFsbHkgYSBnb29kIHdheSBvZiB0ZXN0aW5nIHBvcHVwIG1lbnVz
IGV4Y2VwdCBtYW51YWxseSwgdGhleSdyZSBzZXBhcmF0ZSBod25kcyBjcmVhdGVkIG91dHNpZGUg
b2YgdGhlIFdlYlZpZXcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Om1vbml0b3JGcm9tSHduZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2hvdyk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSk6CisKIDIwMTItMTAt
MjYgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgogCiAgICAgICAgIFtD
U1MgU2hhZGVyc10gQWRkIHRoZSBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24gY2xhc3MK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCShy
ZXZpc2lvbiAxMzI4NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgorI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCkBA
IC05Myw2ICs5NCwxNSBAQCBzdGF0aWMgdm9pZCB0cmFuc2xhdGVQb2ludChMUEFSQU0mIGxQYXJh
CiAgICAgbFBhcmFtID0gTUFLRUxQQVJBTShwdC54LCBwdC55KTsKIH0KIAorc3RhdGljIEZsb2F0
UmVjdCBtb25pdG9yRnJvbUh3bmQoSFdORCBod25kKQoreworICAgIEhNT05JVE9SIG1vbml0b3Ig
PSBNb25pdG9yRnJvbVdpbmRvdyhod25kLCBNT05JVE9SX0RFRkFVTFRUT1BSSU1BUlkpOworICAg
IE1PTklUT1JJTkZPRVggbW9uaXRvckluZm87CisgICAgbW9uaXRvckluZm8uY2JTaXplID0gc2l6
ZW9mKE1PTklUT1JJTkZPRVgpOworICAgIEdldE1vbml0b3JJbmZvKG1vbml0b3IsICZtb25pdG9y
SW5mbyk7CisgICAgcmV0dXJuIG1vbml0b3JJbmZvLnJjV29yazsKK30KKwogUG9wdXBNZW51V2lu
OjpQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xp
ZW50KGNsaWVudCkKICAgICAsIG1fc2Nyb2xsYmFyKDApCkBAIC0xNDUsMjIgKzE1NSw5IEBAIHZv
aWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIKICAgICAgICAgbV9zY3JvbGxi
YXItPnN0eWxlQ2hhbmdlZCgpOwogICAgIH0KIAotICAgIGlmICghbV9wb3B1cCkgewotICAgICAg
ICByZWdpc3RlckNsYXNzKCk7Ci0KLSAgICAgICAgRFdPUkQgZXhTdHlsZSA9IFdTX0VYX0xUUlJF
QURJTkc7Ci0KLSAgICAgICAgbV9wb3B1cCA9IDo6Q3JlYXRlV2luZG93RXhXKGV4U3R5bGUsIGtQ
b3B1cFdpbmRvd0NsYXNzTmFtZSwgTCJQb3B1cE1lbnUiLAotICAgICAgICAgICAgV1NfUE9QVVAg
fCBXU19CT1JERVIsCi0gICAgICAgICAgICBtX3dpbmRvd1JlY3QueCgpLCBtX3dpbmRvd1JlY3Qu
eSgpLCBtX3dpbmRvd1JlY3Qud2lkdGgoKSwgbV93aW5kb3dSZWN0LmhlaWdodCgpLAotICAgICAg
ICAgICAgaG9zdFdpbmRvdywgMCwgV2ViQ29yZTo6aW5zdGFuY2VIYW5kbGUoKSwgdGhpcyk7Ci0K
LSAgICAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVwb3NpdGlvbiB0aGUgcG9wdXAgd2luZG93LgotICAg
ICAgICA6Ok1vdmVXaW5kb3cobV9wb3B1cCwgbV93aW5kb3dSZWN0LngoKSwgbV93aW5kb3dSZWN0
LnkoKSwgbV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwgZmFsc2Up
OwotICAgIH0KKyAgICAvLyBXZSBuZWVkIHRvIHJlcG9zaXRpb24gdGhlIHBvcHVwIHdpbmRvdyB0
byBpdHMgZmluYWwgY29vcmRpbmF0ZXMuCisgICAgLy8gQmVmb3JlIGNhbGxpbmcgdGhpcywgdGhl
IHBvcHVwIGh3bmQgaXMgY3VycmVudGx5IHRoZSBzaXplIG9mIGFuZCBhdCB0aGUgbG9jYXRpb24g
b2YgdGhlIG1lbnUgbGlzdCBjbGllbnQgc28gaXQgbmVlZHMgdG8gYmUgdXBkYXRlZC4KKyAgICA6
Ok1vdmVXaW5kb3cobV9wb3B1cCwgbV93aW5kb3dSZWN0LngoKSwgbV93aW5kb3dSZWN0LnkoKSwg
bV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwgZmFsc2UpOwogCiAg
ICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgd2Ugc2hvdWxkIGFuaW1hdGUgb3VyIHBvcHVwcwogICAg
IC8vIE5vdGU6IE11c3QgdXNlICdCT09MJyBhbmQgJ0ZBTFNFJyBpbnN0ZWFkIG9mICdib29sJyBh
bmQgJ2ZhbHNlJyB0byBhdm9pZCBzdGFjayBjb3JydXB0aW9uIHdpdGggU3lzdGVtUGFyYW1ldGVy
c0luZm8KQEAgLTI5Niw5ICsyOTMsMzkgQEAgdm9pZCBQb3B1cE1lbnVXaW46OmhpZGUoKQogICAg
IDo6UG9zdE1lc3NhZ2UobV9wb3B1cCwgV01fTlVMTCwgMCwgMCk7CiB9CiAKKy8vIFRoZSBzY3Jl
ZW4gdGhhdCB0aGUgcG9wdXAgaXMgcGxhY2VkIG9uIHNob3VsZCBiZSB3aGljaGV2ZXIgb25lIHRo
ZSBwb3B1cCBtZW51IGJ1dHRvbiBsaWVzIG9uLgorLy8gV2UgZmFrZSBhbiBod25kIChoZXJlIHdl
IHVzZSB0aGUgcG9wdXAncyBod25kKSBvbiB0b3Agb2YgdGhlIGJ1dHRvbiB3aGljaCB3ZSBjYW4g
dGhlbiB1c2UgdG8gZGV0ZXJtaW5lIHRoZSBzY3JlZW4uCisvLyBXZSBjYW4gdGhlbiBwcm9jZWVk
IHdpdGggb3VyIGZpbmFsIHBvc2l0aW9uL3NpemUgY2FsY3VsYXRpb25zLgogdm9pZCBQb3B1cE1l
bnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZp
ZXcqIHYpCiB7Ci0gICAgLy8gciBpcyBpbiBhYnNvbHV0ZSBkb2N1bWVudCBjb29yZGluYXRlcywg
YnV0IHdlIHdhbnQgdG8gYmUgaW4gc2NyZWVuIGNvb3JkaW5hdGVzCisgICAgLy8gRmlyc3QgZ2V0
IHRoZSBzY3JlZW4gY29vcmRpbmF0ZXMgb2YgdGhlIHBvcHVwIG1lbnUgY2xpZW50LgorICAgIEhX
TkQgaG9zdFdpbmRvdyA9IHYtPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Cisg
ICAgSW50UmVjdCBhYnNvbHV0ZUJvdW5kcyA9ICgoUmVuZGVyTWVudUxpc3QqKW1fcG9wdXBDbGll
bnQpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworICAgIEludFJlY3QgYWJzb2x1dGVTY3Jl
ZW5Db29yZHModi0+Y29udGVudHNUb1dpbmRvdyhhYnNvbHV0ZUJvdW5kcy5sb2NhdGlvbigpKSwg
YWJzb2x1dGVCb3VuZHMuc2l6ZSgpKTsKKyAgICBQT0lOVCBhYnNvbHV0ZUxvY2F0aW9uKGFic29s
dXRlU2NyZWVuQ29vcmRzLmxvY2F0aW9uKCkpOworICAgIGlmICghOjpDbGllbnRUb1NjcmVlbih2
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLCAmYWJzb2x1dGVMb2NhdGlvbikp
CisgICAgICAgIHJldHVybjsKKyAgICBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy5zZXRMb2NhdGlvbihh
YnNvbHV0ZUxvY2F0aW9uKTsKKworICAgIC8vIE5vdyBzZXQgdGhlIHBvcHVwIG1lbnUncyBsb2Nh
dGlvbiB0ZW1wb3JhcmlseSB0byB0aGVzZSBjb29yZGluYXRlcyBzbyB3ZSBjYW4gZGV0ZXJtaW5l
IHdoaWNoIHNjcmVlbiB0aGUgcG9wdXAgc2hvdWxkIGxpZSBvbi4KKyAgICAvLyBXZSBjcmVhdGUg
b3IgbW92ZSBtX3BvcHVwIGFzIG5lY2Vzc2FyeS4KKyAgICBpZiAoIW1fcG9wdXApIHsKKyAgICAg
ICAgcmVnaXN0ZXJDbGFzcygpOworICAgICAgICBEV09SRCBleFN0eWxlID0gV1NfRVhfTFRSUkVB
RElORzsKKyAgICAgICAgbV9wb3B1cCA9IDo6Q3JlYXRlV2luZG93RXhXKGV4U3R5bGUsIGtQb3B1
cFdpbmRvd0NsYXNzTmFtZSwgTCJQb3B1cE1lbnUiLAorICAgICAgICAgICAgV1NfUE9QVVAgfCBX
U19CT1JERVIsCisgICAgICAgICAgICBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy54KCksIGFic29sdXRl
U2NyZWVuQ29vcmRzLnkoKSwgYWJzb2x1dGVTY3JlZW5Db29yZHMud2lkdGgoKSwgYWJzb2x1dGVT
Y3JlZW5Db29yZHMuaGVpZ2h0KCksCisgICAgICAgICAgICBob3N0V2luZG93LCAwLCBXZWJDb3Jl
OjppbnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsKKworICAgICAgICBpZiAoIW1fcG9wdXApCisgICAg
ICAgICAgICByZXR1cm47CisgICAgfSBlbHNlCisgICAgICAgIDo6TW92ZVdpbmRvdyhtX3BvcHVw
LCBhYnNvbHV0ZVNjcmVlbkNvb3Jkcy54KCksIGFic29sdXRlU2NyZWVuQ29vcmRzLnkoKSwgYWJz
b2x1dGVTY3JlZW5Db29yZHMud2lkdGgoKSwgYWJzb2x1dGVTY3JlZW5Db29yZHMuaGVpZ2h0KCks
IGZhbHNlKTsKKworICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBtb25pdG9yRnJvbUh3bmQobV9wb3B1
cCk7CisgICAgCisgICAgLy8gTm93IHdlIGRldGVybWluZSB0aGUgYWN0dWFsIGxvY2F0aW9uIGFu
ZCBtZWFzdXJlbWVudHMgb2YgdGhlIHBvcHVwIGl0c2VsZi4KKyAgICAvLyByIGlzIGluIGFic29s
dXRlIGRvY3VtZW50IGNvb3JkaW5hdGVzLCBidXQgd2Ugd2FudCB0byBiZSBpbiBzY3JlZW4gY29v
cmRpbmF0ZXMuCiAKICAgICAvLyBGaXJzdCwgbW92ZSB0byBXZWJWaWV3IGNvb3JkaW5hdGVzCiAg
ICAgSW50UmVjdCByU2NyZWVuQ29vcmRzKHYtPmNvbnRlbnRzVG9XaW5kb3coci5sb2NhdGlvbigp
KSwgci5zaXplKCkpOwpAQCAtMzU1LDkgKzM4Miw2IEBAIHZvaWQgUG9wdXBNZW51V2luOjpjYWxj
dWxhdGVQb3NpdGlvbkFuZFMKIAogICAgIEludFJlY3QgcG9wdXBSZWN0KHBvcHVwWCwgclNjcmVl
bkNvb3Jkcy5tYXhZKCksIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKIAotICAgIC8vIFRoZSBw
b3B1cCBuZWVkcyB0byBzdGF5IHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoZSBzY3JlZW4gYW5kIG5v
dCBvdmVybGFwIGFueSB0b29sYmFycwotICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBzY3JlZW5BdmFp
bGFibGVSZWN0KHYpOwotCiAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkb24ndCBnbyBvZmYgdGhlIHNj
cmVlbiB2ZXJ0aWNhbGx5CiAgICAgaWYgKHBvcHVwUmVjdC5tYXhZKCkgPiBzY3JlZW4uaGVpZ2h0
KCkpIHsKICAgICAgICAgLy8gVGhlIHBvcHVwIHdpbGwgZ28gb2ZmIHRoZSBzY3JlZW4sIHNvIHRy
eSBwbGFjaW5nIGl0IGFib3ZlIHRoZSBjbGllbnQK
</data>
<flag name="review"
          id="185444"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>