<?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>47411</bug_id>
          
          <creation_ts>2010-10-08 05:32:17 -0700</creation_ts>
          <short_desc>[GTK] Implement subregion rendering in WebView when using gtk3</short_desc>
          <delta_ts>2010-10-09 11:36:30 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>291581</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-08 05:32:17 -0700</bug_when>
    <thetext>It was removed with the port to gtk3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291583</commentid>
    <comment_count>1</comment_count>
      <attachid>70230</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-08 05:37:00 -0700</bug_when>
    <thetext>Created attachment 70230
Patch to implement subregion rendering with gtk3

We still can get the region in gtk3 with cairo_copy_clip_rectangle_list(). I&apos;ve also moved the common code to a new method webkit_web_view_paint() used by both gtk2 and gtk3 code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291676</commentid>
    <comment_count>2</comment_count>
      <attachid>70230</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-08 08:53:23 -0700</bug_when>
    <thetext>Comment on attachment 70230
Patch to implement subregion rendering with gtk3

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

&gt; WebKit/gtk/webkit/webkitwebview.cpp:495
&gt; +static bool shouldCoalesce(GdkRectangle *rect, GdkRectangle* rects, int count)

Need to slide the asterisk on *rect over to GdkRectangle.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:515
&gt; +static void webkit_web_view_paint(Frame* frame, gboolean transparent, GraphicsContext *ctx, GdkRectangle* clipRect, GdkRectangle* rects, int rectCount)

The method name should follow WebKit style, so camelCase. It&apos;s not a GTK+ method, so perhaps the verb should come first? paintWebView maybe.

Also need to fix the asterisk on GraphicsContext *ctx. In fact, it probably makes sense to just pass a reference here. const GraphicsContext&amp; context. We try to avoid abbreviating context in new code.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:595
&gt; +        if (!rectList-&gt;status &amp;&amp; rectList-&gt;num_rectangles &gt; 0) {
&gt; +            GOwnPtr&lt;GdkRectangle&gt; rects(g_new(GdkRectangle, rectList-&gt;num_rectangles));
&gt; +            for (int i = 0; i &lt; rectList-&gt;num_rectangles; i++) {
&gt; +                cairo_rectangle_t cairoRect = rectList-&gt;rectangles[i];
&gt; +                rects.get()[i].x = static_cast&lt;int&gt;(cairoRect.x);
&gt; +                rects.get()[i].y = static_cast&lt;int&gt;(cairoRect.y);
&gt; +                rects.get()[i].width = static_cast&lt;int&gt;(cairoRect.width);
&gt; +                rects.get()[i].height = static_cast&lt;int&gt;(cairoRect.height);
&gt; +            }

Instead of converting to GdkRectangle and then paintWebView converting them to IntRects, why not just convert straight to IntRect and pass a Vector of them. The code would end up looking something like this:

Vector&lt;IntRect&gt; rects;
if (!rectList-&gt;status &amp;&amp; rectList-&gt;num_rectangles &gt; 0) {
    for (int = 0; i &lt; rectList-&gt;num_rectangles; i++)
        rects.append(IntRect(rectList-&gt;rectangles[i]));
}
paintWebView(frame, priv-&gt;transparent, context, &amp;clipRect, rects);

paintWebView would, of course, take a Vector&lt;IntRect&gt;&amp; rects. You would need to update shouldCoalesce as well to take an IntRect and a Vector&lt;IntRect&gt;&amp;. The Windows port actually does something very similar to this in getUpdateRects in WebKit/win/WebView.cpp. Maybe check that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291678</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-08 08:54:12 -0700</bug_when>
    <thetext>I should also say that I love the approach this patch takes. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292129</commentid>
    <comment_count>4</comment_count>
      <attachid>70352</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-09 09:29:12 -0700</bug_when>
    <thetext>Created attachment 70352
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292138</commentid>
    <comment_count>5</comment_count>
      <attachid>70356</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-09 11:02:05 -0700</bug_when>
    <thetext>Created attachment 70356
New patch

Updated patch, fixes build with gtk2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292139</commentid>
    <comment_count>6</comment_count>
      <attachid>70356</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-09 11:06:39 -0700</bug_when>
    <thetext>Comment on attachment 70356
New patch

Great. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292143</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-09 11:18:55 -0700</bug_when>
    <thetext>Attachment 70352 did not build on gtk:
Build output: http://queues.webkit.org/results/4325005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292147</commentid>
    <comment_count>8</comment_count>
      <attachid>70356</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-09 11:36:25 -0700</bug_when>
    <thetext>Comment on attachment 70356
New patch

Clearing flags on attachment: 70356

Committed r69452: &lt;http://trac.webkit.org/changeset/69452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292148</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-09 11:36:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70230</attachid>
            <date>2010-10-08 05:37:00 -0700</date>
            <delta_ts>2010-10-09 09:29:12 -0700</delta_ts>
            <desc>Patch to implement subregion rendering with gtk3</desc>
            <filename>subregion.diff</filename>
            <type>text/plain</type>
            <size>5851</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNjIwZGQ0NS4uOGJlOWZmYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1YnJl
Z2lvbiByZW5kZXJpbmcgaW4gV2ViVmlldyB3aGVuIHVzaW5nIGd0azMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDExCisKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgIChzaG91bGRDb2FsZXNjZSk6CisgICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfcGFpbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4cG9z
ZV9ldmVudCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhdyk6CisKIDIwMTAtMTAtMDcg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXgg
MjBjOWIxNi4uOWUxOTE3OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTQ5
Miw4ICs0OTIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgRwogICAgIH0KIH0KIAotI2lmZGVm
IEdUS19BUElfVkVSU0lPTl8yCi1zdGF0aWMgYm9vbCBzaG91bGRDb2FsZXNjZShHZGtSZWN0YW5n
bGUgcmVjdCwgR2RrUmVjdGFuZ2xlKiByZWN0cywgaW50IGNvdW50KQorc3RhdGljIGJvb2wgc2hv
dWxkQ29hbGVzY2UoR2RrUmVjdGFuZ2xlICpyZWN0LCBHZGtSZWN0YW5nbGUqIHJlY3RzLCBpbnQg
Y291bnQpCiB7CiAgICAgY29uc3QgaW50IGNSZWN0VGhyZXNob2xkID0gMTA7CiAgICAgY29uc3Qg
ZmxvYXQgY1dhc3RlZFNwYWNlVGhyZXNob2xkID0gMC43NWY7CkBAIC01MDIsNyArNTAxLDcgQEAg
c3RhdGljIGJvb2wgc2hvdWxkQ29hbGVzY2UoR2RrUmVjdGFuZ2xlIHJlY3QsIEdka1JlY3Rhbmds
ZSogcmVjdHMsIGludCBjb3VudCkKICAgICAgICAgLy8gQXR0ZW1wdCB0byBndWVzcyB3aGV0aGVy
IG9yIG5vdCB3ZSBzaG91bGQgdXNlIHRoZSB1bmlvbmVkIHJlY3Qgb3IgdGhlIGluZGl2aWR1YWwg
cmVjdHMuCiAgICAgICAgIC8vIFdlIGRvIHRoaXMgYnkgY29tcHV0aW5nIHRoZSBwZXJjZW50YWdl
IG9mICJ3YXN0ZWQgc3BhY2UiIGluIHRoZSB1bmlvbi4gIElmIHRoYXQgd2FzdGVkIHNwYWNlCiAg
ICAgICAgIC8vIGlzIHRvbyBsYXJnZSwgdGhlbiB3ZSB3aWxsIGRvIGluZGl2aWR1YWwgcmVjdCBw
YWludGluZyBpbnN0ZWFkLgotICAgICAgICBmbG9hdCB1bmlvblBpeGVscyA9IChyZWN0LndpZHRo
ICogcmVjdC5oZWlnaHQpOworICAgICAgICBmbG9hdCB1bmlvblBpeGVscyA9IChyZWN0LT53aWR0
aCAqIHJlY3QtPmhlaWdodCk7CiAgICAgICAgIGZsb2F0IHNpbmdsZVBpeGVscyA9IDA7CiAgICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgICAgIHNpbmdsZVBp
eGVscyArPSByZWN0c1tpXS53aWR0aCAqIHJlY3RzW2ldLmhlaWdodDsKQEAgLTUxMyw2ICs1MTIs
MzcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ29hbGVzY2UoR2RrUmVjdGFuZ2xlIHJlY3QsIEdka1Jl
Y3RhbmdsZSogcmVjdHMsIGludCBjb3VudCkKICAgICByZXR1cm4gdXNlVW5pb25lZFJlY3Q7CiB9
CiAKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19wYWludChGcmFtZSogZnJhbWUsIGdib29s
ZWFuIHRyYW5zcGFyZW50LCBHcmFwaGljc0NvbnRleHQgKmN0eCwgR2RrUmVjdGFuZ2xlKiBjbGlw
UmVjdCwgR2RrUmVjdGFuZ2xlKiByZWN0cywgaW50IHJlY3RDb3VudCkKK3sKKyAgICBib29sIGNv
YWxlc2NlID0gdHJ1ZTsKKworICAgIGlmIChyZWN0Q291bnQgPiAwKQorICAgICAgICBjb2FsZXNj
ZSA9IHNob3VsZENvYWxlc2NlKGNsaXBSZWN0LCByZWN0cywgcmVjdENvdW50KTsKKworICAgIGlm
IChjb2FsZXNjZSkgeworICAgICAgICBJbnRSZWN0IHJlY3QgPSAqY2xpcFJlY3Q7CisgICAgICAg
IGN0eC0+Y2xpcChyZWN0KTsKKyAgICAgICAgaWYgKHRyYW5zcGFyZW50KQorICAgICAgICAgICAg
Y3R4LT5jbGVhclJlY3QocmVjdCk7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KGN0eCwg
cmVjdCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWN0Q291
bnQ7IGkrKykgeworICAgICAgICAgICAgSW50UmVjdCByZWN0ID0gcmVjdHNbaV07CisgICAgICAg
ICAgICBjdHgtPnNhdmUoKTsKKyAgICAgICAgICAgIGN0eC0+Y2xpcChyZWN0KTsKKyAgICAgICAg
ICAgIGlmICh0cmFuc3BhcmVudCkKKyAgICAgICAgICAgICAgICBjdHgtPmNsZWFyUmVjdChyZWN0
KTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KGN0eCwgcmVjdCk7CisgICAgICAg
ICAgICBjdHgtPnJlc3RvcmUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGN0eC0+c2F2ZSgp
OworICAgIGN0eC0+Y2xpcChzdGF0aWNfY2FzdDxJbnRSZWN0PigqY2xpcFJlY3QpKTsKKyAgICBm
cmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdOb2RlSGlnaGxpZ2h0KCpj
dHgpOworICAgIGN0eC0+cmVzdG9yZSgpOworfQorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2V4cG9zZV9ldmVudChHdGtXaWRnZXQqIHdp
ZGdldCwgR2RrRXZlbnRFeHBvc2UqIGV2ZW50KQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKQEAgLTUzMSwzMSArNTYxLDcgQEAgc3RhdGlj
IGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQs
IEdka0V2ZW50RXhwb3NlKgogICAgICAgICBHT3duUHRyPEdka1JlY3RhbmdsZT4gcmVjdHM7CiAg
ICAgICAgIGdka19yZWdpb25fZ2V0X3JlY3RhbmdsZXMoZXZlbnQtPnJlZ2lvbiwgJnJlY3RzLm91
dFB0cigpLCAmcmVjdENvdW50KTsKIAotICAgICAgICAvLyBBdm9pZCByZWN1cnNpbmcgaW50byB0
aGUgcmVuZGVyIHRyZWUgZXhjZXNzaXZlbHkKLSAgICAgICAgYm9vbCBjb2FsZXNjZSA9IHNob3Vs
ZENvYWxlc2NlKGV2ZW50LT5hcmVhLCByZWN0cy5nZXQoKSwgcmVjdENvdW50KTsKLQotICAgICAg
ICBpZiAoY29hbGVzY2UpIHsKLSAgICAgICAgICAgIEludFJlY3QgcmVjdCA9IGV2ZW50LT5hcmVh
OwotICAgICAgICAgICAgY3R4LmNsaXAocmVjdCk7Ci0gICAgICAgICAgICBpZiAocHJpdi0+dHJh
bnNwYXJlbnQpCi0gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdChyZWN0KTsKLSAgICAgICAg
ICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjdHgsIHJlY3QpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWN0Q291bnQ7IGkrKykgewotICAgICAg
ICAgICAgICAgIEludFJlY3QgcmVjdCA9IHJlY3RzLmdldCgpW2ldOwotICAgICAgICAgICAgICAg
IGN0eC5zYXZlKCk7Ci0gICAgICAgICAgICAgICAgY3R4LmNsaXAocmVjdCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHByaXYtPnRyYW5zcGFyZW50KQotICAgICAgICAgICAgICAgICAgICBjdHguY2xl
YXJSZWN0KHJlY3QpOwotICAgICAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjdHgs
IHJlY3QpOwotICAgICAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgICBjdHguc2F2ZSgpOwotICAgICAgICBjdHguY2xpcChzdGF0aWNf
Y2FzdDxJbnRSZWN0PihldmVudC0+YXJlYSkpOwotICAgICAgICBmcmFtZS0+cGFnZSgpLT5pbnNw
ZWN0b3JDb250cm9sbGVyKCktPmRyYXdOb2RlSGlnaGxpZ2h0KGN0eCk7Ci0gICAgICAgIGN0eC5y
ZXN0b3JlKCk7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19wYWludChmcmFtZSwgcHJpdi0+dHJh
bnNwYXJlbnQsICZjdHgsICZldmVudC0+YXJlYSwgcmVjdHMuZ2V0KCksIHJlY3RDb3VudCk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIEZBTFNFOwpAQCAtNTc0LDE0ICs1ODAsMjQgQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19kcmF3KEd0a1dpZGdldCogd2lkZ2V0LCBjYWlyb190KiBj
cikKICAgICBpZiAoZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpICYmIGZyYW1lLT52aWV3KCkpIHsK
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGN0eChjcik7CiAgICAgICAgIEludFJlY3QgcmVjdCA9
IGNsaXBSZWN0OworICAgICAgICBjYWlyb19yZWN0YW5nbGVfbGlzdF90KiByZWN0TGlzdCA9IGNh
aXJvX2NvcHlfY2xpcF9yZWN0YW5nbGVfbGlzdChjcik7CiAKICAgICAgICAgZnJhbWUtPnZpZXco
KS0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwotICAgICAgICBpZiAo
cHJpdi0+dHJhbnNwYXJlbnQpCi0gICAgICAgICAgICBjdHguY2xlYXJSZWN0KHJlY3QpOwotICAg
ICAgICBmcmFtZS0+dmlldygpLT5wYWludCgmY3R4LCByZWN0KTsKLSAgICAgICAgY3R4LnNhdmUo
KTsKLSAgICAgICAgZnJhbWUtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kcmF3Tm9k
ZUhpZ2hsaWdodChjdHgpOwotICAgICAgICBjdHgucmVzdG9yZSgpOworCisgICAgICAgIGlmICgh
cmVjdExpc3QtPnN0YXR1cyAmJiByZWN0TGlzdC0+bnVtX3JlY3RhbmdsZXMgPiAwKSB7CisgICAg
ICAgICAgICBHT3duUHRyPEdka1JlY3RhbmdsZT4gcmVjdHMoZ19uZXcoR2RrUmVjdGFuZ2xlLCBy
ZWN0TGlzdC0+bnVtX3JlY3RhbmdsZXMpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgcmVjdExpc3QtPm51bV9yZWN0YW5nbGVzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjYWly
b19yZWN0YW5nbGVfdCBjYWlyb1JlY3QgPSByZWN0TGlzdC0+cmVjdGFuZ2xlc1tpXTsKKyAgICAg
ICAgICAgICAgICByZWN0cy5nZXQoKVtpXS54ID0gc3RhdGljX2Nhc3Q8aW50PihjYWlyb1JlY3Qu
eCk7CisgICAgICAgICAgICAgICAgcmVjdHMuZ2V0KClbaV0ueSA9IHN0YXRpY19jYXN0PGludD4o
Y2Fpcm9SZWN0LnkpOworICAgICAgICAgICAgICAgIHJlY3RzLmdldCgpW2ldLndpZHRoID0gc3Rh
dGljX2Nhc3Q8aW50PihjYWlyb1JlY3Qud2lkdGgpOworICAgICAgICAgICAgICAgIHJlY3RzLmdl
dCgpW2ldLmhlaWdodCA9IHN0YXRpY19jYXN0PGludD4oY2Fpcm9SZWN0LmhlaWdodCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfcGFpbnQoZnJhbWUsIHByaXYt
PnRyYW5zcGFyZW50LCAmY3R4LCAmY2xpcFJlY3QsIHJlY3RzLmdldCgpLCByZWN0TGlzdC0+bnVt
X3JlY3RhbmdsZXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2Via2l0X3dlYl92
aWV3X3BhaW50KGZyYW1lLCBwcml2LT50cmFuc3BhcmVudCwgJmN0eCwgJmNsaXBSZWN0LCBOVUxM
LCAwKTsKKyAgICAgICAgfQorICAgICAgICBjYWlyb19yZWN0YW5nbGVfbGlzdF9kZXN0cm95KHJl
Y3RMaXN0KTsKICAgICB9CiAKICAgICByZXR1cm4gRkFMU0U7Cg==
</data>
<flag name="review"
          id="60047"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70352</attachid>
            <date>2010-10-09 09:29:12 -0700</date>
            <delta_ts>2010-10-09 11:02:05 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>subregion.diff</filename>
            <type>text/plain</type>
            <size>9826</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDc4M2IxMy4uNjlhMGU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1YnJlZ2lvbiByZW5kZXJp
bmcgaW4gV2ViVmlldyB3aGVuIHVzaW5nIGd0azMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDExCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RmxvYXRSZWN0OjpGbG9hdFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
ZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCk6CisKIDIwMTAtMTAtMDggIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDc4M2IxMy4uNjlhMGU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0wOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1YnJl
Z2lvbiByZW5kZXJpbmcgaW4gV2ViVmlldyB3aGVuIHVzaW5nIGd0azMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDExCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSZWN0OjpGbG9hdFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmxvYXRSZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCk6CisKIDIwMTAtMTAt
MDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDRhMjU0N2IuLmMxZjIxOTAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMzQ1NSw2ICszNDU1LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAgXAorCVdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGEuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuaAppbmRleCBlMzg3OTI3Li4xMGFkODM4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRSZWN0LmgKQEAgLTU5LDYgKzU5LDEwIEBAIGNsYXNzIEJSZWN0Owogc3RydWN0
IFNrUmVjdDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ0FJUk8pCit0eXBlZGVmIHN0cnVjdCBf
Y2Fpcm9fcmVjdGFuZ2xlIGNhaXJvX3JlY3RhbmdsZV90OworI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmIFBMQVRGT1JNKE9QRU5WRykKQEAgLTE3Miw2ICsxNzYsMTEgQEAgcHVi
bGljOgogICAgIG9wZXJhdG9yIFZHUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShDQUlSTykKKyAgICBGbG9hdFJlY3QoY29uc3QgY2Fpcm9fcmVjdGFuZ2xlX3QmKTsKKyAgICBv
cGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCgpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgRmxvYXRQb2ludCBtX2xvY2F0aW9uOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODZmNzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCisjaW5jbHVk
ZSA8Y2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJlY3Q6OkZsb2F0UmVj
dChjb25zdCBjYWlyb19yZWN0YW5nbGVfdCYgcikKKyAgICA6IG1fbG9jYXRpb24oci54LCByLnkp
CisgICAgLCBtX3NpemUoci53aWR0aCwgci5oZWlnaHQpCit7Cit9CisKK0Zsb2F0UmVjdDo6b3Bl
cmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX3QoKSBjb25zdAoreworICAgIGNhaXJvX3JlY3RhbmdsZV90
IHIgPSB7IHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSB9OworICAgIHJldHVybiByOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmlu
ZGV4IDIwYzliMTYuLjBlMDA1OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC00OTIsMjAgKzQ5MiwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgRwogICAgIH0KIH0KIAot
I2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi1zdGF0aWMgYm9vbCBzaG91bGRDb2FsZXNjZShHZGtS
ZWN0YW5nbGUgcmVjdCwgR2RrUmVjdGFuZ2xlKiByZWN0cywgaW50IGNvdW50KQorc3RhdGljIGJv
b2wgc2hvdWxkQ29hbGVzY2UoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgVmVjdG9yPEludFJl
Y3Q+JiByZWN0cykKIHsKLSAgICBjb25zdCBpbnQgY1JlY3RUaHJlc2hvbGQgPSAxMDsKKyAgICBj
b25zdCB1bnNpZ25lZCBpbnQgY1JlY3RUaHJlc2hvbGQgPSAxMDsKICAgICBjb25zdCBmbG9hdCBj
V2FzdGVkU3BhY2VUaHJlc2hvbGQgPSAwLjc1ZjsKLSAgICBib29sIHVzZVVuaW9uZWRSZWN0ID0g
KGNvdW50IDw9IDEpIHx8IChjb3VudCA+IGNSZWN0VGhyZXNob2xkKTsKKyAgICBib29sIHVzZVVu
aW9uZWRSZWN0ID0gKHJlY3RzLnNpemUoKSA8PSAxKSB8fCAocmVjdHMuc2l6ZSgpID4gY1JlY3RU
aHJlc2hvbGQpOwogICAgIGlmICghdXNlVW5pb25lZFJlY3QpIHsKICAgICAgICAgLy8gQXR0ZW1w
dCB0byBndWVzcyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgdXNlIHRoZSB1bmlvbmVkIHJlY3Qg
b3IgdGhlIGluZGl2aWR1YWwgcmVjdHMuCiAgICAgICAgIC8vIFdlIGRvIHRoaXMgYnkgY29tcHV0
aW5nIHRoZSBwZXJjZW50YWdlIG9mICJ3YXN0ZWQgc3BhY2UiIGluIHRoZSB1bmlvbi4gIElmIHRo
YXQgd2FzdGVkIHNwYWNlCiAgICAgICAgIC8vIGlzIHRvbyBsYXJnZSwgdGhlbiB3ZSB3aWxsIGRv
IGluZGl2aWR1YWwgcmVjdCBwYWludGluZyBpbnN0ZWFkLgotICAgICAgICBmbG9hdCB1bmlvblBp
eGVscyA9IChyZWN0LndpZHRoICogcmVjdC5oZWlnaHQpOworICAgICAgICBmbG9hdCB1bmlvblBp
eGVscyA9IChyZWN0LndpZHRoKCkgKiByZWN0LmhlaWdodCgpKTsKICAgICAgICAgZmxvYXQgc2lu
Z2xlUGl4ZWxzID0gMDsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQot
ICAgICAgICAgICAgc2luZ2xlUGl4ZWxzICs9IHJlY3RzW2ldLndpZHRoICogcmVjdHNbaV0uaGVp
Z2h0OworICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsg
KytpKQorICAgICAgICAgICAgc2luZ2xlUGl4ZWxzICs9IHJlY3RzW2ldLndpZHRoKCkgKiByZWN0
c1tpXS5oZWlnaHQoKTsKICAgICAgICAgZmxvYXQgd2FzdGVkU3BhY2UgPSAxIC0gKHNpbmdsZVBp
eGVscyAvIHVuaW9uUGl4ZWxzKTsKICAgICAgICAgaWYgKHdhc3RlZFNwYWNlIDw9IGNXYXN0ZWRT
cGFjZVRocmVzaG9sZCkKICAgICAgICAgICAgIHVzZVVuaW9uZWRSZWN0ID0gdHJ1ZTsKQEAgLTUx
Myw2ICs1MTIsMzYgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ29hbGVzY2UoR2RrUmVjdGFuZ2xlIHJl
Y3QsIEdka1JlY3RhbmdsZSogcmVjdHMsIGludCBjb3VudCkKICAgICByZXR1cm4gdXNlVW5pb25l
ZFJlY3Q7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50V2ViVmlldyhGcmFtZSogZnJhbWUsIGdib29s
ZWFuIHRyYW5zcGFyZW50LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3Qm
IGNsaXBSZWN0LCBjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzKQoreworICAgIGJvb2wgY29h
bGVzY2UgPSB0cnVlOworCisgICAgaWYgKHJlY3RzLnNpemUoKSA+IDApCisgICAgICAgIGNvYWxl
c2NlID0gc2hvdWxkQ29hbGVzY2UoY2xpcFJlY3QsIHJlY3RzKTsKKworICAgIGlmIChjb2FsZXNj
ZSkgeworICAgICAgICBjb250ZXh0LmNsaXAoY2xpcFJlY3QpOworICAgICAgICBpZiAodHJhbnNw
YXJlbnQpCisgICAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdChjbGlwUmVjdCk7CisgICAgICAg
IGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCBjbGlwUmVjdCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7IGkrKykg
eworICAgICAgICAgICAgSW50UmVjdCByZWN0ID0gcmVjdHNbaV07CisgICAgICAgICAgICBjb250
ZXh0LnNhdmUoKTsKKyAgICAgICAgICAgIGNvbnRleHQuY2xpcChyZWN0KTsKKyAgICAgICAgICAg
IGlmICh0cmFuc3BhcmVudCkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdChyZWN0
KTsKKyAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCByZWN0KTsKKyAg
ICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgY29u
dGV4dC5zYXZlKCk7CisgICAgY29udGV4dC5jbGlwKGNsaXBSZWN0KTsKKyAgICBmcmFtZS0+cGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdOb2RlSGlnaGxpZ2h0KGNvbnRleHQpOwor
ICAgIGNvbnRleHQucmVzdG9yZSgpOworfQorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiBzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2V4cG9zZV9ldmVudChHdGtXaWRnZXQqIHdpZGdl
dCwgR2RrRXZlbnRFeHBvc2UqIGV2ZW50KQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKQEAgLTUzMCwzMiArNTU5LDExIEBAIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBH
ZGtFdmVudEV4cG9zZSoKICAgICAgICAgaW50IHJlY3RDb3VudDsKICAgICAgICAgR093blB0cjxH
ZGtSZWN0YW5nbGU+IHJlY3RzOwogICAgICAgICBnZGtfcmVnaW9uX2dldF9yZWN0YW5nbGVzKGV2
ZW50LT5yZWdpb24sICZyZWN0cy5vdXRQdHIoKSwgJnJlY3RDb3VudCk7CisgICAgICAgIFZlY3Rv
cjxJbnRSZWN0PiByZWN0czsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWN0Q291bnQ7
IGkrKykKKyAgICAgICAgICAgIHJlY3RzLmFwcGVuZChJbnRSZWN0KHJlY3RzLmdldCgpW2ldKSk7
CiAKLSAgICAgICAgLy8gQXZvaWQgcmVjdXJzaW5nIGludG8gdGhlIHJlbmRlciB0cmVlIGV4Y2Vz
c2l2ZWx5Ci0gICAgICAgIGJvb2wgY29hbGVzY2UgPSBzaG91bGRDb2FsZXNjZShldmVudC0+YXJl
YSwgcmVjdHMuZ2V0KCksIHJlY3RDb3VudCk7Ci0KLSAgICAgICAgaWYgKGNvYWxlc2NlKSB7Ci0g
ICAgICAgICAgICBJbnRSZWN0IHJlY3QgPSBldmVudC0+YXJlYTsKLSAgICAgICAgICAgIGN0eC5j
bGlwKHJlY3QpOwotICAgICAgICAgICAgaWYgKHByaXYtPnRyYW5zcGFyZW50KQotICAgICAgICAg
ICAgICAgIGN0eC5jbGVhclJlY3QocmVjdCk7Ci0gICAgICAgICAgICBmcmFtZS0+dmlldygpLT5w
YWludCgmY3R4LCByZWN0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgcmVjdENvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBJbnRSZWN0IHJl
Y3QgPSByZWN0cy5nZXQoKVtpXTsKLSAgICAgICAgICAgICAgICBjdHguc2F2ZSgpOwotICAgICAg
ICAgICAgICAgIGN0eC5jbGlwKHJlY3QpOwotICAgICAgICAgICAgICAgIGlmIChwcml2LT50cmFu
c3BhcmVudCkKLSAgICAgICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdChyZWN0KTsKLSAgICAg
ICAgICAgICAgICBmcmFtZS0+dmlldygpLT5wYWludCgmY3R4LCByZWN0KTsKLSAgICAgICAgICAg
ICAgICBjdHgucmVzdG9yZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
Y3R4LnNhdmUoKTsKLSAgICAgICAgY3R4LmNsaXAoc3RhdGljX2Nhc3Q8SW50UmVjdD4oZXZlbnQt
PmFyZWEpKTsKLSAgICAgICAgZnJhbWUtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5k
cmF3Tm9kZUhpZ2hsaWdodChjdHgpOwotICAgICAgICBjdHgucmVzdG9yZSgpOworICAgICAgICBw
YWludFdlYlZpZXcoZnJhbWUsIHByaXYtPnRyYW5zcGFyZW50LCBjdHgsIHN0YXRpY19jYXN0PElu
dFJlY3Q+KGV2ZW50LT5hcmVhKSwgcmVjdHMpOwogICAgIH0KIAogICAgIHJldHVybiBGQUxTRTsK
QEAgLTU3NCwxNCArNTgyLDE4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZHJh
dyhHdGtXaWRnZXQqIHdpZGdldCwgY2Fpcm9fdCogY3IpCiAgICAgaWYgKGZyYW1lLT5jb250ZW50
UmVuZGVyZXIoKSAmJiBmcmFtZS0+dmlldygpKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBj
dHgoY3IpOwogICAgICAgICBJbnRSZWN0IHJlY3QgPSBjbGlwUmVjdDsKKyAgICAgICAgY2Fpcm9f
cmVjdGFuZ2xlX2xpc3RfdCogcmVjdExpc3QgPSBjYWlyb19jb3B5X2NsaXBfcmVjdGFuZ2xlX2xp
c3QoY3IpOwogCiAgICAgICAgIGZyYW1lLT52aWV3KCktPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZO
ZWVkZWRSZWN1cnNpdmUoKTsKLSAgICAgICAgaWYgKHByaXYtPnRyYW5zcGFyZW50KQotICAgICAg
ICAgICAgY3R4LmNsZWFyUmVjdChyZWN0KTsKLSAgICAgICAgZnJhbWUtPnZpZXcoKS0+cGFpbnQo
JmN0eCwgcmVjdCk7Ci0gICAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICAgIGZyYW1lLT5wYWdlKCkt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZHJhd05vZGVIaWdobGlnaHQoY3R4KTsKLSAgICAgICAg
Y3R4LnJlc3RvcmUoKTsKKworICAgICAgICBWZWN0b3I8SW50UmVjdD4gcmVjdHM7CisgICAgICAg
IGlmICghcmVjdExpc3QtPnN0YXR1cyAmJiByZWN0TGlzdC0+bnVtX3JlY3RhbmdsZXMgPiAwKSB7
CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlY3RMaXN0LT5udW1fcmVjdGFuZ2xl
czsgaSsrKQorICAgICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZs
b2F0UmVjdChyZWN0TGlzdC0+cmVjdGFuZ2xlc1tpXSkpKTsKKyAgICAgICAgfQorICAgICAgICBw
YWludFdlYlZpZXcoZnJhbWUsIHByaXYtPnRyYW5zcGFyZW50LCBjdHgsIHJlY3QsIHJlY3RzKTsK
KworICAgICAgICBjYWlyb19yZWN0YW5nbGVfbGlzdF9kZXN0cm95KHJlY3RMaXN0KTsKICAgICB9
CiAKICAgICByZXR1cm4gRkFMU0U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70356</attachid>
            <date>2010-10-09 11:02:05 -0700</date>
            <delta_ts>2010-10-09 11:36:25 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>subregion.diff</filename>
            <type>text/plain</type>
            <size>10208</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDc4M2IxMy4uNjlhMGU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1YnJlZ2lvbiByZW5kZXJp
bmcgaW4gV2ViVmlldyB3aGVuIHVzaW5nIGd0azMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDExCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RmxvYXRSZWN0OjpGbG9hdFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
ZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCk6CisKIDIwMTAtMTAtMDggIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDc4M2IxMy4uNjlhMGU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0wOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1YnJl
Z2lvbiByZW5kZXJpbmcgaW4gV2ViVmlldyB3aGVuIHVzaW5nIGd0azMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDExCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSZWN0OjpGbG9hdFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmxvYXRSZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCk6CisKIDIwMTAtMTAt
MDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDRhMjU0N2IuLmMxZjIxOTAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMzQ1NSw2ICszNDU1LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAgXAorCVdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGEuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuaAppbmRleCBlMzg3OTI3Li4xMGFkODM4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRSZWN0LmgKQEAgLTU5LDYgKzU5LDEwIEBAIGNsYXNzIEJSZWN0Owogc3RydWN0
IFNrUmVjdDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ0FJUk8pCit0eXBlZGVmIHN0cnVjdCBf
Y2Fpcm9fcmVjdGFuZ2xlIGNhaXJvX3JlY3RhbmdsZV90OworI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmIFBMQVRGT1JNKE9QRU5WRykKQEAgLTE3Miw2ICsxNzYsMTEgQEAgcHVi
bGljOgogICAgIG9wZXJhdG9yIFZHUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShDQUlSTykKKyAgICBGbG9hdFJlY3QoY29uc3QgY2Fpcm9fcmVjdGFuZ2xlX3QmKTsKKyAgICBv
cGVyYXRvciBjYWlyb19yZWN0YW5nbGVfdCgpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgRmxvYXRQb2ludCBtX2xvY2F0aW9uOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODZmNzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCisjaW5jbHVk
ZSA8Y2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJlY3Q6OkZsb2F0UmVj
dChjb25zdCBjYWlyb19yZWN0YW5nbGVfdCYgcikKKyAgICA6IG1fbG9jYXRpb24oci54LCByLnkp
CisgICAgLCBtX3NpemUoci53aWR0aCwgci5oZWlnaHQpCit7Cit9CisKK0Zsb2F0UmVjdDo6b3Bl
cmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX3QoKSBjb25zdAoreworICAgIGNhaXJvX3JlY3RhbmdsZV90
IHIgPSB7IHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSB9OworICAgIHJldHVybiByOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmlu
ZGV4IDIwYzliMTYuLmRkMDhlNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC00OTIsMjcgKzQ5Miw1NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgRwogICAgIH0KIH0KIAot
I2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi1zdGF0aWMgYm9vbCBzaG91bGRDb2FsZXNjZShHZGtS
ZWN0YW5nbGUgcmVjdCwgR2RrUmVjdGFuZ2xlKiByZWN0cywgaW50IGNvdW50KQorc3RhdGljIGJv
b2wgc2hvdWxkQ29hbGVzY2UoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgVmVjdG9yPEludFJl
Y3Q+JiByZWN0cykKIHsKLSAgICBjb25zdCBpbnQgY1JlY3RUaHJlc2hvbGQgPSAxMDsKKyAgICBj
b25zdCB1bnNpZ25lZCBpbnQgY1JlY3RUaHJlc2hvbGQgPSAxMDsKICAgICBjb25zdCBmbG9hdCBj
V2FzdGVkU3BhY2VUaHJlc2hvbGQgPSAwLjc1ZjsKLSAgICBib29sIHVzZVVuaW9uZWRSZWN0ID0g
KGNvdW50IDw9IDEpIHx8IChjb3VudCA+IGNSZWN0VGhyZXNob2xkKTsKLSAgICBpZiAoIXVzZVVu
aW9uZWRSZWN0KSB7Ci0gICAgICAgIC8vIEF0dGVtcHQgdG8gZ3Vlc3Mgd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIHVzZSB0aGUgdW5pb25lZCByZWN0IG9yIHRoZSBpbmRpdmlkdWFsIHJlY3RzLgot
ICAgICAgICAvLyBXZSBkbyB0aGlzIGJ5IGNvbXB1dGluZyB0aGUgcGVyY2VudGFnZSBvZiAid2Fz
dGVkIHNwYWNlIiBpbiB0aGUgdW5pb24uICBJZiB0aGF0IHdhc3RlZCBzcGFjZQotICAgICAgICAv
LyBpcyB0b28gbGFyZ2UsIHRoZW4gd2Ugd2lsbCBkbyBpbmRpdmlkdWFsIHJlY3QgcGFpbnRpbmcg
aW5zdGVhZC4KLSAgICAgICAgZmxvYXQgdW5pb25QaXhlbHMgPSAocmVjdC53aWR0aCAqIHJlY3Qu
aGVpZ2h0KTsKLSAgICAgICAgZmxvYXQgc2luZ2xlUGl4ZWxzID0gMDsKLSAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICAgICAgc2luZ2xlUGl4ZWxzICs9IHJl
Y3RzW2ldLndpZHRoICogcmVjdHNbaV0uaGVpZ2h0OwotICAgICAgICBmbG9hdCB3YXN0ZWRTcGFj
ZSA9IDEgLSAoc2luZ2xlUGl4ZWxzIC8gdW5pb25QaXhlbHMpOwotICAgICAgICBpZiAod2FzdGVk
U3BhY2UgPD0gY1dhc3RlZFNwYWNlVGhyZXNob2xkKQotICAgICAgICAgICAgdXNlVW5pb25lZFJl
Y3QgPSB0cnVlOwotICAgIH0KKyAgICBib29sIHVzZVVuaW9uZWRSZWN0ID0gKHJlY3RzLnNpemUo
KSA8PSAxKSB8fCAocmVjdHMuc2l6ZSgpID4gY1JlY3RUaHJlc2hvbGQpOworICAgIGlmICh1c2VV
bmlvbmVkUmVjdCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gQXR0ZW1wdCB0byBndWVz
cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgdXNlIHRoZSB1bmlvbmVkIHJlY3Qgb3IgdGhlIGlu
ZGl2aWR1YWwgcmVjdHMuCisgICAgLy8gV2UgZG8gdGhpcyBieSBjb21wdXRpbmcgdGhlIHBlcmNl
bnRhZ2Ugb2YgIndhc3RlZCBzcGFjZSIgaW4gdGhlIHVuaW9uLiAgSWYgdGhhdCB3YXN0ZWQgc3Bh
Y2UKKyAgICAvLyBpcyB0b28gbGFyZ2UsIHRoZW4gd2Ugd2lsbCBkbyBpbmRpdmlkdWFsIHJlY3Qg
cGFpbnRpbmcgaW5zdGVhZC4KKyAgICBmbG9hdCB1bmlvblBpeGVscyA9IChyZWN0LndpZHRoKCkg
KiByZWN0LmhlaWdodCgpKTsKKyAgICBmbG9hdCBzaW5nbGVQaXhlbHMgPSAwOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCisgICAgICAgIHNpbmdsZVBpeGVs
cyArPSByZWN0c1tpXS53aWR0aCgpICogcmVjdHNbaV0uaGVpZ2h0KCk7CisgICAgZmxvYXQgd2Fz
dGVkU3BhY2UgPSAxIC0gKHNpbmdsZVBpeGVscyAvIHVuaW9uUGl4ZWxzKTsKKyAgICBpZiAod2Fz
dGVkU3BhY2UgPD0gY1dhc3RlZFNwYWNlVGhyZXNob2xkKQorICAgICAgICB1c2VVbmlvbmVkUmVj
dCA9IHRydWU7CiAgICAgcmV0dXJuIHVzZVVuaW9uZWRSZWN0OwogfQogCitzdGF0aWMgdm9pZCBw
YWludFdlYlZpZXcoRnJhbWUqIGZyYW1lLCBnYm9vbGVhbiB0cmFuc3BhcmVudCwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCwgY29uc3QgVmVjdG9yPElu
dFJlY3Q+JiByZWN0cykKK3sKKyAgICBib29sIGNvYWxlc2NlID0gdHJ1ZTsKKworICAgIGlmIChy
ZWN0cy5zaXplKCkgPiAwKQorICAgICAgICBjb2FsZXNjZSA9IHNob3VsZENvYWxlc2NlKGNsaXBS
ZWN0LCByZWN0cyk7CisKKyAgICBpZiAoY29hbGVzY2UpIHsKKyAgICAgICAgY29udGV4dC5jbGlw
KGNsaXBSZWN0KTsKKyAgICAgICAgaWYgKHRyYW5zcGFyZW50KQorICAgICAgICAgICAgY29udGV4
dC5jbGVhclJlY3QoY2xpcFJlY3QpOworICAgICAgICBmcmFtZS0+dmlldygpLT5wYWludCgmY29u
dGV4dCwgY2xpcFJlY3QpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcmVjdHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEludFJlY3QgcmVjdCA9IHJl
Y3RzW2ldOworICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7CisgICAgICAgICAgICBjb250ZXh0
LmNsaXAocmVjdCk7CisgICAgICAgICAgICBpZiAodHJhbnNwYXJlbnQpCisgICAgICAgICAgICAg
ICAgY29udGV4dC5jbGVhclJlY3QocmVjdCk7CisgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5w
YWludCgmY29udGV4dCwgcmVjdCk7CisgICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGNvbnRleHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xpcChj
bGlwUmVjdCk7CisgICAgZnJhbWUtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kcmF3
Tm9kZUhpZ2hsaWdodChjb250ZXh0KTsKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKK30KKyNpZmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgogc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19leHBv
c2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50RXhwb3NlKiBldmVudCkKIHsKICAg
ICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7CkBAIC01
MzAsMzIgKzU1OSwxMSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2V4cG9zZV9l
dmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRFeHBvc2UqCiAgICAgICAgIGludCByZWN0
Q291bnQ7CiAgICAgICAgIEdPd25QdHI8R2RrUmVjdGFuZ2xlPiByZWN0czsKICAgICAgICAgZ2Rr
X3JlZ2lvbl9nZXRfcmVjdGFuZ2xlcyhldmVudC0+cmVnaW9uLCAmcmVjdHMub3V0UHRyKCksICZy
ZWN0Q291bnQpOworICAgICAgICBWZWN0b3I8SW50UmVjdD4gcGFpbnRSZWN0czsKKyAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCByZWN0Q291bnQ7IGkrKykKKyAgICAgICAgICAgIHBhaW50UmVj
dHMuYXBwZW5kKEludFJlY3QocmVjdHMuZ2V0KClbaV0pKTsKIAotICAgICAgICAvLyBBdm9pZCBy
ZWN1cnNpbmcgaW50byB0aGUgcmVuZGVyIHRyZWUgZXhjZXNzaXZlbHkKLSAgICAgICAgYm9vbCBj
b2FsZXNjZSA9IHNob3VsZENvYWxlc2NlKGV2ZW50LT5hcmVhLCByZWN0cy5nZXQoKSwgcmVjdENv
dW50KTsKLQotICAgICAgICBpZiAoY29hbGVzY2UpIHsKLSAgICAgICAgICAgIEludFJlY3QgcmVj
dCA9IGV2ZW50LT5hcmVhOwotICAgICAgICAgICAgY3R4LmNsaXAocmVjdCk7Ci0gICAgICAgICAg
ICBpZiAocHJpdi0+dHJhbnNwYXJlbnQpCi0gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdChy
ZWN0KTsKLSAgICAgICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjdHgsIHJlY3QpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWN0Q291bnQ7
IGkrKykgewotICAgICAgICAgICAgICAgIEludFJlY3QgcmVjdCA9IHJlY3RzLmdldCgpW2ldOwot
ICAgICAgICAgICAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICAgICAgICAgICAgY3R4LmNsaXAocmVj
dCk7Ci0gICAgICAgICAgICAgICAgaWYgKHByaXYtPnRyYW5zcGFyZW50KQotICAgICAgICAgICAg
ICAgICAgICBjdHguY2xlYXJSZWN0KHJlY3QpOwotICAgICAgICAgICAgICAgIGZyYW1lLT52aWV3
KCktPnBhaW50KCZjdHgsIHJlY3QpOwotICAgICAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjdHguc2F2ZSgpOwotICAgICAgICBj
dHguY2xpcChzdGF0aWNfY2FzdDxJbnRSZWN0PihldmVudC0+YXJlYSkpOwotICAgICAgICBmcmFt
ZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRyYXdOb2RlSGlnaGxpZ2h0KGN0eCk7
Ci0gICAgICAgIGN0eC5yZXN0b3JlKCk7CisgICAgICAgIHBhaW50V2ViVmlldyhmcmFtZSwgcHJp
di0+dHJhbnNwYXJlbnQsIGN0eCwgc3RhdGljX2Nhc3Q8SW50UmVjdD4oZXZlbnQtPmFyZWEpLCBw
YWludFJlY3RzKTsKICAgICB9CiAKICAgICByZXR1cm4gRkFMU0U7CkBAIC01NzQsMTQgKzU4Miwx
OCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2RyYXcoR3RrV2lkZ2V0KiB3aWRn
ZXQsIGNhaXJvX3QqIGNyKQogICAgIGlmIChmcmFtZS0+Y29udGVudFJlbmRlcmVyKCkgJiYgZnJh
bWUtPnZpZXcoKSkgewogICAgICAgICBHcmFwaGljc0NvbnRleHQgY3R4KGNyKTsKICAgICAgICAg
SW50UmVjdCByZWN0ID0gY2xpcFJlY3Q7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZV9saXN0X3Qq
IHJlY3RMaXN0ID0gY2Fpcm9fY29weV9jbGlwX3JlY3RhbmdsZV9saXN0KGNyKTsKIAogICAgICAg
ICBmcmFtZS0+dmlldygpLT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7
Ci0gICAgICAgIGlmIChwcml2LT50cmFuc3BhcmVudCkKLSAgICAgICAgICAgIGN0eC5jbGVhclJl
Y3QocmVjdCk7Ci0gICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjdHgsIHJlY3QpOwotICAg
ICAgICBjdHguc2F2ZSgpOwotICAgICAgICBmcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmRyYXdOb2RlSGlnaGxpZ2h0KGN0eCk7Ci0gICAgICAgIGN0eC5yZXN0b3JlKCk7CisK
KyAgICAgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOworICAgICAgICBpZiAoIXJlY3RMaXN0LT5z
dGF0dXMgJiYgcmVjdExpc3QtPm51bV9yZWN0YW5nbGVzID4gMCkgeworICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCByZWN0TGlzdC0+bnVtX3JlY3RhbmdsZXM7IGkrKykKKyAgICAgICAg
ICAgICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nSW50UmVjdChGbG9hdFJlY3QocmVjdExpc3Qt
PnJlY3RhbmdsZXNbaV0pKSk7CisgICAgICAgIH0KKyAgICAgICAgcGFpbnRXZWJWaWV3KGZyYW1l
LCBwcml2LT50cmFuc3BhcmVudCwgY3R4LCByZWN0LCByZWN0cyk7CisKKyAgICAgICAgY2Fpcm9f
cmVjdGFuZ2xlX2xpc3RfZGVzdHJveShyZWN0TGlzdCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEZB
TFNFOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>