<?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>114314</bug_id>
          
          <creation_ts>2013-04-09 15:58:08 -0700</creation_ts>
          <short_desc>FindBanner matches are offset when the WKView has a header or footer</short_desc>
          <delta_ts>2013-04-10 13:56:11 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>872121</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-09 15:58:08 -0700</bug_when>
    <thetext>FindBanner matches don&apos;t line up correctly when a WKView has a header or footer. 

&lt;rdar://problem/13522434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872277</commentid>
    <comment_count>1</comment_count>
      <attachid>197187</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-09 16:27:35 -0700</bug_when>
    <thetext>Created attachment 197187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873181</commentid>
    <comment_count>2</comment_count>
      <attachid>197392</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-10 13:14:22 -0700</bug_when>
    <thetext>Created attachment 197392
Patch with new names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873182</commentid>
    <comment_count>3</comment_count>
      <attachid>197392</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-10 13:14:57 -0700</bug_when>
    <thetext>Comment on attachment 197392
Patch with new names

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

&gt; Source/WebCore/platform/ScrollView.cpp:338
&gt; +IntSize ScrollView::scrollOffsetRealtiveToDocument() const

Relative?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873184</commentid>
    <comment_count>4</comment_count>
      <attachid>197392</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-10 13:16:01 -0700</bug_when>
    <thetext>Comment on attachment 197392
Patch with new names

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:2384
&gt; +LayoutRect RenderLayer::getRectToExpose(const LayoutRect &amp;visibleRect, LayoutRect &amp;visibleRectRealtiveToDocument, const LayoutRect &amp;exposeRect, const ScrollAlignment&amp; alignX, const ScrollAlignment&amp; alignY)

Relative again.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2424
&gt; +    LayoutUnit intersectHeight = intersection(visibleRectRealtiveToDocument, exposeRectY).height();

And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873186</commentid>
    <comment_count>5</comment_count>
      <attachid>197392</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-10 13:18:30 -0700</bug_when>
    <thetext>Comment on attachment 197392
Patch with new names

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        New function subtracts out the headerHeight() to treat the top of the document at 
&gt; +        (0,0).

Awkward line breaking.

&gt; Source/WebCore/WebCore.exp.in:1227
&gt; +__ZNK7WebCore10ScrollView30scrollOffsetRealtiveToDocumentEv

Typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873195</commentid>
    <comment_count>6</comment_count>
      <attachid>197395</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-10 13:25:52 -0700</bug_when>
    <thetext>Created attachment 197395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873206</commentid>
    <comment_count>7</comment_count>
      <attachid>197395</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-10 13:38:51 -0700</bug_when>
    <thetext>Comment on attachment 197395
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        Use scrollOffsetRealtiveToDocument() where we were previously making this 

Still misspelledt here.

&gt; Source/WebCore/platform/ScrollView.cpp:753
&gt; +    IntSize offsetRelativeToTotalContents = scrollOffset() + IntSize(0, headerHeight());

offsetIncludingHeader?

&gt; Source/WebCore/rendering/RenderLayer.h:404
&gt; +    LayoutRect getRectToExpose(const LayoutRect&amp; visibleRect, LayoutRect&amp; visibleRectRelativeToDocument, const LayoutRect&amp; exposeRect, const ScrollAlignment&amp; alignX, const ScrollAlignment&amp; alignY);

visibleRectRelativeToDocument should be a const LayoutRect&amp;, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873227</commentid>
    <comment_count>8</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-04-10 13:56:11 -0700</bug_when>
    <thetext>Thanks Simon!

http://trac.webkit.org/changeset/148137</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197187</attachid>
            <date>2013-04-09 16:27:35 -0700</date>
            <delta_ts>2013-04-10 13:14:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>11043</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA0LTA5ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBGaW5kQmFubmVyIG1hdGNoZXMgYXJl
IG9mZnNldCB3aGVuIHRoZSBXS1ZpZXcgaGFzIGEgaGVhZGVyIG9yIGZvb3RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzE0CisgICAgICAgIC1h
bmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNTIyNDM0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUg
YWxyZWFkeSBhIGZldyBwbGFjZXMgaW4gdGhlIGNvZGUgd2hlcmUgd2UgbmVlZGVkIHRvIGFkanVz
dCB0aGUgCisgICAgICAgIHNjcm9sbE9mZnNldCgpIHRvIHByZXRlbmQgdGhhdCAoMCwwKSBpcyB0
aGF0IHRoZSB0b3Agb2YgdGhlIERvY3VtZW50IHJhdGhlciB0aGFuIAorICAgICAgICB0aGUgdG9w
IG9mIHRoZSBoZWFkZXIuIFRvIGZpeCB0aGUgRmluZEJhbm5lciBpc3N1ZXMsIHdlIG5lZWQgdG8g
a25vdyB0aGF0IHZlcnNpb24gCisgICAgICAgIG9mIHRoZSBvZmZzZXQgaW4gYSBmZXcgbW9yZSBw
bGFjZXMsIHNvIEkgYWRkZWQgYSBmdW5jdGlvbiBvbiBTY3JvbGxWaWV3IHRvIGZldGNoIAorICAg
ICAgICBpdCBjYWxsZWQgc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNBbmNob3JQb2ludCgpLgor
CisgICAgICAgIE5ldyBmdW5jdGlvbiBzdWJ0cmFjdHMgb3V0IHRoZSBoZWFkZXJIZWlnaHQoKSB0
byB0cmVhdCB0aGUgdG9wIG9mIHRoZSBkb2N1bWVudCBhdCAKKyAgICAgICAgKDAsMCkuCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRB
c0FuY2hvclBvaW50KToKKworICAgICAgICBVc2Ugc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNB
bmNob3JQb2ludCgpIHdoZXJlIHdlIHdlcmUgcHJldmlvdXNseSBtYWtpbmcgdGhpcyAKKyAgICAg
ICAgY2FsY3VsYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp3aW5kb3dUb0Nv
bnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgIChTY3Jv
bGxWaWV3KToKKworICAgICAgICBnZXRSZWN0VG9FeHBvc2UgbmVlZHMgdG8ga25vdyBhYm91dCB0
aGUgYWN0dWFsIHZpc2libGVDb250ZW50UmVjdCBhbmQgdGhlIAorICAgICAgICB2aXNpYmxlQ29u
dGVudFJlY3QgdGhhdCBpcyBpbiB0aGUgZG9jdW1lbnQtYXMtYW5jaG9yLXBvaW50IGNvb3JkaW5h
dGVzLiBTbyB0aGlzIAorICAgICAgICBwYXRjaCBhZGRzIGEgbmV3IHBhcmFtZXRlciB0byBnZXRS
ZWN0VG9FeHBvc2UgZm9yIHRoYXQgcHVycG9zZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9zZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisKIDIwMTMtMDQtMDYgIFJvZ2Vy
IEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgcmVxdWlzaXRl
IGhhcmR3YXJlIGNoZWNrcyBmb3IgZW5hYmxpbmcgYW50aWFsaWFzaW5nLgpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHJldmlzaW9uIDE0ODAzMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIzLDYgKzEyMjMsNyBAQCBfX1pOSzdXZWJDb3Jl
MTBTY3JvbGxWaWV3MTZ3aW5kb3dUb0NvbnRlCiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MTZ3
aW5kb3dUb0NvbnRlbnRzRVJLTlNfOEludFBvaW50RQogX19aTks3V2ViQ29yZTEwU2Nyb2xsVmll
dzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlMTBTY3Jv
bGxWaWV3MThjb250ZW50c1RvUm9vdFZpZXdFUktOU184SW50UG9pbnRFCitfX1pOSzdXZWJDb3Jl
MTBTY3JvbGxWaWV3MzdzY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRBc0FuY2hvclBvaW50RXYKIF9f
Wk5LN1dlYkNvcmUxMFN0b3JhZ2VNYXA2bGVuZ3RoRXYKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VN
YXA3Z2V0SXRlbUVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VNYXA4Y29u
dGFpbnNFUktOM1dURjZTdHJpbmdFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcAkocmV2aXNpb24gMTQ4MDMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNSw2ICszMzUsMTIgQEAgSW50UG9pbnQg
U2Nyb2xsVmlldzo6YWRqdXN0U2Nyb2xsUG9zaXRpbwogICAgIHJldHVybiBuZXdTY3JvbGxQb3Np
dGlvbjsKIH0KIAorSW50U2l6ZSBTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRB
c0FuY2hvclBvaW50KCkgY29uc3QKK3sKKyAgICBJbnRTaXplIHNjcm9sbE9mZnNldCA9IHRoaXMt
PnNjcm9sbE9mZnNldCgpOworICAgIHJldHVybiBJbnRTaXplKHNjcm9sbE9mZnNldC53aWR0aCgp
LCBzY3JvbGxPZmZzZXQuaGVpZ2h0KCkgLSBoZWFkZXJIZWlnaHQoKSk7Cit9CisKIGludCBTY3Jv
bGxWaWV3OjpzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25z
dAogewogICAgIC8vIElmIG5vIHNjcm9sbGJhcnMgYXJlIHByZXNlbnQsIGl0IGRvZXMgbm90IGlu
ZGljYXRlIGNvbnRlbnQgaXMgbm90IGJlIHNjcm9sbGFibGUuCkBAIC03MzYsOCArNzQyLDcgQEAg
SW50UG9pbnQgU2Nyb2xsVmlldzo6d2luZG93VG9Db250ZW50cyhjbwogICAgICAgICByZXR1cm4g
Y29udmVydEZyb21Db250YWluaW5nV2luZG93KHdpbmRvd1BvaW50KTsKIAogICAgIEludFBvaW50
IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyh3aW5kb3dQb2ludCk7Ci0g
ICAgSW50U2l6ZSBvZmZzZXRJbkRvY3VtZW50ID0gc2Nyb2xsT2Zmc2V0KCkgLSBJbnRTaXplKDAs
IGhlYWRlckhlaWdodCgpKTsKLSAgICByZXR1cm4gdmlld1BvaW50ICsgb2Zmc2V0SW5Eb2N1bWVu
dDsKKyAgICByZXR1cm4gdmlld1BvaW50ICsgc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNBbmNo
b3JQb2ludCgpOwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93KGNv
bnN0IEludFBvaW50JiBjb250ZW50c1BvaW50KSBjb25zdApAQCAtNzU2LDggKzc2MSw3IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6d2luZG93VG9Db250ZW50cyhjb24KICAgICAgICAgcmV0dXJuIGNv
bnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyh3aW5kb3dSZWN0KTsKIAogICAgIEludFJlY3Qgdmll
d1JlY3QgPSBjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UmVjdCk7Ci0gICAgSW50
U2l6ZSBvZmZzZXRJbkRvY3VtZW50ID0gc2Nyb2xsT2Zmc2V0KCkgLSBJbnRTaXplKDAsIGhlYWRl
ckhlaWdodCgpKTsKLSAgICB2aWV3UmVjdC5tb3ZlKG9mZnNldEluRG9jdW1lbnQpOworICAgIHZp
ZXdSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNBbmNob3JQb2ludCgpKTsKICAg
ICByZXR1cm4gdmlld1JlY3Q7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgJKHJldmlzaW9uIDE0ODAzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSwxMSBAQCBwdWJsaWM6CiAgICAg
aW50IHNjcm9sbFgoKSBjb25zdCB7IHJldHVybiBzY3JvbGxQb3NpdGlvbigpLngoKTsgfQogICAg
IGludCBzY3JvbGxZKCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsUG9zaXRpb24oKS55KCk7IH0KIAor
ICAgIC8vIHNjcm9sbE9mZnNldCgpIGFuY2hvcnMgaXRzICgwLDApIHBvaW50IGF0IHRoZSB0b3Ag
ZW5kIG9mIHRoZSBoZWFkZXIgaWYgdGhpcyBTY3JvbGxhYmxlQXJlYQorICAgIC8vIGhhcyBhIGhl
YWRlci4gc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNBbmNob3JQb2ludCgpIGFuY2hvcnMgKDAs
MCkgYXQgdGhlIHRvcCBvZiB0aGUgRG9jdW1lbnQsCisgICAgLy8gd2hpY2ggd2lsbCBiZSBiZW5l
YXRoIGFueSBoZWFkZXJzLgorICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNB
bmNob3JQb2ludCgpIGNvbnN0OworCiAgICAgdmlydHVhbCBJbnRTaXplIG92ZXJoYW5nQW1vdW50
KCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIGNhY2hlQ3VycmVudFNjcm9sbFBvc2l0aW9u
KCkgeyBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb24oKTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxNDgwMzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjkwLDcgKzIyOTAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKGNvCiAgICAgICAgIEFTU0VSVChib3gpOwogICAgICAgICBMYXlvdXRSZWN0IGxvY2Fs
RXhwb3NlUmVjdChib3gtPmFic29sdXRlVG9Mb2NhbFF1YWQoRmxvYXRRdWFkKEZsb2F0UmVjdChy
ZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgICAgICBMYXlvdXRSZWN0
IGxheWVyQm91bmRzKDAsIDAsIGJveC0+Y2xpZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQo
KSk7Ci0gICAgICAgIExheW91dFJlY3QgciA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywg
bG9jYWxFeHBvc2VSZWN0LCBhbGlnblgsIGFsaWduWSk7CisgICAgICAgIExheW91dFJlY3QgciA9
IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywgbGF5ZXJCb3VuZHMsIGxvY2FsRXhwb3NlUmVj
dCwgYWxpZ25YLCBhbGlnblkpOwogCiAgICAgICAgIEludFNpemUgY2xhbXBlZFNjcm9sbE9mZnNl
dCA9IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJvdW5kZWRJ
bnRSZWN0KHIpLmxvY2F0aW9uKCkpKTsKICAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQg
IT0gc2Nyb2xsT2Zmc2V0KCkpIHsKQEAgLTIzMTQsNyArMjMxNCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY28KIAogICAgICAgICAgICAgICAgIGlmIChmcmFtZUVs
ZW1lbnRBbmRWaWV3UGVybWl0U2Nyb2xsKGZyYW1lRWxlbWVudCwgZnJhbWVWaWV3KSkgewogICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxl
Q29udGVudFJlY3QoKTsKLSAgICAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBleHBvc2VSZWN0
ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCByZWN0LCBhbGlnblgsIGFsaWduWSk7CisgICAg
ICAgICAgICAgICAgICAgIExheW91dFJlY3QgZXhwb3NlUmVjdCA9IGdldFJlY3RUb0V4cG9zZSh2
aWV3UmVjdCwgdmlld1JlY3QsIHJlY3QsIGFsaWduWCwgYWxpZ25ZKTsKIAogICAgICAgICAgICAg
ICAgICAgICBpbnQgeE9mZnNldCA9IHJvdW5kVG9JbnQoZXhwb3NlUmVjdC54KCkpOwogICAgICAg
ICAgICAgICAgICAgICBpbnQgeU9mZnNldCA9IHJvdW5kVG9JbnQoZXhwb3NlUmVjdC55KCkpOwpA
QCAtMjMzNCw3ICsyMzM0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2li
bGUoY28KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIExheW91dFJlY3Qgdmlld1JlY3QgPSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVj
dCgpOwotICAgICAgICAgICAgICAgIExheW91dFJlY3QgciA9IGdldFJlY3RUb0V4cG9zZSh2aWV3
UmVjdCwgcmVjdCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICAgICAgICAgIExheW91dFJlY3Qg
dmlzaWJsZVJlY3RXaXRoRG9jdW1lbnRBc0FuY2hvclBvaW50ID0gdmlld1JlY3Q7CisgICAgICAg
ICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRBc0FuY2hvclBvaW50ID0g
ZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRBc0FuY2hvclBvaW50KCk7CisgICAg
ICAgICAgICAgICAgdmlzaWJsZVJlY3RXaXRoRG9jdW1lbnRBc0FuY2hvclBvaW50LnNldExvY2F0
aW9uKEludFBvaW50KHNjcm9sbE9mZnNldFdpdGhEb2N1bWVudEFzQW5jaG9yUG9pbnQud2lkdGgo
KSwgc2Nyb2xsT2Zmc2V0V2l0aERvY3VtZW50QXNBbmNob3JQb2ludC5oZWlnaHQoKSkpOworCisg
ICAgICAgICAgICAgICAgTGF5b3V0UmVjdCByID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCB2
aXNpYmxlUmVjdFdpdGhEb2N1bWVudEFzQW5jaG9yUG9pbnQsIHJlY3QsIGFsaWduWCwgYWxpZ25Z
KTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBmcmFtZVZpZXctPnNldFNjcm9s
bFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChyLmxvY2F0aW9uKCkpKTsKIApAQCAtMjM3Nyw3ICsy
MzgxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcgogI2VuZGlm
CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9zZShjb25zdCBMYXlv
dXRSZWN0ICZ2aXNpYmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCAmZXhwb3NlUmVjdCwgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKQor
TGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3Qg
JnZpc2libGVSZWN0LCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdFdpdGhEb2N1bWVudEFzQW5jaG9y
UG9pbnQsIGNvbnN0IExheW91dFJlY3QgJmV4cG9zZVJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSkKIHsKICAgICAvLyBEZXRl
cm1pbmUgdGhlIGFwcHJvcHJpYXRlIFggYmVoYXZpb3IuCiAgICAgU2Nyb2xsQmVoYXZpb3Igc2Ny
b2xsWDsKQEAgLTI0MTcsNyArMjQyMSw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJl
Y3RUb0V4cG9zZSgKICAgICAvLyBEZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlIFkgYmVoYXZpb3Iu
CiAgICAgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsWTsKICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3RZ
KHZpc2libGVSZWN0LngoKSwgZXhwb3NlUmVjdC55KCksIHZpc2libGVSZWN0LndpZHRoKCksIGV4
cG9zZVJlY3QuaGVpZ2h0KCkpOwotICAgIExheW91dFVuaXQgaW50ZXJzZWN0SGVpZ2h0ID0gaW50
ZXJzZWN0aW9uKHZpc2libGVSZWN0LCBleHBvc2VSZWN0WSkuaGVpZ2h0KCk7CisgICAgTGF5b3V0
VW5pdCBpbnRlcnNlY3RIZWlnaHQgPSBpbnRlcnNlY3Rpb24odmlzaWJsZVJlY3RXaXRoRG9jdW1l
bnRBc0FuY2hvclBvaW50LCBleHBvc2VSZWN0WSkuaGVpZ2h0KCk7CiAgICAgaWYgKGludGVyc2Vj
dEhlaWdodCA9PSBleHBvc2VSZWN0LmhlaWdodCgpKQogICAgICAgICAvLyBJZiB0aGUgcmVjdGFu
Z2xlIGlzIGZ1bGx5IHZpc2libGUsIHVzZSB0aGUgc3BlY2lmaWVkIHZpc2libGUgYmVoYXZpb3Iu
CiAgICAgICAgIHNjcm9sbFkgPSBTY3JvbGxBbGlnbm1lbnQ6OmdldFZpc2libGVCZWhhdmlvcihh
bGlnblkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlz
aW9uIDE0ODAzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MDEsNyArNDAxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY3Jv
bGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQm
IGFsaWduWCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkpOwogCi0gICAgTGF5b3V0UmVj
dCBnZXRSZWN0VG9FeHBvc2UoY29uc3QgTGF5b3V0UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IExh
eW91dFJlY3QmIGV4cG9zZVJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25YLCBjb25z
dCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSk7CisgICAgTGF5b3V0UmVjdCBnZXRSZWN0VG9FeHBv
c2UoY29uc3QgTGF5b3V0UmVjdCYgdmlzaWJsZVJlY3QsIExheW91dFJlY3QmIHZpc2libGVSZWN0
V2l0aERvY3VtZW50QXNBbmNob3JQb2ludCwgY29uc3QgTGF5b3V0UmVjdCYgZXhwb3NlUmVjdCwg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxp
Z25ZKTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNT
Y3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gbV9oQmFyIHx8IG1fdkJhcjsgfQpJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTQ4MDYxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDQtMDkgIEJldGggRGFraW4gIDxiZGFr
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpbmRCYW5uZXIgbWF0Y2hlcyBhcmUgb2Zmc2V0IHdo
ZW4gdGhlIFdLVmlldyBoYXMgYSBoZWFkZXIgb3IgZm9vdGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQzMTQKKyAgICAgICAgLWFuZCBjb3JyZXNw
b25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM1MjI0MzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUg
bWF0Y2hpbmcgcmVjdHMsIGFsc28gYWRqdXN0IHRvIGRvY3VtZW50LWFzLWFuY2hvci1wb2ludCAK
KyAgICAgICAgY29vcmRpbmF0ZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnJlY3RzRm9y
VGV4dE1hdGNoZXMpOgorCiAyMDEzLTA0LTA5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE0NzQ1NCk6IFlvdXR1YmUgYW5ub3Rh
dGlvbiBsaW5rcyB0byBuZXcgd2luZG93IGJyb2tlbgpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAx
NDgwMzApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsNyArMzYyLDcgQEAgVmVjdG9yPEludFJlY3Q+
IEZpbmRDb250cm9sbGVyOjpyZWN0c0ZvcgogCiAgICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3Qg
PSBmcmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAgVmVjdG9yPElu
dFJlY3Q+IGZyYW1lUmVjdHMgPSBkb2N1bWVudC0+bWFya2VycygpLT5yZW5kZXJlZFJlY3RzRm9y
TWFya2VycyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKLSAgICAgICAgSW50UG9pbnQgZnJh
bWVPZmZzZXQoLWZyYW1lLT52aWV3KCktPnNjcm9sbE9mZnNldCgpLndpZHRoKCksIC1mcmFtZS0+
dmlldygpLT5zY3JvbGxPZmZzZXQoKS5oZWlnaHQoKSk7CisgICAgICAgIEludFBvaW50IGZyYW1l
T2Zmc2V0KC1mcmFtZS0+dmlldygpLT5zY3JvbGxPZmZzZXRXaXRoRG9jdW1lbnRBc0FuY2hvclBv
aW50KCkud2lkdGgoKSwgLWZyYW1lLT52aWV3KCktPnNjcm9sbE9mZnNldFdpdGhEb2N1bWVudEFz
QW5jaG9yUG9pbnQoKS5oZWlnaHQoKSk7CiAgICAgICAgIGZyYW1lT2Zmc2V0ID0gZnJhbWUtPnZp
ZXcoKS0+Y29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhmcmFtZU9mZnNldCk7CiAKICAgICAgICAg
Zm9yIChWZWN0b3I8SW50UmVjdD46Oml0ZXJhdG9yIGl0ID0gZnJhbWVSZWN0cy5iZWdpbigpLCBl
bmQgPSBmcmFtZVJlY3RzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197392</attachid>
            <date>2013-04-10 13:14:22 -0700</date>
            <delta_ts>2013-04-10 13:25:52 -0700</delta_ts>
            <desc>Patch with new names</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>11575</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA0LTA5ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBGaW5kQmFubmVyIG1hdGNoZXMgYXJl
IG9mZnNldCB3aGVuIHRoZSBXS1ZpZXcgaGFzIGEgaGVhZGVyIG9yIGZvb3RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzE0CisgICAgICAgIC1h
bmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNTIyNDM0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUg
YWxyZWFkeSBhIGZldyBwbGFjZXMgaW4gdGhlIGNvZGUgd2hlcmUgd2UgbmVlZGVkIHRvIGFkanVz
dCB0aGUgCisgICAgICAgIHNjcm9sbE9mZnNldCgpIHRvIHByZXRlbmQgdGhhdCAoMCwwKSBpcyB0
aGF0IHRoZSB0b3Agb2YgdGhlIERvY3VtZW50IHJhdGhlciB0aGFuIAorICAgICAgICB0aGUgdG9w
IG9mIHRoZSBoZWFkZXIuIFRvIGZpeCB0aGUgRmluZEJhbm5lciBpc3N1ZXMsIHdlIG5lZWQgdG8g
a25vdyB0aGF0IHZlcnNpb24gCisgICAgICAgIG9mIHRoZSBvZmZzZXQgaW4gYSBmZXcgbW9yZSBw
bGFjZXMsIHNvIEkgYWRkZWQgYSBmdW5jdGlvbiBvbiBTY3JvbGxWaWV3IHRvIGZldGNoIAorICAg
ICAgICBpdCBjYWxsZWQgc2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0RvY3VtZW50KCkuCisKKyAgICAg
ICAgTmV3IGZ1bmN0aW9uIHN1YnRyYWN0cyBvdXQgdGhlIGhlYWRlckhlaWdodCgpIHRvIHRyZWF0
IHRoZSB0b3Agb2YgdGhlIGRvY3VtZW50IGF0IAorICAgICAgICAoMCwwKS4KKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbE9mZnNldFJlYWx0aXZlVG9Eb2N1bWVudCk6
CisKKyAgICAgICAgVXNlIHNjcm9sbE9mZnNldFJlYWx0aXZlVG9Eb2N1bWVudCgpIHdoZXJlIHdl
IHdlcmUgcHJldmlvdXNseSBtYWtpbmcgdGhpcyAKKyAgICAgICAgY2FsY3VsYXRpb24uIEFsc28g
cmUtbmFtZSBhbiBpbmFjY3VyYXRlbHkgbmFtZWQgdmFyaWFibGUgd2hlcmUgd2UgYXJlIGFjdHVh
bGx5IAorICAgICAgICBjb252ZXJ0aW5nIEZST00gYSBkb2N1bWVudCBvZmZzZXQgdG8gYSBTY3Jv
bGxhYmxlQXJlYSBvZmZzZXQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp3aW5kb3dU
b0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgIChT
Y3JvbGxWaWV3KToKKworICAgICAgICBnZXRSZWN0VG9FeHBvc2UgbmVlZHMgdG8ga25vdyBhYm91
dCB0aGUgYWN0dWFsIHZpc2libGVDb250ZW50UmVjdCBhbmQgdGhlIAorICAgICAgICB2aXNpYmxl
Q29udGVudFJlY3QgdGhhdCBpcyByZWxhdGl2ZSB0byB0aGUgRG9jdW1lbnQuIFNvIHRoaXMgCisg
ICAgICAgIHBhdGNoIGFkZHMgYSBuZXcgcGFyYW1ldGVyIHRvIGdldFJlY3RUb0V4cG9zZSBmb3Ig
dGhhdCBwdXJwb3NlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKwogMjAxMy0wNC0xMCAgVmljdG9yIENvc3RhbiAgPGNvc3Rh
bkBnbWFpbC5jb20+CiAKICAgICAgICAgQmxvYiBjb250ZW50IHR5cGUgbm9ybWFsaXphdGlvbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNDgxMTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTIyNCw2ICsxMjI0LDcgQEAg
X19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzE2d2luZG93VG9Db250ZQogX19aTks3V2ViQ29yZTEw
U2Nyb2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNv
cmUxMFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3
V2ViQ29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQor
X19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzMwc2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0RvY3VtZW50
RXYKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VNYXA2bGVuZ3RoRXYKIF9fWk5LN1dlYkNvcmUxMFN0
b3JhZ2VNYXA3Z2V0SXRlbUVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VN
YXA4Y29udGFpbnNFUktOM1dURjZTdHJpbmdFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMTQ4MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNSw2ICszMzUsMTIgQEAgSW50
UG9pbnQgU2Nyb2xsVmlldzo6YWRqdXN0U2Nyb2xsUG9zaXRpbwogICAgIHJldHVybiBuZXdTY3Jv
bGxQb3NpdGlvbjsKIH0KIAorSW50U2l6ZSBTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXRSZWFsdGl2
ZVRvRG9jdW1lbnQoKSBjb25zdAoreworICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gdGhpcy0+
c2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIEludFNpemUoc2Nyb2xsT2Zmc2V0LndpZHRoKCks
IHNjcm9sbE9mZnNldC5oZWlnaHQoKSAtIGhlYWRlckhlaWdodCgpKTsKK30KKwogaW50IFNjcm9s
bFZpZXc6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0
CiB7CiAgICAgLy8gSWYgbm8gc2Nyb2xsYmFycyBhcmUgcHJlc2VudCwgaXQgZG9lcyBub3QgaW5k
aWNhdGUgY29udGVudCBpcyBub3QgYmUgc2Nyb2xsYWJsZS4KQEAgLTczNiw4ICs3NDIsNyBAQCBJ
bnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvCiAgICAgICAgIHJldHVybiBj
b252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UG9pbnQpOwogCiAgICAgSW50UG9pbnQg
dmlld1BvaW50ID0gY29udmVydEZyb21Db250YWluaW5nV2luZG93KHdpbmRvd1BvaW50KTsKLSAg
ICBJbnRTaXplIG9mZnNldEluRG9jdW1lbnQgPSBzY3JvbGxPZmZzZXQoKSAtIEludFNpemUoMCwg
aGVhZGVySGVpZ2h0KCkpOwotICAgIHJldHVybiB2aWV3UG9pbnQgKyBvZmZzZXRJbkRvY3VtZW50
OworICAgIHJldHVybiB2aWV3UG9pbnQgKyBzY3JvbGxPZmZzZXRSZWFsdGl2ZVRvRG9jdW1lbnQo
KTsKIH0KIAogSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udGVudHNUb1dpbmRvdyhjb25zdCBJbnRQ
b2ludCYgY29udGVudHNQb2ludCkgY29uc3QKQEAgLTc0NSw4ICs3NTAsOCBAQCBJbnRQb2ludCBT
Y3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93KGNvCiAgICAgaWYgKGRlbGVnYXRlc1Njcm9sbGlu
ZygpKQogICAgICAgICByZXR1cm4gY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhjb250ZW50c1Bv
aW50KTsKIAotICAgIEludFNpemUgb2Zmc2V0SW5Eb2N1bWVudCA9IHNjcm9sbE9mZnNldCgpICsg
SW50U2l6ZSgwLCBoZWFkZXJIZWlnaHQoKSk7Ci0gICAgSW50UG9pbnQgdmlld1BvaW50ID0gY29u
dGVudHNQb2ludCAtIG9mZnNldEluRG9jdW1lbnQ7CisgICAgSW50U2l6ZSBvZmZzZXRSZWxhdGl2
ZVRvVG90YWxDb250ZW50cyA9IHNjcm9sbE9mZnNldCgpICsgSW50U2l6ZSgwLCBoZWFkZXJIZWln
aHQoKSk7CisgICAgSW50UG9pbnQgdmlld1BvaW50ID0gY29udGVudHNQb2ludCAtIG9mZnNldFJl
bGF0aXZlVG9Ub3RhbENvbnRlbnRzOwogICAgIHJldHVybiBjb252ZXJ0VG9Db250YWluaW5nV2lu
ZG93KHZpZXdQb2ludCk7ICAKIH0KIApAQCAtNzU2LDggKzc2MSw3IEBAIEludFJlY3QgU2Nyb2xs
Vmlldzo6d2luZG93VG9Db250ZW50cyhjb24KICAgICAgICAgcmV0dXJuIGNvbnZlcnRGcm9tQ29u
dGFpbmluZ1dpbmRvdyh3aW5kb3dSZWN0KTsKIAogICAgIEludFJlY3Qgdmlld1JlY3QgPSBjb252
ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UmVjdCk7Ci0gICAgSW50U2l6ZSBvZmZzZXRJ
bkRvY3VtZW50ID0gc2Nyb2xsT2Zmc2V0KCkgLSBJbnRTaXplKDAsIGhlYWRlckhlaWdodCgpKTsK
LSAgICB2aWV3UmVjdC5tb3ZlKG9mZnNldEluRG9jdW1lbnQpOworICAgIHZpZXdSZWN0Lm1vdmUo
c2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0RvY3VtZW50KCkpOwogICAgIHJldHVybiB2aWV3UmVjdDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gMTQ4
MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xODUsNiArMTg1LDEyIEBAIHB1YmxpYzoKICAgICBpbnQgc2Nyb2xsWCgpIGNvbnN0
IHsgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkueCgpOyB9CiAgICAgaW50IHNjcm9sbFkoKSBjb25z
dCB7IHJldHVybiBzY3JvbGxQb3NpdGlvbigpLnkoKTsgfQogCisgICAgLy8gc2Nyb2xsT2Zmc2V0
KCkgYW5jaG9ycyBpdHMgKDAsMCkgcG9pbnQgYXQgdGhlIHRvcCBlbmQgb2YgdGhlIGhlYWRlciBp
ZiB0aGlzIFNjcm9sbGFibGVBcmVhCisgICAgLy8gaGFzIGEgaGVhZGVyLCBzbyBpdCBpcyByZWxh
dGl2ZSB0byB0aGUgdG90YWxDb250ZW50c1NpemUoKS4gc2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0Rv
Y3VtZW50KCkKKyAgICAvLyBhbmNob3JzICgwLDApIGF0IHRoZSB0b3Agb2YgdGhlIERvY3VtZW50
LCB3aGljaCB3aWxsIGJlIGJlbmVhdGggYW55IGhlYWRlcnMsIHNvIGl0IGlzIHJlbGF0aXZlCisg
ICAgLy8gdG8gY29udGVudHNTaXplKCkuCisgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRSZWFsdGl2
ZVRvRG9jdW1lbnQoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ftb3Vu
dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBjYWNoZUN1cnJlbnRTY3JvbGxQb3NpdGlv
bigpIHsgbV9jYWNoZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uKCk7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTQ4MTE0
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjI5MCw3ICsyMjkwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRv
VmlzaWJsZShjbwogICAgICAgICBBU1NFUlQoYm94KTsKICAgICAgICAgTGF5b3V0UmVjdCBsb2Nh
bEV4cG9zZVJlY3QoYm94LT5hYnNvbHV0ZVRvTG9jYWxRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3Qo
cmVjdCkpLCBVc2VUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsKICAgICAgICAgTGF5b3V0UmVj
dCBsYXllckJvdW5kcygwLCAwLCBib3gtPmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0
KCkpOwotICAgICAgICBMYXlvdXRSZWN0IHIgPSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMs
IGxvY2FsRXhwb3NlUmVjdCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICBMYXlvdXRSZWN0IHIg
PSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMsIGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJl
Y3QsIGFsaWduWCwgYWxpZ25ZKTsKIAogICAgICAgICBJbnRTaXplIGNsYW1wZWRTY3JvbGxPZmZz
ZXQgPSBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQoKSArIHRvSW50U2l6ZShyb3VuZGVk
SW50UmVjdChyKS5sb2NhdGlvbigpKSk7CiAgICAgICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0
ICE9IHNjcm9sbE9mZnNldCgpKSB7CkBAIC0yMzE0LDcgKzIzMTQsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvCiAKICAgICAgICAgICAgICAgICBpZiAoZnJhbWVF
bGVtZW50QW5kVmlld1Blcm1pdFNjcm9sbChmcmFtZUVsZW1lbnQsIGZyYW1lVmlldykpIHsKICAg
ICAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCA9IGZyYW1lVmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIExheW91dFJlY3QgZXhwb3NlUmVj
dCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgcmVjdCwgYWxpZ25YLCBhbGlnblkpOworICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uo
dmlld1JlY3QsIHZpZXdSZWN0LCByZWN0LCBhbGlnblgsIGFsaWduWSk7CiAKICAgICAgICAgICAg
ICAgICAgICAgaW50IHhPZmZzZXQgPSByb3VuZFRvSW50KGV4cG9zZVJlY3QueCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgaW50IHlPZmZzZXQgPSByb3VuZFRvSW50KGV4cG9zZVJlY3QueSgpKTsK
QEAgLTIzMzQsNyArMjMzNCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKGNvCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoKTsKLSAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHIgPSBnZXRSZWN0VG9FeHBvc2Uodmll
d1JlY3QsIHJlY3QsIGFsaWduWCwgYWxpZ25ZKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRSZWN0
IHZpc2libGVSZWN0UmVhbHRpdmVUb0RvY3VtZW50ID0gdmlld1JlY3Q7CisgICAgICAgICAgICAg
ICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRSZWFsdGl2ZVRvRG9jdW1lbnQgPSBmcmFtZVZpZXctPnNj
cm9sbE9mZnNldFJlYWx0aXZlVG9Eb2N1bWVudCgpOworICAgICAgICAgICAgICAgIHZpc2libGVS
ZWN0UmVhbHRpdmVUb0RvY3VtZW50LnNldExvY2F0aW9uKEludFBvaW50KHNjcm9sbE9mZnNldFJl
YWx0aXZlVG9Eb2N1bWVudC53aWR0aCgpLCBzY3JvbGxPZmZzZXRSZWFsdGl2ZVRvRG9jdW1lbnQu
aGVpZ2h0KCkpKTsKKworICAgICAgICAgICAgICAgIExheW91dFJlY3QgciA9IGdldFJlY3RUb0V4
cG9zZSh2aWV3UmVjdCwgdmlzaWJsZVJlY3RSZWFsdGl2ZVRvRG9jdW1lbnQsIHJlY3QsIGFsaWdu
WCwgYWxpZ25ZKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBmcmFtZVZpZXct
PnNldFNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChyLmxvY2F0aW9uKCkpKTsKIApAQCAt
MjM3Nyw3ICsyMzgxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXll
cgogI2VuZGlmCiB9CiAKLUxheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9zZShj
b25zdCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCAmZXhwb3NlUmVj
dCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25ZKQorTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0IExh
eW91dFJlY3QgJnZpc2libGVSZWN0LCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdFJlYWx0aXZlVG9E
b2N1bWVudCwgY29uc3QgTGF5b3V0UmVjdCAmZXhwb3NlUmVjdCwgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKQogewogICAgIC8vIERl
dGVybWluZSB0aGUgYXBwcm9wcmlhdGUgWCBiZWhhdmlvci4KICAgICBTY3JvbGxCZWhhdmlvciBz
Y3JvbGxYOwpAQCAtMjQxNyw3ICsyNDIxLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0
UmVjdFRvRXhwb3NlKAogICAgIC8vIERldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgWSBiZWhhdmlv
ci4KICAgICBTY3JvbGxCZWhhdmlvciBzY3JvbGxZOwogICAgIExheW91dFJlY3QgZXhwb3NlUmVj
dFkodmlzaWJsZVJlY3QueCgpLCBleHBvc2VSZWN0LnkoKSwgdmlzaWJsZVJlY3Qud2lkdGgoKSwg
ZXhwb3NlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBpbnRlcnNlY3RIZWlnaHQgPSBp
bnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJlY3RZKS5oZWlnaHQoKTsKKyAgICBMYXlv
dXRVbml0IGludGVyc2VjdEhlaWdodCA9IGludGVyc2VjdGlvbih2aXNpYmxlUmVjdFJlYWx0aXZl
VG9Eb2N1bWVudCwgZXhwb3NlUmVjdFkpLmhlaWdodCgpOwogICAgIGlmIChpbnRlcnNlY3RIZWln
aHQgPT0gZXhwb3NlUmVjdC5oZWlnaHQoKSkKICAgICAgICAgLy8gSWYgdGhlIHJlY3RhbmdsZSBp
cyBmdWxseSB2aXNpYmxlLCB1c2UgdGhlIHNwZWNpZmllZCB2aXNpYmxlIGJlaGF2aW9yLgogICAg
ICAgICBzY3JvbGxZID0gU2Nyb2xsQWxpZ25tZW50OjpnZXRWaXNpYmxlQmVoYXZpb3IoYWxpZ25Z
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAx
NDgxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsUmVj
dFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGln
blgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAotICAgIExheW91dFJlY3QgZ2V0
UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25zdCBMYXlvdXRS
ZWN0JiBleHBvc2VSZWN0LCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Ny
b2xsQWxpZ25tZW50JiBhbGlnblkpOworICAgIExheW91dFJlY3QgZ2V0UmVjdFRvRXhwb3NlKGNv
bnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBMYXlvdXRSZWN0JiB2aXNpYmxlUmVjdFJlYWx0
aXZlVG9Eb2N1bWVudCwgY29uc3QgTGF5b3V0UmVjdCYgZXhwb3NlUmVjdCwgY29uc3QgU2Nyb2xs
QWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAogICAg
IGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTY3JvbGxiYXJzKCkg
Y29uc3QgeyByZXR1cm4gbV9oQmFyIHx8IG1fdkJhcjsgfQpJbmRleDogU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNp
b24gMTQ4MTA4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTMtMDQtMDkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIEZpbmRCYW5uZXIgbWF0Y2hlcyBhcmUgb2Zmc2V0IHdoZW4gdGhlIFdLVmll
dyBoYXMgYSBoZWFkZXIgb3IgZm9vdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTQzMTQKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTM1MjI0MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUgbWF0Y2hpbmcgcmVj
dHMsIGFsc28gYWRqdXN0IHRvIHRoZSBzY3JvbGwgb2Zmc2V0IHRoYXQgaXMgIAorICAgICAgICBy
ZWxhdGl2ZSB0byB0aGUgRG9jdW1lbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Zp
bmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnJlY3Rz
Rm9yVGV4dE1hdGNoZXMpOgorCiAyMDEzLTA0LTEwICBBbnRvbiBPYnpoaXJvdiAgPGEub2J6aGly
b3ZAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIFBhZ2UgVmlz
aWJpbGl0eQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNDgxMTQpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNjIsNyArMzYyLDcgQEAgVmVjdG9yPEludFJlY3Q+IEZpbmRDb250cm9sbGVyOjpyZWN0c0Zv
cgogCiAgICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSBmcmFtZS0+dmlldygpLT52aXNpYmxl
Q29udGVudFJlY3QoKTsKICAgICAgICAgVmVjdG9yPEludFJlY3Q+IGZyYW1lUmVjdHMgPSBkb2N1
bWVudC0+bWFya2VycygpLT5yZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6
VGV4dE1hdGNoKTsKLSAgICAgICAgSW50UG9pbnQgZnJhbWVPZmZzZXQoLWZyYW1lLT52aWV3KCkt
PnNjcm9sbE9mZnNldCgpLndpZHRoKCksIC1mcmFtZS0+dmlldygpLT5zY3JvbGxPZmZzZXQoKS5o
ZWlnaHQoKSk7CisgICAgICAgIEludFBvaW50IGZyYW1lT2Zmc2V0KC1mcmFtZS0+dmlldygpLT5z
Y3JvbGxPZmZzZXRSZWFsdGl2ZVRvRG9jdW1lbnQoKS53aWR0aCgpLCAtZnJhbWUtPnZpZXcoKS0+
c2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0RvY3VtZW50KCkuaGVpZ2h0KCkpOwogICAgICAgICBmcmFt
ZU9mZnNldCA9IGZyYW1lLT52aWV3KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coZnJhbWVP
ZmZzZXQpOwogCiAgICAgICAgIGZvciAoVmVjdG9yPEludFJlY3Q+OjppdGVyYXRvciBpdCA9IGZy
YW1lUmVjdHMuYmVnaW4oKSwgZW5kID0gZnJhbWVSZWN0cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0
KSB7Cg==
</data>
<flag name="review"
          id="219397"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197395</attachid>
            <date>2013-04-10 13:25:52 -0700</date>
            <delta_ts>2013-04-10 13:38:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-3.txt</filename>
            <type>text/plain</type>
            <size>11575</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA0LTA5ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBGaW5kQmFubmVyIG1hdGNoZXMgYXJl
IG9mZnNldCB3aGVuIHRoZSBXS1ZpZXcgaGFzIGEgaGVhZGVyIG9yIGZvb3RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MzE0CisgICAgICAgIC1h
bmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNTIyNDM0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUg
YWxyZWFkeSBhIGZldyBwbGFjZXMgaW4gdGhlIGNvZGUgd2hlcmUgd2UgbmVlZGVkIHRvIGFkanVz
dCB0aGUgCisgICAgICAgIHNjcm9sbE9mZnNldCgpIHRvIHByZXRlbmQgdGhhdCAoMCwwKSBpcyB0
aGF0IHRoZSB0b3Agb2YgdGhlIERvY3VtZW50IHJhdGhlciB0aGFuIAorICAgICAgICB0aGUgdG9w
IG9mIHRoZSBoZWFkZXIuIFRvIGZpeCB0aGUgRmluZEJhbm5lciBpc3N1ZXMsIHdlIG5lZWQgdG8g
a25vdyB0aGF0IHZlcnNpb24gCisgICAgICAgIG9mIHRoZSBvZmZzZXQgaW4gYSBmZXcgbW9yZSBw
bGFjZXMsIHNvIEkgYWRkZWQgYSBmdW5jdGlvbiBvbiBTY3JvbGxWaWV3IHRvIGZldGNoIAorICAg
ICAgICBpdCBjYWxsZWQgc2Nyb2xsT2Zmc2V0UmVhbHRpdmVUb0RvY3VtZW50KCkuCisKKyAgICAg
ICAgTmV3IGZ1bmN0aW9uIHN1YnRyYWN0cyBvdXQgdGhlIGhlYWRlckhlaWdodCgpIHRvIHRyZWF0
IHRoZSB0b3Agb2YgCisgICAgICAgIHRoZSBkb2N1bWVudCBhcyAoMCwwKS4KKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbE9mZnNldFJlYWx0aXZlVG9Eb2N1bWVudCk6
CisKKyAgICAgICAgVXNlIHNjcm9sbE9mZnNldFJlYWx0aXZlVG9Eb2N1bWVudCgpIHdoZXJlIHdl
IHdlcmUgcHJldmlvdXNseSBtYWtpbmcgdGhpcyAKKyAgICAgICAgY2FsY3VsYXRpb24uIEFsc28g
cmUtbmFtZSBhbiBpbmFjY3VyYXRlbHkgbmFtZWQgdmFyaWFibGUgd2hlcmUgd2UgYXJlIGFjdHVh
bGx5IAorICAgICAgICBjb252ZXJ0aW5nIEZST00gYSBkb2N1bWVudCBvZmZzZXQgdG8gYSBTY3Jv
bGxhYmxlQXJlYSBvZmZzZXQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp3aW5kb3dU
b0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgIChT
Y3JvbGxWaWV3KToKKworICAgICAgICBnZXRSZWN0VG9FeHBvc2UgbmVlZHMgdG8ga25vdyBhYm91
dCB0aGUgYWN0dWFsIHZpc2libGVDb250ZW50UmVjdCBhbmQgdGhlIAorICAgICAgICB2aXNpYmxl
Q29udGVudFJlY3QgdGhhdCBpcyByZWxhdGl2ZSB0byB0aGUgRG9jdW1lbnQuIFNvIHRoaXMgCisg
ICAgICAgIHBhdGNoIGFkZHMgYSBuZXcgcGFyYW1ldGVyIHRvIGdldFJlY3RUb0V4cG9zZSBmb3Ig
dGhhdCBwdXJwb3NlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKwogMjAxMy0wNC0xMCAgVmljdG9yIENvc3RhbiAgPGNvc3Rh
bkBnbWFpbC5jb20+CiAKICAgICAgICAgQmxvYiBjb250ZW50IHR5cGUgbm9ybWFsaXphdGlvbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNDgxMTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTIyNCw2ICsxMjI0LDcgQEAg
X19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzE2d2luZG93VG9Db250ZQogX19aTks3V2ViQ29yZTEw
U2Nyb2xsVmlldzE2d2luZG93VG9Db250ZW50c0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNv
cmUxMFNjcm9sbFZpZXcxOGNvbnRlbnRzVG9Sb290Vmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3
V2ViQ29yZTEwU2Nyb2xsVmlldzE4Y29udGVudHNUb1Jvb3RWaWV3RVJLTlNfOEludFBvaW50RQor
X19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzMwc2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb0RvY3VtZW50
RXYKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VNYXA2bGVuZ3RoRXYKIF9fWk5LN1dlYkNvcmUxMFN0
b3JhZ2VNYXA3Z2V0SXRlbUVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxMFN0b3JhZ2VN
YXA4Y29udGFpbnNFUktOM1dURjZTdHJpbmdFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMTQ4MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNSw2ICszMzUsMTIgQEAgSW50
UG9pbnQgU2Nyb2xsVmlldzo6YWRqdXN0U2Nyb2xsUG9zaXRpbwogICAgIHJldHVybiBuZXdTY3Jv
bGxQb3NpdGlvbjsKIH0KIAorSW50U2l6ZSBTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXRSZWxhdGl2
ZVRvRG9jdW1lbnQoKSBjb25zdAoreworICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gdGhpcy0+
c2Nyb2xsT2Zmc2V0KCk7CisgICAgcmV0dXJuIEludFNpemUoc2Nyb2xsT2Zmc2V0LndpZHRoKCks
IHNjcm9sbE9mZnNldC5oZWlnaHQoKSAtIGhlYWRlckhlaWdodCgpKTsKK30KKwogaW50IFNjcm9s
bFZpZXc6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0
CiB7CiAgICAgLy8gSWYgbm8gc2Nyb2xsYmFycyBhcmUgcHJlc2VudCwgaXQgZG9lcyBub3QgaW5k
aWNhdGUgY29udGVudCBpcyBub3QgYmUgc2Nyb2xsYWJsZS4KQEAgLTczNiw4ICs3NDIsNyBAQCBJ
bnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvCiAgICAgICAgIHJldHVybiBj
b252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UG9pbnQpOwogCiAgICAgSW50UG9pbnQg
dmlld1BvaW50ID0gY29udmVydEZyb21Db250YWluaW5nV2luZG93KHdpbmRvd1BvaW50KTsKLSAg
ICBJbnRTaXplIG9mZnNldEluRG9jdW1lbnQgPSBzY3JvbGxPZmZzZXQoKSAtIEludFNpemUoMCwg
aGVhZGVySGVpZ2h0KCkpOwotICAgIHJldHVybiB2aWV3UG9pbnQgKyBvZmZzZXRJbkRvY3VtZW50
OworICAgIHJldHVybiB2aWV3UG9pbnQgKyBzY3JvbGxPZmZzZXRSZWxhdGl2ZVRvRG9jdW1lbnQo
KTsKIH0KIAogSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udGVudHNUb1dpbmRvdyhjb25zdCBJbnRQ
b2ludCYgY29udGVudHNQb2ludCkgY29uc3QKQEAgLTc0NSw4ICs3NTAsOCBAQCBJbnRQb2ludCBT
Y3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93KGNvCiAgICAgaWYgKGRlbGVnYXRlc1Njcm9sbGlu
ZygpKQogICAgICAgICByZXR1cm4gY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhjb250ZW50c1Bv
aW50KTsKIAotICAgIEludFNpemUgb2Zmc2V0SW5Eb2N1bWVudCA9IHNjcm9sbE9mZnNldCgpICsg
SW50U2l6ZSgwLCBoZWFkZXJIZWlnaHQoKSk7Ci0gICAgSW50UG9pbnQgdmlld1BvaW50ID0gY29u
dGVudHNQb2ludCAtIG9mZnNldEluRG9jdW1lbnQ7CisgICAgSW50U2l6ZSBvZmZzZXRSZWxhdGl2
ZVRvVG90YWxDb250ZW50cyA9IHNjcm9sbE9mZnNldCgpICsgSW50U2l6ZSgwLCBoZWFkZXJIZWln
aHQoKSk7CisgICAgSW50UG9pbnQgdmlld1BvaW50ID0gY29udGVudHNQb2ludCAtIG9mZnNldFJl
bGF0aXZlVG9Ub3RhbENvbnRlbnRzOwogICAgIHJldHVybiBjb252ZXJ0VG9Db250YWluaW5nV2lu
ZG93KHZpZXdQb2ludCk7ICAKIH0KIApAQCAtNzU2LDggKzc2MSw3IEBAIEludFJlY3QgU2Nyb2xs
Vmlldzo6d2luZG93VG9Db250ZW50cyhjb24KICAgICAgICAgcmV0dXJuIGNvbnZlcnRGcm9tQ29u
dGFpbmluZ1dpbmRvdyh3aW5kb3dSZWN0KTsKIAogICAgIEludFJlY3Qgdmlld1JlY3QgPSBjb252
ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UmVjdCk7Ci0gICAgSW50U2l6ZSBvZmZzZXRJ
bkRvY3VtZW50ID0gc2Nyb2xsT2Zmc2V0KCkgLSBJbnRTaXplKDAsIGhlYWRlckhlaWdodCgpKTsK
LSAgICB2aWV3UmVjdC5tb3ZlKG9mZnNldEluRG9jdW1lbnQpOworICAgIHZpZXdSZWN0Lm1vdmUo
c2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb0RvY3VtZW50KCkpOwogICAgIHJldHVybiB2aWV3UmVjdDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gMTQ4
MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xODUsNiArMTg1LDEyIEBAIHB1YmxpYzoKICAgICBpbnQgc2Nyb2xsWCgpIGNvbnN0
IHsgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkueCgpOyB9CiAgICAgaW50IHNjcm9sbFkoKSBjb25z
dCB7IHJldHVybiBzY3JvbGxQb3NpdGlvbigpLnkoKTsgfQogCisgICAgLy8gc2Nyb2xsT2Zmc2V0
KCkgYW5jaG9ycyBpdHMgKDAsMCkgcG9pbnQgYXQgdGhlIHRvcCBlbmQgb2YgdGhlIGhlYWRlciBp
ZiB0aGlzIFNjcm9sbGFibGVBcmVhCisgICAgLy8gaGFzIGEgaGVhZGVyLCBzbyBpdCBpcyByZWxh
dGl2ZSB0byB0aGUgdG90YWxDb250ZW50c1NpemUoKS4gc2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb0Rv
Y3VtZW50KCkKKyAgICAvLyBhbmNob3JzICgwLDApIGF0IHRoZSB0b3Agb2YgdGhlIERvY3VtZW50
LCB3aGljaCB3aWxsIGJlIGJlbmVhdGggYW55IGhlYWRlcnMsIHNvIGl0IGlzIHJlbGF0aXZlCisg
ICAgLy8gdG8gY29udGVudHNTaXplKCkuCisgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRSZWxhdGl2
ZVRvRG9jdW1lbnQoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ftb3Vu
dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBjYWNoZUN1cnJlbnRTY3JvbGxQb3NpdGlv
bigpIHsgbV9jYWNoZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uKCk7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTQ4MTE0
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjI5MCw3ICsyMjkwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRv
VmlzaWJsZShjbwogICAgICAgICBBU1NFUlQoYm94KTsKICAgICAgICAgTGF5b3V0UmVjdCBsb2Nh
bEV4cG9zZVJlY3QoYm94LT5hYnNvbHV0ZVRvTG9jYWxRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3Qo
cmVjdCkpLCBVc2VUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsKICAgICAgICAgTGF5b3V0UmVj
dCBsYXllckJvdW5kcygwLCAwLCBib3gtPmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0
KCkpOwotICAgICAgICBMYXlvdXRSZWN0IHIgPSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMs
IGxvY2FsRXhwb3NlUmVjdCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICBMYXlvdXRSZWN0IHIg
PSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMsIGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJl
Y3QsIGFsaWduWCwgYWxpZ25ZKTsKIAogICAgICAgICBJbnRTaXplIGNsYW1wZWRTY3JvbGxPZmZz
ZXQgPSBjbGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQoKSArIHRvSW50U2l6ZShyb3VuZGVk
SW50UmVjdChyKS5sb2NhdGlvbigpKSk7CiAgICAgICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0
ICE9IHNjcm9sbE9mZnNldCgpKSB7CkBAIC0yMzE0LDcgKzIzMTQsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvCiAKICAgICAgICAgICAgICAgICBpZiAoZnJhbWVF
bGVtZW50QW5kVmlld1Blcm1pdFNjcm9sbChmcmFtZUVsZW1lbnQsIGZyYW1lVmlldykpIHsKICAg
ICAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCA9IGZyYW1lVmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIExheW91dFJlY3QgZXhwb3NlUmVj
dCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgcmVjdCwgYWxpZ25YLCBhbGlnblkpOworICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBnZXRSZWN0VG9FeHBvc2Uo
dmlld1JlY3QsIHZpZXdSZWN0LCByZWN0LCBhbGlnblgsIGFsaWduWSk7CiAKICAgICAgICAgICAg
ICAgICAgICAgaW50IHhPZmZzZXQgPSByb3VuZFRvSW50KGV4cG9zZVJlY3QueCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgaW50IHlPZmZzZXQgPSByb3VuZFRvSW50KGV4cG9zZVJlY3QueSgpKTsK
QEAgLTIzMzQsNyArMjMzNCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKGNvCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJl
Y3QoKTsKLSAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHIgPSBnZXRSZWN0VG9FeHBvc2Uodmll
d1JlY3QsIHJlY3QsIGFsaWduWCwgYWxpZ25ZKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRSZWN0
IHZpc2libGVSZWN0UmVsYXRpdmVUb0RvY3VtZW50ID0gdmlld1JlY3Q7CisgICAgICAgICAgICAg
ICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmcmFtZVZpZXctPnNj
cm9sbE9mZnNldFJlbGF0aXZlVG9Eb2N1bWVudCgpOworICAgICAgICAgICAgICAgIHZpc2libGVS
ZWN0UmVsYXRpdmVUb0RvY3VtZW50LnNldExvY2F0aW9uKEludFBvaW50KHNjcm9sbE9mZnNldFJl
bGF0aXZlVG9Eb2N1bWVudC53aWR0aCgpLCBzY3JvbGxPZmZzZXRSZWxhdGl2ZVRvRG9jdW1lbnQu
aGVpZ2h0KCkpKTsKKworICAgICAgICAgICAgICAgIExheW91dFJlY3QgciA9IGdldFJlY3RUb0V4
cG9zZSh2aWV3UmVjdCwgdmlzaWJsZVJlY3RSZWxhdGl2ZVRvRG9jdW1lbnQsIHJlY3QsIGFsaWdu
WCwgYWxpZ25ZKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBmcmFtZVZpZXct
PnNldFNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChyLmxvY2F0aW9uKCkpKTsKIApAQCAt
MjM3Nyw3ICsyMzgxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXll
cgogI2VuZGlmCiB9CiAKLUxheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9zZShj
b25zdCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCAmZXhwb3NlUmVj
dCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25ZKQorTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0IExh
eW91dFJlY3QgJnZpc2libGVSZWN0LCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdFJlbGF0aXZlVG9E
b2N1bWVudCwgY29uc3QgTGF5b3V0UmVjdCAmZXhwb3NlUmVjdCwgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKQogewogICAgIC8vIERl
dGVybWluZSB0aGUgYXBwcm9wcmlhdGUgWCBiZWhhdmlvci4KICAgICBTY3JvbGxCZWhhdmlvciBz
Y3JvbGxYOwpAQCAtMjQxNyw3ICsyNDIxLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0
UmVjdFRvRXhwb3NlKAogICAgIC8vIERldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgWSBiZWhhdmlv
ci4KICAgICBTY3JvbGxCZWhhdmlvciBzY3JvbGxZOwogICAgIExheW91dFJlY3QgZXhwb3NlUmVj
dFkodmlzaWJsZVJlY3QueCgpLCBleHBvc2VSZWN0LnkoKSwgdmlzaWJsZVJlY3Qud2lkdGgoKSwg
ZXhwb3NlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBpbnRlcnNlY3RIZWlnaHQgPSBp
bnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJlY3RZKS5oZWlnaHQoKTsKKyAgICBMYXlv
dXRVbml0IGludGVyc2VjdEhlaWdodCA9IGludGVyc2VjdGlvbih2aXNpYmxlUmVjdFJlbGF0aXZl
VG9Eb2N1bWVudCwgZXhwb3NlUmVjdFkpLmhlaWdodCgpOwogICAgIGlmIChpbnRlcnNlY3RIZWln
aHQgPT0gZXhwb3NlUmVjdC5oZWlnaHQoKSkKICAgICAgICAgLy8gSWYgdGhlIHJlY3RhbmdsZSBp
cyBmdWxseSB2aXNpYmxlLCB1c2UgdGhlIHNwZWNpZmllZCB2aXNpYmxlIGJlaGF2aW9yLgogICAg
ICAgICBzY3JvbGxZID0gU2Nyb2xsQWxpZ25tZW50OjpnZXRWaXNpYmxlQmVoYXZpb3IoYWxpZ25Z
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAx
NDgxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsUmVj
dFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGln
blgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAotICAgIExheW91dFJlY3QgZ2V0
UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25zdCBMYXlvdXRS
ZWN0JiBleHBvc2VSZWN0LCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Ny
b2xsQWxpZ25tZW50JiBhbGlnblkpOworICAgIExheW91dFJlY3QgZ2V0UmVjdFRvRXhwb3NlKGNv
bnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBMYXlvdXRSZWN0JiB2aXNpYmxlUmVjdFJlbGF0
aXZlVG9Eb2N1bWVudCwgY29uc3QgTGF5b3V0UmVjdCYgZXhwb3NlUmVjdCwgY29uc3QgU2Nyb2xs
QWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAogICAg
IGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTY3JvbGxiYXJzKCkg
Y29uc3QgeyByZXR1cm4gbV9oQmFyIHx8IG1fdkJhcjsgfQpJbmRleDogU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNp
b24gMTQ4MTA4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTMtMDQtMDkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIEZpbmRCYW5uZXIgbWF0Y2hlcyBhcmUgb2Zmc2V0IHdoZW4gdGhlIFdLVmll
dyBoYXMgYSBoZWFkZXIgb3IgZm9vdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTQzMTQKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTM1MjI0MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUgbWF0Y2hpbmcgcmVj
dHMsIGFsc28gYWRqdXN0IHRvIHRoZSBzY3JvbGwgb2Zmc2V0IHRoYXQgaXMgIAorICAgICAgICBy
ZWxhdGl2ZSB0byB0aGUgRG9jdW1lbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Zp
bmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnJlY3Rz
Rm9yVGV4dE1hdGNoZXMpOgorCiAyMDEzLTA0LTEwICBBbnRvbiBPYnpoaXJvdiAgPGEub2J6aGly
b3ZAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIFBhZ2UgVmlz
aWJpbGl0eQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNDgxMTQpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNjIsNyArMzYyLDcgQEAgVmVjdG9yPEludFJlY3Q+IEZpbmRDb250cm9sbGVyOjpyZWN0c0Zv
cgogCiAgICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSBmcmFtZS0+dmlldygpLT52aXNpYmxl
Q29udGVudFJlY3QoKTsKICAgICAgICAgVmVjdG9yPEludFJlY3Q+IGZyYW1lUmVjdHMgPSBkb2N1
bWVudC0+bWFya2VycygpLT5yZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6
VGV4dE1hdGNoKTsKLSAgICAgICAgSW50UG9pbnQgZnJhbWVPZmZzZXQoLWZyYW1lLT52aWV3KCkt
PnNjcm9sbE9mZnNldCgpLndpZHRoKCksIC1mcmFtZS0+dmlldygpLT5zY3JvbGxPZmZzZXQoKS5o
ZWlnaHQoKSk7CisgICAgICAgIEludFBvaW50IGZyYW1lT2Zmc2V0KC1mcmFtZS0+dmlldygpLT5z
Y3JvbGxPZmZzZXRSZWxhdGl2ZVRvRG9jdW1lbnQoKS53aWR0aCgpLCAtZnJhbWUtPnZpZXcoKS0+
c2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb0RvY3VtZW50KCkuaGVpZ2h0KCkpOwogICAgICAgICBmcmFt
ZU9mZnNldCA9IGZyYW1lLT52aWV3KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coZnJhbWVP
ZmZzZXQpOwogCiAgICAgICAgIGZvciAoVmVjdG9yPEludFJlY3Q+OjppdGVyYXRvciBpdCA9IGZy
YW1lUmVjdHMuYmVnaW4oKSwgZW5kID0gZnJhbWVSZWN0cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0
KSB7Cg==
</data>
<flag name="review"
          id="219401"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>