<?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>86317</bug_id>
          
          <creation_ts>2012-05-13 06:59:16 -0700</creation_ts>
          <short_desc>Seamless iframe should not announce a new browsing context</short_desc>
          <delta_ts>2012-12-17 17:23:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45950</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Lars Gunther">webmaster</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jdiggs</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622494</commentid>
    <comment_count>0</comment_count>
    <who name="Lars Gunther">webmaster</who>
    <bug_when>2012-05-13 06:59:16 -0700</bug_when>
    <thetext>According to the spec, a seamless iframe should not be announced as a new browsing context to AT users, whereas a regular iframe should.

See also comment 12 and 13 in bug 45950 https://bugs.webkit.org/show_bug.cgi?id=45950#c12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623392</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-14 15:41:25 -0700</bug_when>
    <thetext>I&apos;ve confirmed that voiceover announces &quot;frame&quot; for a seamless iframe, unlike a div, where it reads the contents of the div.  You have to tell VO to navigate inside the frame to read the contents.

I am unfortunately not familiar enough with WebCore&apos;s AX code to fix this.  I looked around to see if there was an easy way to change the role of the frame, but it seems to be handled by a separate system from the AX roles.  Someone with AX knowledge will have to comment. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623664</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-05-14 22:53:02 -0700</bug_when>
    <thetext>When determining the AX role we&apos;d check for this attribute and return a GroupRole instead. We&apos;d then need to make sure that the code the connects frames to their parent documents in the AX hierarchy didn&apos;t break because the frame no longer identified as a Web Area. We&apos;d also want to hide the Scroll Area parent that probably exists in the AX hierarchy (but is not visible)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623665</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-05-14 22:54:37 -0700</bug_when>
    <thetext>rdar://11452561</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623701</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-14 23:44:21 -0700</bug_when>
    <thetext>The only bit that you&apos;ll need to check is HTMLIFrameElement::shouldDisplaySeamlesslyWithParent() or Document::shouldDisplaySeamlesslyWithParent().  Both return the same thing but can be asked from either side (depending which pointer you happen to have).

That single bool-returning function controls the entire operation of seamless.   Assuming the AX tree is sensitive to rendering tree changes, it should notice any dynamic update of seamless, but I&apos;m happy to help you write tests for that if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792497</commentid>
    <comment_count>5</comment_count>
      <attachid>179692</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-16 23:27:30 -0800</bug_when>
    <thetext>Created attachment 179692
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792501</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 23:30:47 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792505</commentid>
    <comment_count>7</comment_count>
      <attachid>179692</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 23:44:21 -0800</bug_when>
    <thetext>Comment on attachment 179692
patch

Attachment 179692 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15378558</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792508</commentid>
    <comment_count>8</comment_count>
      <attachid>179692</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-16 23:47:53 -0800</bug_when>
    <thetext>Comment on attachment 179692
patch

OK.  I thought there was a FIXME in the code somewhere?  Or an existing bug... maybe we just discussed this over IRC.  &lt;iframe seamless&gt; is in a 95%-shippable state.  We are discussing disabling it for Chrome, as it&apos;s currently w/o an owner and needs a few bug fixes before it&apos;s robust enough for adoption.  This is still a good fix to have regardless, of course. :)

Looks like you got a cr-linux failure, btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792509</commentid>
    <comment_count>9</comment_count>
      <attachid>179693</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-16 23:49:00 -0800</bug_when>
    <thetext>Created attachment 179693
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792514</commentid>
    <comment_count>10</comment_count>
      <attachid>179692</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-16 23:55:59 -0800</bug_when>
    <thetext>Comment on attachment 179692
patch

Attachment 179692 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15361692</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792523</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-17 00:11:40 -0800</bug_when>
    <thetext>Nm, this was the bug I was thinking about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792546</commentid>
    <comment_count>12</comment_count>
      <attachid>179693</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-17 01:22:11 -0800</bug_when>
    <thetext>Comment on attachment 179693
patch

Attachment 179693 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15375631

New failing tests:
platform/mac/accessibility/seamless-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792769</commentid>
    <comment_count>13</comment_count>
      <attachid>179756</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-17 09:09:04 -0800</bug_when>
    <thetext>Created attachment 179756
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793199</commentid>
    <comment_count>14</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-17 17:23:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/137962</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179692</attachid>
            <date>2012-12-16 23:27:30 -0800</date>
            <delta_ts>2012-12-16 23:55:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12087</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw3
IEBACiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlTGlz
dE1hcmtlciwgTGlzdE1hcmtlclJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYmlsaXR5Um9sZU1hdGhFbGVtZW50LCBNYXRoRWxlbWVudFJvbGUpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVdlYkFyZWEsIFdlYkFy
ZWFSb2xlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJv
bGVTZWFtbGVzc1dlYkFyZWEsIFNlYW1sZXNzV2ViQXJlYVJvbGUpOwogQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZUhlYWRpbmcsIEhlYWRpbmdSb2xlKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVMaXN0Qm94
LCBMaXN0Qm94Um9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2li
aWxpdHlSb2xlTGlzdEJveE9wdGlvbiwgTGlzdEJveE9wdGlvblJvbGUpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTIt
MTYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFt
bGVzcyBpZnJhbWUgc2hvdWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwg
aW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBs
ZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAg
ICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmg6CisgICAgICAgICogc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwOgorCiAyMDEyLTEyLTE2ICBMZXZpIFdlaW50cmF1YiAgPGxldml3
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGludG8g
VHJhbnNmb3JtU3RhdGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
Y2Vzc2liaWxpdHlSb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE3LDYgKzExNyw3IEBACiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVSdWxlck1h
cmtlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNjcm9sbEFyZWEsCiAgICAgV2ViQWNjZXNz
aWJpbGl0eVJvbGVTY3JvbGxCYXIsCisgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTZWFtbGVzc1dl
YkFyZWEsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTaGVldCwKICAgICBXZWJBY2Nlc3NpYmls
aXR5Um9sZVNsaWRlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNsaWRlclRodW1iLApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTItMTYgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFtbGVzcyBpZnJhbWUgc2hv
dWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyByb2xlIGZvciBz
ZWFtbGVzcyBmcmFtZXMgc28gdGhhdCB0aGUgcGxhdGZvcm1zIGNhbiBkZWNpZGUgd2hhdCB0byBk
bworICAgICAgICB3aXRoIHRoaXMga2luZCBvZiBvYmplY3QuIEZvciB0aGUgbWFjLCBpdCdzIGV4
cG9zZWQgYXMgYSBncm91cC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWFtbGVzcy1pZnJhbWUuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1dlYkFy
ZWEpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTZWFtbGVzc1dl
YkFyZWEpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3RJZkV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpwYXJlbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyLm1tOgorICAgICAgICAoY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXApOgorCiAyMDEy
LTEyLTE2ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBKUyBjb21waWxlciB3YXJuaW5nLgpJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0JKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTg1LDYgKzE1ODUsNyBAQAogICAgICAgICB7IEltYWdlTWFw
Um9sZSwgQCJBWEltYWdlTWFwIiB9LAogICAgICAgICB7IExpc3RNYXJrZXJSb2xlLCBAIkFYTGlz
dE1hcmtlciIgfSwKICAgICAgICAgeyBXZWJBcmVhUm9sZSwgQCJBWFdlYkFyZWEiIH0sCisgICAg
ICAgIHsgU2VhbWxlc3NXZWJBcmVhUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAg
ICAgICAgIHsgSGVhZGluZ1JvbGUsIEAiQVhIZWFkaW5nIiB9LAogICAgICAgICB7IExpc3RCb3hS
b2xlLCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAogICAgICAgICB7IExpc3RCb3hPcHRpb25S
b2xlLCBOU0FjY2Vzc2liaWxpdHlTdGF0aWNUZXh0Um9sZSB9LApJbmRleDogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNyAr
NDY3LDcgQEAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3QKIHsKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50
IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KLSAgICBpZiAoaXNXZWJB
cmVhKCkpCisgICAgaWYgKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAg
ICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldChtX3JlbmRlcmVyLT5mcmFtZSgpLT52aWV3
KCkpOwogCiAgICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0KHJlbmRlclBhcmVudE9iamVj
dCgpKTsKQEAgLTQ5Myw3ICs0OTMsNyBAQAogICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShwYXJlbnRPYmopOwogICAgIAogICAgIC8vIFdlYkFyZWEncyBwYXJlbnQg
c2hvdWxkIGJlIHRoZSBzY3JvbGwgdmlldyBjb250YWluaW5nIGl0LgotICAgIGlmIChpc1dlYkFy
ZWEoKSkKKyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSkKICAgICAg
ICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobV9yZW5kZXJlci0+ZnJhbWUo
KS0+dmlldygpKTsKICAgICAKICAgICByZXR1cm4gMDsKQEAgLTc3MCw3ICs3NzAsNyBAQAogICAg
IFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIGlmIChvYmotPmlzVGV4dCgpKQogICAgICAg
ICB0b1JlbmRlclRleHQob2JqKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCwgUmVuZGVyVGV4dDo6
Q2xpcFRvRWxsaXBzaXMpOwotICAgIGVsc2UgaWYgKGlzV2ViQXJlYSgpKQorICAgIGVsc2UgaWYg
KGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAgICAgIG9iai0+YWJzb2x1
dGVRdWFkcyhxdWFkcyk7CiAgICAgZWxzZQogICAgICAgICBvYmotPmFic29sdXRlRm9jdXNSaW5n
UXVhZHMocXVhZHMpOwpAQCAtNzg0LDcgKzc4NCw3IEBACiAjZW5kaWYKICAgICAKICAgICAvLyBU
aGUgc2l6ZSBvZiB0aGUgd2ViIGFyZWEgc2hvdWxkIGJlIHRoZSBjb250ZW50IHNpemUsIG5vdCB0
aGUgY2xpcHBlZCBzaXplLgotICAgIGlmIChpc1dlYkFyZWEoKSAmJiBvYmotPmZyYW1lKCktPnZp
ZXcoKSkKKyAgICBpZiAoKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpICYmIG9i
ai0+ZnJhbWUoKS0+dmlldygpKQogICAgICAgICByZXN1bHQuc2V0U2l6ZShvYmotPmZyYW1lKCkt
PnZpZXcoKS0+Y29udGVudHNTaXplKCkpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0x
MjU2LDcgKzEyNTYsNyBAQAogICAgICAgICAvLyBPdGhlcndpc2UgZmFsbCB0aHJvdWdoOyB1c2Ug
cHJlc2VuY2Ugb2YgaGVscCB0ZXh0LCB0aXRsZSwgb3IgZGVzY3JpcHRpb24gdG8gZGVjaWRlLgog
ICAgIH0KIAotICAgIGlmIChpc1dlYkFyZWEoKSB8fCBtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIo
KSkKKyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSB8fCBtX3JlbmRl
cmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8v
IFVzaW5nIHRoZSBoZWxwIHRleHQsIHRpdGxlIG9yIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24g
KHNvIHdlCkBAIC0yNDExLDggKzI0MTEsMTIgQEAKICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNU
YWdOYW1lKGNhbnZhc1RhZykpCiAgICAgICAgIHJldHVybiBDYW52YXNSb2xlOwogCi0gICAgaWYg
KGNzc0JveCAmJiBjc3NCb3gtPmlzUmVuZGVyVmlldygpKQorICAgIGlmIChjc3NCb3ggJiYgY3Nz
Qm94LT5pc1JlbmRlclZpZXcoKSkgeworICAgICAgICAvLyBJZiB0aGUgaWZyYW1lIGlzIHNlYW1s
ZXNzLCBpdCBzaG91bGQgbm90IGJlIGFubm91bmNlZCBhcyBhIHdlYiBhcmVhIHRvIEFUIGNsaWVu
dHMuCisgICAgICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnNob3VsZERpc3BsYXlT
ZWFtbGVzc2x5V2l0aFBhcmVudCgpKQorICAgICAgICAgICAgcmV0dXJuIFNlYW1sZXNzV2ViQXJl
YVJvbGU7CiAgICAgICAgIHJldHVybiBXZWJBcmVhUm9sZTsKKyAgICB9CiAgICAgCiAgICAgaWYg
KGNzc0JveCAmJiBjc3NCb3gtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBUZXh0Rmll
bGRSb2xlOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDMsMTEgKzQwMyw2IEBACiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1dlYkFyZWEoKSBjb25zdAotewotICAgIHJl
dHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbWFnZUJ1dHRvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzTmF0aXZl
SW1hZ2UoKSAmJiBpc0J1dHRvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDEzNzUxMykKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAKICAgICBSb3dSb2xlLAogICAgIFJ1bGVyUm9sZSwK
ICAgICBSdWxlck1hcmtlclJvbGUsCisgICAgU2VhbWxlc3NXZWJBcmVhUm9sZSwKICAgICBTY3Jv
bGxBcmVhUm9sZSwKICAgICBTY3JvbGxCYXJSb2xlLAogICAgIFNoZWV0Um9sZSwKQEAgLTM3Nyw3
ICszNzgsOCBAQAogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiBy
b2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQorICAgIGJvb2wgaXNTZWFtbGVzc1dlYkFyZWEo
KSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBTZWFtbGVzc1dlYkFyZWFSb2xlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9
PSBDaGVja0JveFJvbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBMaXN0Qm94Um9s
ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05MSw3ICs5MSw2IEBACiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3Io
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1dlYkFyZWEo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrZWQoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc4NzkpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMi0xNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAg
ICAgIFNlYW1sZXNzIGlmcmFtZSBzaG91bGQgbm90IGFubm91bmNlIGEgbmV3IGJyb3dzaW5nIGNv
bnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
MzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlv
bmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVzcy1pZnJhbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWFtbGVzcy1pZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTYgIENocmlzdG9waGUg
RHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEVGTCBnYXJkZW5pbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWFtbGVzcy1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFtZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWFtbGVzcy1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEz
IEBACisKK1RoaXMgdGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRvIG5vdCBhcHBlYXIgYXMg
d2ViIGFyZWFzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIGdyb3VwMS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWFNjcm9s
bEFyZWEnCitQQVNTIGdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUg
aXMgJ0FYUm9sZTogQVhHcm91cCcKK1BBU1MgZ3JvdXAxLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0
SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0b24nCisKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L3NlYW1sZXNzLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VhbWxlc3MtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIgZ3JvdXAxOwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICBncm91cDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyb3VwMSIpOworICAgICAgICAgICAgIHNob3Vs
ZEJlKCJncm91cDEuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhTY3JvbGxBcmVh
JyIpOworICAgICAgICAgICAgIHNob3VsZEJlKCJncm91cDEuY2hpbGRBdEluZGV4KDApLmNoaWxk
QXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYR3JvdXAnIik7CisgICAgICAgICAgICAgc2hv
dWxkQmUoImdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRl
eCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYQnV0dG9uJyIpOworICAgICAgICB9CisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
aWQ9ImJvZHkiPgorCis8ZGl2IGlkPSJncm91cDEiIHRhYmluZGV4PSIwIj4KKzxpZnJhbWUgb25s
b2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAxMCk7IiBzZWFtbGVzcyB3aWR0aD0xMDAgaGVp
Z2h0PTEwMCBzcmNkb2M9IjxkaXYgcm9sZT0nYnV0dG9uJz5idXR0b248L2Rpdj48cD50ZXN0PHA+
dGVzdDI8cD50ZXN0MzxwPnRlc3Q0Ij48L2lmcmFtZT4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAg
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRvIG5vdCBhcHBl
YXIgYXMgd2ViIGFyZWFzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyIpOworCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="196661"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="196663"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179693</attachid>
            <date>2012-12-16 23:49:00 -0800</date>
            <delta_ts>2012-12-17 01:22:11 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12096</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw3
IEBACiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlTGlz
dE1hcmtlciwgTGlzdE1hcmtlclJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYmlsaXR5Um9sZU1hdGhFbGVtZW50LCBNYXRoRWxlbWVudFJvbGUpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVdlYkFyZWEsIFdlYkFy
ZWFSb2xlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJv
bGVTZWFtbGVzc1dlYkFyZWEsIFNlYW1sZXNzV2ViQXJlYVJvbGUpOwogQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZUhlYWRpbmcsIEhlYWRpbmdSb2xlKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVMaXN0Qm94
LCBMaXN0Qm94Um9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2li
aWxpdHlSb2xlTGlzdEJveE9wdGlvbiwgTGlzdEJveE9wdGlvblJvbGUpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTIt
MTYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFt
bGVzcyBpZnJhbWUgc2hvdWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwg
aW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBs
ZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAg
ICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmg6CisgICAgICAgICogc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwOgorCiAyMDEyLTEyLTE2ICBMZXZpIFdlaW50cmF1YiAgPGxldml3
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGludG8g
VHJhbnNmb3JtU3RhdGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
Y2Vzc2liaWxpdHlSb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE3LDYgKzExNyw3IEBACiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVSdWxlck1h
cmtlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNjcm9sbEFyZWEsCiAgICAgV2ViQWNjZXNz
aWJpbGl0eVJvbGVTY3JvbGxCYXIsCisgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTZWFtbGVzc1dl
YkFyZWEsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTaGVldCwKICAgICBXZWJBY2Nlc3NpYmls
aXR5Um9sZVNsaWRlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNsaWRlclRodW1iLApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTItMTYgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFtbGVzcyBpZnJhbWUgc2hv
dWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyByb2xlIGZvciBz
ZWFtbGVzcyBmcmFtZXMgc28gdGhhdCB0aGUgcGxhdGZvcm1zIGNhbiBkZWNpZGUgd2hhdCB0byBk
bworICAgICAgICB3aXRoIHRoaXMga2luZCBvZiBvYmplY3QuIEZvciB0aGUgbWFjLCBpdCdzIGV4
cG9zZWQgYXMgYSBncm91cC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWFtbGVzcy1pZnJhbWUuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1dlYkFy
ZWEpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTZWFtbGVzc1dl
YkFyZWEpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3RJZkV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpwYXJlbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyLm1tOgorICAgICAgICAoY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXApOgorCiAyMDEy
LTEyLTE2ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBKUyBjb21waWxlciB3YXJuaW5nLgpJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0JKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTg1LDYgKzE1ODUsNyBAQAogICAgICAgICB7IEltYWdlTWFw
Um9sZSwgQCJBWEltYWdlTWFwIiB9LAogICAgICAgICB7IExpc3RNYXJrZXJSb2xlLCBAIkFYTGlz
dE1hcmtlciIgfSwKICAgICAgICAgeyBXZWJBcmVhUm9sZSwgQCJBWFdlYkFyZWEiIH0sCisgICAg
ICAgIHsgU2VhbWxlc3NXZWJBcmVhUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAg
ICAgICAgIHsgSGVhZGluZ1JvbGUsIEAiQVhIZWFkaW5nIiB9LAogICAgICAgICB7IExpc3RCb3hS
b2xlLCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAogICAgICAgICB7IExpc3RCb3hPcHRpb25S
b2xlLCBOU0FjY2Vzc2liaWxpdHlTdGF0aWNUZXh0Um9sZSB9LApJbmRleDogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNyAr
NDY3LDcgQEAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3QKIHsKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50
IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KLSAgICBpZiAoaXNXZWJB
cmVhKCkpCisgICAgaWYgKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAg
ICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldChtX3JlbmRlcmVyLT5mcmFtZSgpLT52aWV3
KCkpOwogCiAgICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0KHJlbmRlclBhcmVudE9iamVj
dCgpKTsKQEAgLTQ5Myw3ICs0OTMsNyBAQAogICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShwYXJlbnRPYmopOwogICAgIAogICAgIC8vIFdlYkFyZWEncyBwYXJlbnQg
c2hvdWxkIGJlIHRoZSBzY3JvbGwgdmlldyBjb250YWluaW5nIGl0LgotICAgIGlmIChpc1dlYkFy
ZWEoKSkKKyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSkKICAgICAg
ICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobV9yZW5kZXJlci0+ZnJhbWUo
KS0+dmlldygpKTsKICAgICAKICAgICByZXR1cm4gMDsKQEAgLTc3MCw3ICs3NzAsNyBAQAogICAg
IFZlY3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIGlmIChvYmotPmlzVGV4dCgpKQogICAgICAg
ICB0b1JlbmRlclRleHQob2JqKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCwgUmVuZGVyVGV4dDo6
Q2xpcFRvRWxsaXBzaXMpOwotICAgIGVsc2UgaWYgKGlzV2ViQXJlYSgpKQorICAgIGVsc2UgaWYg
KGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAgICAgIG9iai0+YWJzb2x1
dGVRdWFkcyhxdWFkcyk7CiAgICAgZWxzZQogICAgICAgICBvYmotPmFic29sdXRlRm9jdXNSaW5n
UXVhZHMocXVhZHMpOwpAQCAtNzg0LDcgKzc4NCw3IEBACiAjZW5kaWYKICAgICAKICAgICAvLyBU
aGUgc2l6ZSBvZiB0aGUgd2ViIGFyZWEgc2hvdWxkIGJlIHRoZSBjb250ZW50IHNpemUsIG5vdCB0
aGUgY2xpcHBlZCBzaXplLgotICAgIGlmIChpc1dlYkFyZWEoKSAmJiBvYmotPmZyYW1lKCktPnZp
ZXcoKSkKKyAgICBpZiAoKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpICYmIG9i
ai0+ZnJhbWUoKS0+dmlldygpKQogICAgICAgICByZXN1bHQuc2V0U2l6ZShvYmotPmZyYW1lKCkt
PnZpZXcoKS0+Y29udGVudHNTaXplKCkpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0x
MjU2LDcgKzEyNTYsNyBAQAogICAgICAgICAvLyBPdGhlcndpc2UgZmFsbCB0aHJvdWdoOyB1c2Ug
cHJlc2VuY2Ugb2YgaGVscCB0ZXh0LCB0aXRsZSwgb3IgZGVzY3JpcHRpb24gdG8gZGVjaWRlLgog
ICAgIH0KIAotICAgIGlmIChpc1dlYkFyZWEoKSB8fCBtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIo
KSkKKyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSB8fCBtX3JlbmRl
cmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8v
IFVzaW5nIHRoZSBoZWxwIHRleHQsIHRpdGxlIG9yIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24g
KHNvIHdlCkBAIC0yNDExLDggKzI0MTEsMTIgQEAKICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNU
YWdOYW1lKGNhbnZhc1RhZykpCiAgICAgICAgIHJldHVybiBDYW52YXNSb2xlOwogCi0gICAgaWYg
KGNzc0JveCAmJiBjc3NCb3gtPmlzUmVuZGVyVmlldygpKQorICAgIGlmIChjc3NCb3ggJiYgY3Nz
Qm94LT5pc1JlbmRlclZpZXcoKSkgeworICAgICAgICAvLyBJZiB0aGUgaWZyYW1lIGlzIHNlYW1s
ZXNzLCBpdCBzaG91bGQgbm90IGJlIGFubm91bmNlZCBhcyBhIHdlYiBhcmVhIHRvIEFUIGNsaWVu
dHMuCisgICAgICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnNob3VsZERpc3BsYXlT
ZWFtbGVzc2x5V2l0aFBhcmVudCgpKQorICAgICAgICAgICAgcmV0dXJuIFNlYW1sZXNzV2ViQXJl
YVJvbGU7CiAgICAgICAgIHJldHVybiBXZWJBcmVhUm9sZTsKKyAgICB9CiAgICAgCiAgICAgaWYg
KGNzc0JveCAmJiBjc3NCb3gtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBUZXh0Rmll
bGRSb2xlOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDMsMTEgKzQwMyw2IEBACiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1dlYkFyZWEoKSBjb25zdAotewotICAgIHJl
dHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbWFnZUJ1dHRvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzTmF0aXZl
SW1hZ2UoKSAmJiBpc0J1dHRvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDEzNzUxMykKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzIsNiArMTcyLDcgQEAKICAgICBSdWxlck1hcmtlclJvbGUsCiAgICAgU2Ny
b2xsQXJlYVJvbGUsCiAgICAgU2Nyb2xsQmFyUm9sZSwKKyAgICBTZWFtbGVzc1dlYkFyZWFSb2xl
LAogICAgIFNoZWV0Um9sZSwKICAgICBTbGlkZXJSb2xlLAogICAgIFNsaWRlclRodW1iUm9sZSwK
QEAgLTM3Nyw3ICszNzgsOCBAQAogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7
IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQorICAgIGJvb2wgaXNTZWFtbGVz
c1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBTZWFtbGVzc1dlYkFyZWFS
b2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdCB7IHJldHVybiByb2xl
VmFsdWUoKSA9PSBDaGVja0JveFJvbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRv
bigpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBM
aXN0Qm94Um9sZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MSw3ICs5MSw2IEBACiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJ
bmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBp
c1dlYkFyZWEoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrZWQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
Mzc4NzkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0xMi0xNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgorCisgICAgICAgIFNlYW1sZXNzIGlmcmFtZSBzaG91bGQgbm90IGFubm91bmNlIGEgbmV3IGJy
b3dzaW5nIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9h
Y2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVz
cy1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWFtbGVzcy1pZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTYgIENo
cmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIEVGTCBnYXJkZW5pbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9zZWFtbGVzcy1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFtZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWFtbGVzcy1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACisKK1RoaXMgdGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRvIG5vdCBh
cHBlYXIgYXMgd2ViIGFyZWFzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIGdyb3VwMS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xl
OiBBWFNjcm9sbEFyZWEnCitQQVNTIGdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4
KDApLnJvbGUgaXMgJ0FYUm9sZTogQVhHcm91cCcKK1BBU1MgZ3JvdXAxLmNoaWxkQXRJbmRleCgw
KS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0
b24nCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1s
ZXNzLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VhbWxlc3MtaWZyYW1lLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIg
Z3JvdXAxOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICBncm91cDEgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyb3VwMSIpOworICAgICAgICAg
ICAgIHNob3VsZEJlKCJncm91cDEuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhT
Y3JvbGxBcmVhJyIpOworICAgICAgICAgICAgIHNob3VsZEJlKCJncm91cDEuY2hpbGRBdEluZGV4
KDApLmNoaWxkQXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYR3JvdXAnIik7CisgICAgICAg
ICAgICAgc2hvdWxkQmUoImdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLmNo
aWxkQXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYQnV0dG9uJyIpOworICAgICAgICB9Cisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IGlkPSJncm91cDEiIHRhYmluZGV4PSIwIj4KKzxp
ZnJhbWUgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAxMCk7IiBzZWFtbGVzcyB3aWR0
aD0xMDAgaGVpZ2h0PTEwMCBzcmNkb2M9IjxkaXYgcm9sZT0nYnV0dG9uJz5idXR0b248L2Rpdj48
cD50ZXN0PHA+dGVzdDI8cD50ZXN0MzxwPnRlc3Q0Ij48L2lmcmFtZT4KKzwvZGl2PgorCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRv
IG5vdCBhcHBlYXIgYXMgd2ViIGFyZWFzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyIpOworCisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="196678"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179756</attachid>
            <date>2012-12-17 09:09:04 -0800</date>
            <delta_ts>2012-12-17 09:09:04 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11973</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw3
IEBACiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlTGlz
dE1hcmtlciwgTGlzdE1hcmtlclJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYmlsaXR5Um9sZU1hdGhFbGVtZW50LCBNYXRoRWxlbWVudFJvbGUpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVdlYkFyZWEsIFdlYkFy
ZWFSb2xlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJv
bGVTZWFtbGVzc1dlYkFyZWEsIFNlYW1sZXNzV2ViQXJlYVJvbGUpOwogQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZUhlYWRpbmcsIEhlYWRpbmdSb2xlKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVMaXN0Qm94
LCBMaXN0Qm94Um9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2li
aWxpdHlSb2xlTGlzdEJveE9wdGlvbiwgTGlzdEJveE9wdGlvblJvbGUpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTIt
MTYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFt
bGVzcyBpZnJhbWUgc2hvdWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwg
aW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBs
ZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAg
ICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmg6CisgICAgICAgICogc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwOgorCiAyMDEyLTEyLTE2ICBMZXZpIFdlaW50cmF1YiAgPGxldml3
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGludG8g
VHJhbnNmb3JtU3RhdGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
Y2Vzc2liaWxpdHlSb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE3LDYgKzExNyw3IEBACiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVSdWxlck1h
cmtlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNjcm9sbEFyZWEsCiAgICAgV2ViQWNjZXNz
aWJpbGl0eVJvbGVTY3JvbGxCYXIsCisgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTZWFtbGVzc1dl
YkFyZWEsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVTaGVldCwKICAgICBXZWJBY2Nlc3NpYmls
aXR5Um9sZVNsaWRlciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVNsaWRlclRodW1iLApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTItMTYgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTZWFtbGVzcyBpZnJhbWUgc2hv
dWxkIG5vdCBhbm5vdW5jZSBhIG5ldyBicm93c2luZyBjb250ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyByb2xlIGZvciBzZWFt
bGVzcyBmcmFtZXMgc28gdGhhdCB0aGUgcGxhdGZvcm1zIGNhbiBkZWNpZGUgd2hhdCB0byBkbwor
ICAgICAgICB3aXRoIHRoaXMga2luZCBvZiBvYmplY3QuIEZvciB0aGUgbWFjLCBpdCdzIGV4cG9z
ZWQgYXMgYSBncm91cC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWFtbGVzcy1pZnJhbWUuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1dlYkFyZWEp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTZWFtbGVzc1dlYkFy
ZWEpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRP
YmplY3RJZkV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwYXJlbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyLm1tOgorICAgICAgICAoY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXApOgorCiAyMDEyLTEy
LTE2ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEZpeCBKUyBjb21waWxlciB3YXJuaW5nLgpJbmRleDogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW0JKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTg1LDYgKzE1ODUsNyBAQAogICAgICAgICB7IEltYWdlTWFwUm9s
ZSwgQCJBWEltYWdlTWFwIiB9LAogICAgICAgICB7IExpc3RNYXJrZXJSb2xlLCBAIkFYTGlzdE1h
cmtlciIgfSwKICAgICAgICAgeyBXZWJBcmVhUm9sZSwgQCJBWFdlYkFyZWEiIH0sCisgICAgICAg
IHsgU2VhbWxlc3NXZWJBcmVhUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAgICAg
ICAgIHsgSGVhZGluZ1JvbGUsIEAiQVhIZWFkaW5nIiB9LAogICAgICAgICB7IExpc3RCb3hSb2xl
LCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAogICAgICAgICB7IExpc3RCb3hPcHRpb25Sb2xl
LCBOU0FjY2Vzc2liaWxpdHlTdGF0aWNUZXh0Um9sZSB9LApJbmRleDogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxMzc1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNyArNDY3
LDcgQEAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBh
cmVudE9iamVjdElmRXhpc3RzKCkgY29uc3QKIHsKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50IHNo
b3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KLSAgICBpZiAoaXNXZWJBcmVh
KCkpCisgICAgaWYgKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAgICAg
IHJldHVybiBheE9iamVjdENhY2hlKCktPmdldChtX3JlbmRlcmVyLT5mcmFtZSgpLT52aWV3KCkp
OwogCiAgICAgcmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0KHJlbmRlclBhcmVudE9iamVjdCgp
KTsKQEAgLTQ5Myw3ICs0OTMsNyBAQAogICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5n
ZXRPckNyZWF0ZShwYXJlbnRPYmopOwogICAgIAogICAgIC8vIFdlYkFyZWEncyBwYXJlbnQgc2hv
dWxkIGJlIHRoZSBzY3JvbGwgdmlldyBjb250YWluaW5nIGl0LgotICAgIGlmIChpc1dlYkFyZWEo
KSkKKyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSkKICAgICAgICAg
cmV0dXJuIGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUobV9yZW5kZXJlci0+ZnJhbWUoKS0+
dmlldygpKTsKICAgICAKICAgICByZXR1cm4gMDsKQEAgLTc3MCw3ICs3NzAsNyBAQAogICAgIFZl
Y3RvcjxGbG9hdFF1YWQ+IHF1YWRzOwogICAgIGlmIChvYmotPmlzVGV4dCgpKQogICAgICAgICB0
b1JlbmRlclRleHQob2JqKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCwgUmVuZGVyVGV4dDo6Q2xp
cFRvRWxsaXBzaXMpOwotICAgIGVsc2UgaWYgKGlzV2ViQXJlYSgpKQorICAgIGVsc2UgaWYgKGlz
V2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpCiAgICAgICAgIG9iai0+YWJzb2x1dGVR
dWFkcyhxdWFkcyk7CiAgICAgZWxzZQogICAgICAgICBvYmotPmFic29sdXRlRm9jdXNSaW5nUXVh
ZHMocXVhZHMpOwpAQCAtNzg0LDcgKzc4NCw3IEBACiAjZW5kaWYKICAgICAKICAgICAvLyBUaGUg
c2l6ZSBvZiB0aGUgd2ViIGFyZWEgc2hvdWxkIGJlIHRoZSBjb250ZW50IHNpemUsIG5vdCB0aGUg
Y2xpcHBlZCBzaXplLgotICAgIGlmIChpc1dlYkFyZWEoKSAmJiBvYmotPmZyYW1lKCktPnZpZXco
KSkKKyAgICBpZiAoKGlzV2ViQXJlYSgpIHx8IGlzU2VhbWxlc3NXZWJBcmVhKCkpICYmIG9iai0+
ZnJhbWUoKS0+dmlldygpKQogICAgICAgICByZXN1bHQuc2V0U2l6ZShvYmotPmZyYW1lKCktPnZp
ZXcoKS0+Y29udGVudHNTaXplKCkpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMjU2
LDcgKzEyNTYsNyBAQAogICAgICAgICAvLyBPdGhlcndpc2UgZmFsbCB0aHJvdWdoOyB1c2UgcHJl
c2VuY2Ugb2YgaGVscCB0ZXh0LCB0aXRsZSwgb3IgZGVzY3JpcHRpb24gdG8gZGVjaWRlLgogICAg
IH0KIAotICAgIGlmIChpc1dlYkFyZWEoKSB8fCBtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkK
KyAgICBpZiAoaXNXZWJBcmVhKCkgfHwgaXNTZWFtbGVzc1dlYkFyZWEoKSB8fCBtX3JlbmRlcmVy
LT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8vIFVz
aW5nIHRoZSBoZWxwIHRleHQsIHRpdGxlIG9yIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gKHNv
IHdlCkBAIC0yNDExLDggKzI0MTEsMTIgQEAKICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdO
YW1lKGNhbnZhc1RhZykpCiAgICAgICAgIHJldHVybiBDYW52YXNSb2xlOwogCi0gICAgaWYgKGNz
c0JveCAmJiBjc3NCb3gtPmlzUmVuZGVyVmlldygpKQorICAgIGlmIChjc3NCb3ggJiYgY3NzQm94
LT5pc1JlbmRlclZpZXcoKSkgeworICAgICAgICAvLyBJZiB0aGUgaWZyYW1lIGlzIHNlYW1sZXNz
LCBpdCBzaG91bGQgbm90IGJlIGFubm91bmNlZCBhcyBhIHdlYiBhcmVhIHRvIEFUIGNsaWVudHMu
CisgICAgICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnNob3VsZERpc3BsYXlTZWFt
bGVzc2x5V2l0aFBhcmVudCgpKQorICAgICAgICAgICAgcmV0dXJuIFNlYW1sZXNzV2ViQXJlYVJv
bGU7CiAgICAgICAgIHJldHVybiBXZWJBcmVhUm9sZTsKKyAgICB9CiAgICAgCiAgICAgaWYgKGNz
c0JveCAmJiBjc3NCb3gtPmlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBUZXh0RmllbGRS
b2xlOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MDMsMTEgKzQwMyw2IEBACiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1dlYkFyZWEoKSBjb25zdAotewotICAgIHJldHVy
biByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNJbWFnZUJ1dHRvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzTmF0aXZlSW1h
Z2UoKSAmJiBpc0J1dHRvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDEzNzUxMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzIsNiArMTcyLDcgQEAKICAgICBSdWxlck1hcmtlclJvbGUsCiAgICAgU2Nyb2xs
QXJlYVJvbGUsCiAgICAgU2Nyb2xsQmFyUm9sZSwKKyAgICBTZWFtbGVzc1dlYkFyZWFSb2xlLAog
ICAgIFNoZWV0Um9sZSwKICAgICBTbGlkZXJSb2xlLAogICAgIFNsaWRlclRodW1iUm9sZSwKQEAg
LTM3Nyw3ICszNzgsOCBAQAogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9s
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzV2ViQXJlYSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJl
dHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQorICAgIGJvb2wgaXNTZWFtbGVzc1dl
YkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBTZWFtbGVzc1dlYkFyZWFSb2xl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdCB7IHJldHVybiByb2xlVmFs
dWUoKSA9PSBDaGVja0JveFJvbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigp
IGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBMaXN0
Qm94Um9sZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAkocmV2aXNpb24gMTM3NTEzKQorKysgU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw3ICs5MSw2IEBACiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRp
Y2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1dl
YkFyZWEoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrZWQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc4
NzkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0xMi0xNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgor
CisgICAgICAgIFNlYW1sZXNzIGlmcmFtZSBzaG91bGQgbm90IGFubm91bmNlIGEgbmV3IGJyb3dz
aW5nIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVzcy1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVzcy1p
ZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJp
c3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJkZW5p
bmcuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVz
cy1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWFtbGVzcy1p
ZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACisKK1RoaXMg
dGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRvIG5vdCBhcHBlYXIgYXMgd2ViIGFyZWFzIHRv
IGFjY2Vzc2liaWxpdHkgY2xpZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIGdy
b3VwMS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWFNjcm9sbEFyZWEnCitQQVNT
IGdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9sZTog
QVhHcm91cCcKK1BBU1MgZ3JvdXAxLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCkuY2hp
bGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0b24nCisKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNzLWlmcmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlYW1sZXNz
LWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VhbWxlc3MtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIgZ3JvdXAxOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICAgICAgICAgICBncm91cDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyb3VwMSIpOworICAgICAgICAgICAgIHNob3VsZEJlKCJn
cm91cDEuY2hpbGRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhTY3JvbGxBcmVhJyIpOwor
ICAgICAgICAgICAgIHNob3VsZEJlKCJncm91cDEuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRl
eCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYR3JvdXAnIik7CisgICAgICAgICAgICAgc2hvdWxkQmUo
Imdyb3VwMS5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgwKS5y
b2xlIiwgIidBWFJvbGU6IEFYQnV0dG9uJyIpOworICAgICAgICB9CisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJv
ZHkiPgorCis8ZGl2IGlkPSJncm91cDEiIHRhYmluZGV4PSIwIj4KKzxpZnJhbWUgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW5UZXN0KCknLCAyMCk7IiBzZWFtbGVzcyB3aWR0aD0xMDAgaGVpZ2h0PTEw
MCBzcmNkb2M9IjxkaXYgcm9sZT0nYnV0dG9uJz5idXR0b248L2Rpdj48cD50ZXN0PHA+dGVzdDI8
cD50ZXN0MzxwPnRlc3Q0Ij48L2lmcmFtZT4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgdGhhdCBzZWFtbGVzcyBpZnJhbWVzIGRvIG5vdCBhcHBlYXIgYXMg
d2ViIGFyZWFzIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyIpOworCisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>