<?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>48545</bug_id>
          
          <creation_ts>2010-10-28 11:56:27 -0700</creation_ts>
          <short_desc>Home/End, PgUp, PgDwn, spacebar, shift+spacebar, etc. should respect writing-mode</short_desc>
          <delta_ts>2010-12-13 13:51:44 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301205</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-28 11:56:27 -0700</bug_when>
    <thetext>The arrow keys, spacebar, shift+spacebar, etc. should respect writing-mode and move in the appropriate writing-mode direction rather than being hardcoded to horizontal-tb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302098</commentid>
    <comment_count>1</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-10-29 15:11:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/8612028&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319639</commentid>
    <comment_count>2</comment_count>
      <attachid>76101</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-09 12:10:42 -0800</bug_when>
    <thetext>Created attachment 76101
Part 1: Patch for Mac WebKit 1 views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319655</commentid>
    <comment_count>3</comment_count>
      <attachid>76110</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-09 12:28:01 -0800</bug_when>
    <thetext>Created attachment 76110
Part 1: Patch for Mac WebKit 1 views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319670</commentid>
    <comment_count>4</comment_count>
      <attachid>76110</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-09 13:02:54 -0800</bug_when>
    <thetext>Comment on attachment 76110
Part 1: Patch for Mac WebKit 1 views.

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

&gt; WebKit/mac/WebView/WebFrameView.mm:595
&gt; +    if (isVertical) {
&gt; +        if (!isFlipped)
&gt; +            NSMakePoint(frame.origin.x, NSMaxY(frame));
&gt; +        else
&gt; +            NSMakePoint(frame.origin.x, NSMinY(frame));
&gt; +    } else {
&gt; +        if (!isFlipped)
&gt; +            NSMakePoint(NSMaxX(frame), frame.origin.y);
&gt; +        else
&gt; +            NSMakePoint(NSMinX(frame), frame.origin.y);
&gt; +    }

I think you meant to assign the result of NSMakePoint() to point</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319672</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-09 13:05:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 76110 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76110&amp;action=review
&gt; 
&gt; &gt; WebKit/mac/WebView/WebFrameView.mm:595
&gt; &gt; +    if (isVertical) {
&gt; &gt; +        if (!isFlipped)
&gt; &gt; +            NSMakePoint(frame.origin.x, NSMaxY(frame));
&gt; &gt; +        else
&gt; &gt; +            NSMakePoint(frame.origin.x, NSMinY(frame));
&gt; &gt; +    } else {
&gt; &gt; +        if (!isFlipped)
&gt; &gt; +            NSMakePoint(NSMaxX(frame), frame.origin.y);
&gt; &gt; +        else
&gt; &gt; +            NSMakePoint(NSMinX(frame), frame.origin.y);
&gt; &gt; +    }
&gt; 
&gt; I think you meant to assign the result of NSMakePoint() to point

WORST PATCH EVER!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319673</commentid>
    <comment_count>6</comment_count>
      <attachid>76115</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-09 13:05:35 -0800</bug_when>
    <thetext>Created attachment 76115
Part 1: Patch for Mac WebKit 1 views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319693</commentid>
    <comment_count>7</comment_count>
      <attachid>76115</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-09 13:41:15 -0800</bug_when>
    <thetext>Comment on attachment 76115
Part 1: Patch for Mac WebKit 1 views.

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

&gt; WebKit/mac/WebView/WebFrameView.mm:604
&gt; +    

greenspace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319708</commentid>
    <comment_count>8</comment_count>
      <attachid>76115</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-09 14:10:52 -0800</bug_when>
    <thetext>Comment on attachment 76115
Part 1: Patch for Mac WebKit 1 views.

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

&gt; WebKit/mac/WebView/WebFrameView.mm:544
&gt; +    return renderView-&gt;style()-&gt;isHorizontalWritingMode();

Sense here seems backwards!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321302</commentid>
    <comment_count>9</comment_count>
      <attachid>76418</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-13 11:55:26 -0800</bug_when>
    <thetext>Created attachment 76418
Part 2: Patch for WebKit2 views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321308</commentid>
    <comment_count>10</comment_count>
      <attachid>76418</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 11:59:41 -0800</bug_when>
    <thetext>Comment on attachment 76418
Part 2: Patch for WebKit2 views.

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

&gt; WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:112
&gt; +static inline void logicalScroll(Page* page, ScrollLogicalDirection direction, ScrollGranularity granularity)
&gt; +{
&gt; +    page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;eventHandler()-&gt;logicalScrollRecursively(direction, granularity);
&gt; +}

Is anyone still calling the scroll() function above? Can we remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321316</commentid>
    <comment_count>11</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-13 12:14:47 -0800</bug_when>
    <thetext>Fixed in r73941.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321327</commentid>
    <comment_count>12</comment_count>
      <attachid>76420</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-13 12:28:29 -0800</bug_when>
    <thetext>Created attachment 76420
Cleanup on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321328</commentid>
    <comment_count>13</comment_count>
      <attachid>76420</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-13 12:29:10 -0800</bug_when>
    <thetext>Comment on attachment 76420
Cleanup on Windows.

Is it possible to add a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321378</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-13 13:51:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73941 might have broken SnowLeopard Intel Release (Tests) and GTK Linux 64-bit Debug
The following tests are not passing:
editing/selection/extend-to-line-boundary.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76101</attachid>
            <date>2010-12-09 12:10:42 -0800</date>
            <delta_ts>2010-12-09 12:28:01 -0800</delta_ts>
            <desc>Part 1: Patch for Mac WebKit 1 views.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6379</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gNzM2MzUpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTEgQEAKKzIwMTAtMTItMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBz
aG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMC0xMi0wNyAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgWGNvZGUgcHJvamVjdCBm
b3IgbmV3ZXIgWGNvZGUuCkluZGV4OiBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiA3MzQwMikKKysrIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY2Niw2ICsxNjY2LDcgQEAKIAkJCWlzYSA9IFBC
WFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4MzIwODkwMkIwRjAw
OEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViS2l0
IiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CisJCQlkZXZlbG9w
bWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJ
CWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDczNjM1KQor
KysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAor
MjAxMC0xMi0wOSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ4NTQ1LCBIb21lL0VuZCwgUGdVcCwgUGdEb3duIHNob3VsZCBy
ZXNwZWN0CisgICAgICAgIHdyaXRpbmctbW9kZS4gIFRoaXMgZmlyc3QgcGFydCBvZiB0aGUgcGF0
Y2gganVzdCBwYXRjaGVzIE1hYyBXZWJLaXQgMSB2aWV3cy4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViRnJhbWVWaWV3Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2lzVmVydGljYWxEb2N1
bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2lzRmxpcHBlZERvY3VtZW50XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lVmlldyBfaXNSVExEb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJG
cmFtZVZpZXcgX3Njcm9sbFRvRW5kT2ZEb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZp
ZXcgX3BhZ2VJbkJsb2NrUHJvZ3Jlc3Npb25EaXJlY3Rpb246XSk6CisgICAgICAgICgtW1dlYkZy
YW1lVmlldyBzY3JvbGxQYWdlVXA6XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBzY3JvbGxQ
YWdlRG93bjpdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IHNjcm9sbEluQmxvY2tQcm9ncmVz
c2lvbkRpcmVjdGlvbjpdKToKKwogMjAxMC0xMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZVZpZXcubW0JKHJldmlzaW9uIDczNDAyKQorKysgV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTI5LDYgKzUyOSw0OSBAQCAt
IChCT09MKV9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOihTY3JvCiAgICAgcmV0dXJuIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsT3ZlcmZsb3coZGlyZWN0aW9uLCBncmFudWxhcml0eSk7
CiB9CiAKKworLSAoQk9PTClfaXNWZXJ0aWNhbERvY3VtZW50Cit7CisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICBy
ZXR1cm4gWUVTOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gWUVTOworICAgIFJlbmRlck9i
amVjdCogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVy
VmlldykKKyAgICAgICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUo
KS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKK30KKworLSAoQk9PTClfaXNGbGlwcGVkRG9j
dW1lbnQKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAg
aWYgKCFjb3JlRnJhbWUpCisgICAgICAgIHJldHVybiBZRVM7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBZRVM7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJl
bmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQorICAgICAgICByZXR1cm4gWUVTOworICAg
IHJldHVybiByZW5kZXJWaWV3LT5zdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgp
OworfQorCistIChCT09MKV9pc1JUTERvY3VtZW50Cit7CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm4g
WUVTOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gWUVTOworICAgIFJlbmRlck9iamVjdCog
cmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyVmlldykK
KyAgICAgICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gIXJlbmRlclZpZXctPnN0eWxlKCktPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKK30KKwogLSAoQk9PTClfc2Nyb2xsVG9CZWdpbm5pbmdP
ZkRvY3VtZW50CiB7CiAgICAgaWYgKFtzZWxmIF9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOlNj
cm9sbFVwIGdyYW51bGFyaXR5OlNjcm9sbEJ5RG9jdW1lbnRdKQpAQCAtNTQ4LDEyICs1OTEsMzEg
QEAgLSAoQk9PTClfc2Nyb2xsVG9FbmRPZkRvY3VtZW50CiAgICAgaWYgKCFbc2VsZiBfaXNTY3Jv
bGxhYmxlXSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIE5TUmVjdCBmcmFtZSA9IFtbW3NlbGYg
X3Njcm9sbFZpZXddIGRvY3VtZW50Vmlld10gZnJhbWVdOwotICAgIE5TUG9pbnQgcG9pbnQgPSBO
U01ha2VQb2ludChmcmFtZS5vcmlnaW4ueCwgTlNNYXhZKGZyYW1lKSk7Ci0gICAgcG9pbnQueCAr
PSBbW3NlbGYgX3Njcm9sbFZpZXddIHNjcm9sbE9yaWdpbl0ueDsKLSAgICBwb2ludC55ICs9IFtb
c2VsZiBfc2Nyb2xsVmlld10gc2Nyb2xsT3JpZ2luXS55OworICAgIAorICAgIGJvb2wgaXNWZXJ0
aWNhbCA9IFtzZWxmIF9pc1ZlcnRpY2FsRG9jdW1lbnRdOworICAgIGJvb2wgaXNGbGlwcGVkID0g
W3NlbGYgX2lzRmxpcHBlZERvY3VtZW50XTsKKworICAgIE5TUG9pbnQgcG9pbnQ7CisgICAgaWYg
KGlzVmVydGljYWwpIHsKKyAgICAgICAgaWYgKCFpc0ZsaXBwZWQpCisgICAgICAgICAgICBOU01h
a2VQb2ludChmcmFtZS5vcmlnaW4ueCwgTlNNYXhZKGZyYW1lKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIE5TTWFrZVBvaW50KGZyYW1lLm9yaWdpbi54LCBOU01pblkoZnJhbWUpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBpZiAoIWlzRmxpcHBlZCkKKyAgICAgICAgICAgIE5TTWFrZVBv
aW50KE5TTWF4WChmcmFtZSksIGZyYW1lLm9yaWdpbi55KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgTlNNYWtlUG9pbnQoTlNNaW5YKGZyYW1lKSwgZnJhbWUub3JpZ2luLnkpOworICAgIH0K
KyAgICAKKyAgICAvLyBSZXNldCB0aGUgcG9zaXRpb24gb3Bwb3NpdGUgdG8gdGhlIGJsb2NrIHBy
b2dyZXNzaW9uIGRpcmVjdGlvbi4KKyAgICBpZiAoaXNWZXJ0aWNhbCkKKyAgICAgICAgcG9pbnQu
eCArPSBbW3NlbGYgX3Njcm9sbFZpZXddIHNjcm9sbE9yaWdpbl0ueDsKKyAgICBlbHNlCisgICAg
ICAgIHBvaW50LnkgKz0gW1tzZWxmIF9zY3JvbGxWaWV3XSBzY3JvbGxPcmlnaW5dLnk7CiAgICAg
cmV0dXJuIFtbc2VsZiBfY29udGVudFZpZXddIF9zY3JvbGxUbzomcG9pbnQgYW5pbWF0ZTpZRVNd
OwogfQotCisgICAgCiAtICh2b2lkKXNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudDooaWQpc2Vu
ZGVyCiB7CiAgICAgaWYgKFtzZWxmIF9zY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnRdKQpAQCAt
NjQzLDYgKzcwNSwxNiBAQCAtIChCT09MKV9wYWdlSG9yaXpvbnRhbGx5OihCT09MKWxlZnQKICAg
ICByZXR1cm4gW3NlbGYgX3Njcm9sbEhvcml6b250YWxseUJ5OmxlZnQgPyAtZGVsdGEgOiBkZWx0
YV07CiB9CiAKKy0gKEJPT0wpX3BhZ2VJbkJsb2NrUHJvZ3Jlc3Npb25EaXJlY3Rpb246KEJPT0wp
Zm9yd2FyZAoreworICAgIC8vIERldGVybWluZSB3aGV0aGVyIHdlJ3JlIGNhbGxpbmcgX3BhZ2VW
ZXJ0aWNhbGx5IG9yIF9wYWdlSG9yaXpvbnRhbGx5LgorICAgIEJPT0wgaXNWZXJ0aWNhbERvY3Vt
ZW50ID0gW3NlbGYgX2lzVmVydGljYWxEb2N1bWVudF07CisgICAgQk9PTCBpc0ZsaXBwZWRCbG9j
ayA9IFtzZWxmIF9pc0ZsaXBwZWREb2N1bWVudF07CisgICAgaWYgKGlzVmVydGljYWxEb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuIFtzZWxmIF9wYWdlVmVydGljYWxseTppc0ZsaXBwZWRCbG9jayA/
ICFmb3J3YXJkIDogZm9yd2FyZF07CisgICAgcmV0dXJuIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5
OmlzRmxpcHBlZEJsb2NrID8gIWZvcndhcmQgOiBmb3J3YXJkXTsKK30KKwogLSAoQk9PTClfc2Ny
b2xsTGluZVZlcnRpY2FsbHk6KEJPT0wpdXAKIHsKICAgICBpZiAoW3NlbGYgX3Njcm9sbE92ZXJm
bG93SW5EaXJlY3Rpb246dXAgPyBTY3JvbGxVcCA6IFNjcm9sbERvd24gZ3JhbnVsYXJpdHk6U2Ny
b2xsQnlMaW5lXSkKQEAgLTY2OSw3ICs3NDEsNyBAQCAtIChCT09MKV9zY3JvbGxMaW5lSG9yaXpv
bnRhbGx5OihCT09MKWxlCiAKIC0gKHZvaWQpc2Nyb2xsUGFnZVVwOihpZClzZW5kZXIKIHsKLSAg
ICBpZiAoIVtzZWxmIF9wYWdlVmVydGljYWxseTpZRVNdKSB7CisgICAgaWYgKCFbc2VsZiBfcGFn
ZUluQmxvY2tQcm9ncmVzc2lvbkRpcmVjdGlvbjpZRVNdKSB7CiAgICAgICAgIC8vIElmIHdlIHdl
cmUgYWxyZWFkeSBhdCB0aGUgdG9wLCB0ZWxsIHRoZSBuZXh0IHJlc3BvbmRlciB0byBzY3JvbGwg
aWYgaXQgY2FuLgogICAgICAgICBbW3NlbGYgbmV4dFJlc3BvbmRlcl0gdHJ5VG9QZXJmb3JtOkBz
ZWxlY3RvcihzY3JvbGxQYWdlVXA6KSB3aXRoOnNlbmRlcl07CiAgICAgfQpAQCAtNjc3LDEyICs3
NDksMTcgQEAgLSAodm9pZClzY3JvbGxQYWdlVXA6KGlkKXNlbmRlcgogCiAtICh2b2lkKXNjcm9s
bFBhZ2VEb3duOihpZClzZW5kZXIKIHsKLSAgICBpZiAoIVtzZWxmIF9wYWdlVmVydGljYWxseTpO
T10pIHsKKyAgICBpZiAoIVtzZWxmIF9wYWdlSW5CbG9ja1Byb2dyZXNzaW9uRGlyZWN0aW9uOk5P
XSkgewogICAgICAgICAvLyBJZiB3ZSB3ZXJlIGFscmVhZHkgYXQgdGhlIGJvdHRvbSwgdGVsbCB0
aGUgbmV4dCByZXNwb25kZXIgdG8gc2Nyb2xsIGlmIGl0IGNhbi4KICAgICAgICAgW1tzZWxmIG5l
eHRSZXNwb25kZXJdIHRyeVRvUGVyZm9ybTpAc2VsZWN0b3Ioc2Nyb2xsUGFnZURvd246KSB3aXRo
OnNlbmRlcl07CiAgICAgfQogfQogCistICh2b2lkKXNjcm9sbEluQmxvY2tQcm9ncmVzc2lvbkRp
cmVjdGlvbjooaWQpc2VuZGVyCit7CisKK30KKwogLSAodm9pZClzY3JvbGxMaW5lVXA6KGlkKXNl
bmRlcgogewogICAgIGlmICghW3NlbGYgX3Njcm9sbExpbmVWZXJ0aWNhbGx5OllFU10pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76110</attachid>
            <date>2010-12-09 12:28:01 -0800</date>
            <delta_ts>2010-12-09 13:05:35 -0800</delta_ts>
            <desc>Part 1: Patch for Mac WebKit 1 views.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4754</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA3MzYzNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTItMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU0NSwgSG9tZS9F
bmQsIFBnVXAsIFBnRG93biBzaG91bGQgcmVzcGVjdAorICAgICAgICB3cml0aW5nLW1vZGUuICBU
aGlzIGZpcnN0IHBhcnQgb2YgdGhlIHBhdGNoIGp1c3QgcGF0Y2hlcyBNYWMgV2ViS2l0IDEgdmll
d3MuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWVWaWV3IF9pc1ZlcnRpY2FsRG9jdW1lbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3
IF9pc0ZsaXBwZWREb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3Njcm9sbFRv
RW5kT2ZEb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3BhZ2VJbkJsb2NrUHJv
Z3Jlc3Npb25EaXJlY3Rpb246XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBzY3JvbGxQYWdl
VXA6XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBzY3JvbGxQYWdlRG93bjpdKToKKwogMjAx
MC0xMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0JKHJl
dmlzaW9uIDczNDAyKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTI5LDYgKzUyOSwzNSBAQCAtIChCT09MKV9zY3JvbGxPdmVyZmxvd0lu
RGlyZWN0aW9uOihTY3JvCiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xs
T3ZlcmZsb3coZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CiB9CiAKKworLSAoQk9PTClfaXNWZXJ0
aWNhbERvY3VtZW50Cit7CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVd
OworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm4gWUVTOworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gWUVTOworICAgIFJlbmRlck9iamVjdCogcmVuZGVyVmlldyA9IGRvY3Vt
ZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIFlF
UzsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKTsKK30KKworLSAoQk9PTClfaXNGbGlwcGVkRG9jdW1lbnQKK3sKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAg
IHJldHVybiBOTzsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIE5POworICAgIFJlbmRlck9i
amVjdCogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVy
VmlldykKKyAgICAgICAgcmV0dXJuIE5POworICAgIHJldHVybiByZW5kZXJWaWV3LT5zdHlsZSgp
LT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpOworfQorCiAtIChCT09MKV9zY3JvbGxUb0Jl
Z2lubmluZ09mRG9jdW1lbnQKIHsKICAgICBpZiAoW3NlbGYgX3Njcm9sbE92ZXJmbG93SW5EaXJl
Y3Rpb246U2Nyb2xsVXAgZ3JhbnVsYXJpdHk6U2Nyb2xsQnlEb2N1bWVudF0pCkBAIC01NDgsMTIg
KzU3NywzMSBAQCAtIChCT09MKV9zY3JvbGxUb0VuZE9mRG9jdW1lbnQKICAgICBpZiAoIVtzZWxm
IF9pc1Njcm9sbGFibGVdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgTlNSZWN0IGZyYW1lID0g
W1tbc2VsZiBfc2Nyb2xsVmlld10gZG9jdW1lbnRWaWV3XSBmcmFtZV07Ci0gICAgTlNQb2ludCBw
b2ludCA9IE5TTWFrZVBvaW50KGZyYW1lLm9yaWdpbi54LCBOU01heFkoZnJhbWUpKTsKLSAgICBw
b2ludC54ICs9IFtbc2VsZiBfc2Nyb2xsVmlld10gc2Nyb2xsT3JpZ2luXS54OwotICAgIHBvaW50
LnkgKz0gW1tzZWxmIF9zY3JvbGxWaWV3XSBzY3JvbGxPcmlnaW5dLnk7CisgICAgCisgICAgYm9v
bCBpc1ZlcnRpY2FsID0gW3NlbGYgX2lzVmVydGljYWxEb2N1bWVudF07CisgICAgYm9vbCBpc0Zs
aXBwZWQgPSBbc2VsZiBfaXNGbGlwcGVkRG9jdW1lbnRdOworCisgICAgTlNQb2ludCBwb2ludDsK
KyAgICBpZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICBpZiAoIWlzRmxpcHBlZCkKKyAgICAgICAg
ICAgIE5TTWFrZVBvaW50KGZyYW1lLm9yaWdpbi54LCBOU01heFkoZnJhbWUpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgTlNNYWtlUG9pbnQoZnJhbWUub3JpZ2luLngsIE5TTWluWShmcmFt
ZSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghaXNGbGlwcGVkKQorICAgICAgICAgICAg
TlNNYWtlUG9pbnQoTlNNYXhYKGZyYW1lKSwgZnJhbWUub3JpZ2luLnkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBOU01ha2VQb2ludChOU01pblgoZnJhbWUpLCBmcmFtZS5vcmlnaW4ueSk7
CisgICAgfQorICAgIAorICAgIC8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvcHBvc2l0ZSB0byB0aGUg
YmxvY2sgcHJvZ3Jlc3Npb24gZGlyZWN0aW9uLgorICAgIGlmIChpc1ZlcnRpY2FsKQorICAgICAg
ICBwb2ludC54ICs9IFtbc2VsZiBfc2Nyb2xsVmlld10gc2Nyb2xsT3JpZ2luXS54OworICAgIGVs
c2UKKyAgICAgICAgcG9pbnQueSArPSBbW3NlbGYgX3Njcm9sbFZpZXddIHNjcm9sbE9yaWdpbl0u
eTsKICAgICByZXR1cm4gW1tzZWxmIF9jb250ZW50Vmlld10gX3Njcm9sbFRvOiZwb2ludCBhbmlt
YXRlOllFU107CiB9Ci0KKyAgICAKIC0gKHZvaWQpc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50
OihpZClzZW5kZXIKIHsKICAgICBpZiAoW3NlbGYgX3Njcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVu
dF0pCkBAIC02NDMsNiArNjkxLDE2IEBAIC0gKEJPT0wpX3BhZ2VIb3Jpem9udGFsbHk6KEJPT0wp
bGVmdAogICAgIHJldHVybiBbc2VsZiBfc2Nyb2xsSG9yaXpvbnRhbGx5Qnk6bGVmdCA/IC1kZWx0
YSA6IGRlbHRhXTsKIH0KIAorLSAoQk9PTClfcGFnZUluQmxvY2tQcm9ncmVzc2lvbkRpcmVjdGlv
bjooQk9PTClmb3J3YXJkCit7CisgICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgd2UncmUgY2FsbGlu
ZyBfcGFnZVZlcnRpY2FsbHkgb3IgX3BhZ2VIb3Jpem9udGFsbHkuCisgICAgQk9PTCBpc1ZlcnRp
Y2FsRG9jdW1lbnQgPSBbc2VsZiBfaXNWZXJ0aWNhbERvY3VtZW50XTsKKyAgICBCT09MIGlzRmxp
cHBlZEJsb2NrID0gW3NlbGYgX2lzRmxpcHBlZERvY3VtZW50XTsKKyAgICBpZiAoaXNWZXJ0aWNh
bERvY3VtZW50KQorICAgICAgICByZXR1cm4gW3NlbGYgX3BhZ2VWZXJ0aWNhbGx5OmlzRmxpcHBl
ZEJsb2NrID8gIWZvcndhcmQgOiBmb3J3YXJkXTsKKyAgICByZXR1cm4gW3NlbGYgX3BhZ2VIb3Jp
em9udGFsbHk6aXNGbGlwcGVkQmxvY2sgPyAhZm9yd2FyZCA6IGZvcndhcmRdOworfQorCiAtIChC
T09MKV9zY3JvbGxMaW5lVmVydGljYWxseTooQk9PTCl1cAogewogICAgIGlmIChbc2VsZiBfc2Ny
b2xsT3ZlcmZsb3dJbkRpcmVjdGlvbjp1cCA/IFNjcm9sbFVwIDogU2Nyb2xsRG93biBncmFudWxh
cml0eTpTY3JvbGxCeUxpbmVdKQpAQCAtNjY5LDcgKzcyNyw3IEBAIC0gKEJPT0wpX3Njcm9sbExp
bmVIb3Jpem9udGFsbHk6KEJPT0wpbGUKIAogLSAodm9pZClzY3JvbGxQYWdlVXA6KGlkKXNlbmRl
cgogewotICAgIGlmICghW3NlbGYgX3BhZ2VWZXJ0aWNhbGx5OllFU10pIHsKKyAgICBpZiAoIVtz
ZWxmIF9wYWdlSW5CbG9ja1Byb2dyZXNzaW9uRGlyZWN0aW9uOllFU10pIHsKICAgICAgICAgLy8g
SWYgd2Ugd2VyZSBhbHJlYWR5IGF0IHRoZSB0b3AsIHRlbGwgdGhlIG5leHQgcmVzcG9uZGVyIHRv
IHNjcm9sbCBpZiBpdCBjYW4uCiAgICAgICAgIFtbc2VsZiBuZXh0UmVzcG9uZGVyXSB0cnlUb1Bl
cmZvcm06QHNlbGVjdG9yKHNjcm9sbFBhZ2VVcDopIHdpdGg6c2VuZGVyXTsKICAgICB9CkBAIC02
NzcsNyArNzM1LDcgQEAgLSAodm9pZClzY3JvbGxQYWdlVXA6KGlkKXNlbmRlcgogCiAtICh2b2lk
KXNjcm9sbFBhZ2VEb3duOihpZClzZW5kZXIKIHsKLSAgICBpZiAoIVtzZWxmIF9wYWdlVmVydGlj
YWxseTpOT10pIHsKKyAgICBpZiAoIVtzZWxmIF9wYWdlSW5CbG9ja1Byb2dyZXNzaW9uRGlyZWN0
aW9uOk5PXSkgewogICAgICAgICAvLyBJZiB3ZSB3ZXJlIGFscmVhZHkgYXQgdGhlIGJvdHRvbSwg
dGVsbCB0aGUgbmV4dCByZXNwb25kZXIgdG8gc2Nyb2xsIGlmIGl0IGNhbi4KICAgICAgICAgW1tz
ZWxmIG5leHRSZXNwb25kZXJdIHRyeVRvUGVyZm9ybTpAc2VsZWN0b3Ioc2Nyb2xsUGFnZURvd246
KSB3aXRoOnNlbmRlcl07CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76115</attachid>
            <date>2010-12-09 13:05:35 -0800</date>
            <delta_ts>2010-12-13 11:55:26 -0800</delta_ts>
            <desc>Part 1: Patch for Mac WebKit 1 views.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4786</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA3MzYzNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTItMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU0NSwgSG9tZS9F
bmQsIFBnVXAsIFBnRG93biBzaG91bGQgcmVzcGVjdAorICAgICAgICB3cml0aW5nLW1vZGUuICBU
aGlzIGZpcnN0IHBhcnQgb2YgdGhlIHBhdGNoIGp1c3QgcGF0Y2hlcyBNYWMgV2ViS2l0IDEgdmll
d3MuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWVWaWV3IF9pc1ZlcnRpY2FsRG9jdW1lbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3
IF9pc0ZsaXBwZWREb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3Njcm9sbFRv
RW5kT2ZEb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3BhZ2VJbkJsb2NrUHJv
Z3Jlc3Npb25EaXJlY3Rpb246XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBzY3JvbGxQYWdl
VXA6XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBzY3JvbGxQYWdlRG93bjpdKToKKwogMjAx
MC0xMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0JKHJl
dmlzaW9uIDczNDAyKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTI5LDYgKzUyOSwzNSBAQCAtIChCT09MKV9zY3JvbGxPdmVyZmxvd0lu
RGlyZWN0aW9uOihTY3JvCiAgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xs
T3ZlcmZsb3coZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CiB9CiAKKworLSAoQk9PTClfaXNWZXJ0
aWNhbERvY3VtZW50Cit7CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVd
OworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm4gWUVTOworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gWUVTOworICAgIFJlbmRlck9iamVjdCogcmVuZGVyVmlldyA9IGRvY3Vt
ZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuIFlF
UzsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKTsKK30KKworLSAoQk9PTClfaXNGbGlwcGVkRG9jdW1lbnQKK3sKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAg
IHJldHVybiBOTzsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIE5POworICAgIFJlbmRlck9i
amVjdCogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVy
VmlldykKKyAgICAgICAgcmV0dXJuIE5POworICAgIHJldHVybiByZW5kZXJWaWV3LT5zdHlsZSgp
LT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpOworfQorCiAtIChCT09MKV9zY3JvbGxUb0Jl
Z2lubmluZ09mRG9jdW1lbnQKIHsKICAgICBpZiAoW3NlbGYgX3Njcm9sbE92ZXJmbG93SW5EaXJl
Y3Rpb246U2Nyb2xsVXAgZ3JhbnVsYXJpdHk6U2Nyb2xsQnlEb2N1bWVudF0pCkBAIC01NDgsMTIg
KzU3NywzMSBAQCAtIChCT09MKV9zY3JvbGxUb0VuZE9mRG9jdW1lbnQKICAgICBpZiAoIVtzZWxm
IF9pc1Njcm9sbGFibGVdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgTlNSZWN0IGZyYW1lID0g
W1tbc2VsZiBfc2Nyb2xsVmlld10gZG9jdW1lbnRWaWV3XSBmcmFtZV07Ci0gICAgTlNQb2ludCBw
b2ludCA9IE5TTWFrZVBvaW50KGZyYW1lLm9yaWdpbi54LCBOU01heFkoZnJhbWUpKTsKLSAgICBw
b2ludC54ICs9IFtbc2VsZiBfc2Nyb2xsVmlld10gc2Nyb2xsT3JpZ2luXS54OwotICAgIHBvaW50
LnkgKz0gW1tzZWxmIF9zY3JvbGxWaWV3XSBzY3JvbGxPcmlnaW5dLnk7CisgICAgCisgICAgYm9v
bCBpc1ZlcnRpY2FsID0gW3NlbGYgX2lzVmVydGljYWxEb2N1bWVudF07CisgICAgYm9vbCBpc0Zs
aXBwZWQgPSBbc2VsZiBfaXNGbGlwcGVkRG9jdW1lbnRdOworCisgICAgTlNQb2ludCBwb2ludDsK
KyAgICBpZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICBpZiAoIWlzRmxpcHBlZCkKKyAgICAgICAg
ICAgIHBvaW50ID0gTlNNYWtlUG9pbnQoZnJhbWUub3JpZ2luLngsIE5TTWF4WShmcmFtZSkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBwb2ludCA9IE5TTWFrZVBvaW50KGZyYW1lLm9yaWdp
bi54LCBOU01pblkoZnJhbWUpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWlzRmxpcHBl
ZCkKKyAgICAgICAgICAgIHBvaW50ID0gTlNNYWtlUG9pbnQoTlNNYXhYKGZyYW1lKSwgZnJhbWUu
b3JpZ2luLnkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwb2ludCA9IE5TTWFrZVBvaW50
KE5TTWluWChmcmFtZSksIGZyYW1lLm9yaWdpbi55KTsKKyAgICB9CisgICAgCisgICAgLy8gUmVz
ZXQgdGhlIHBvc2l0aW9uIG9wcG9zaXRlIHRvIHRoZSBibG9jayBwcm9ncmVzc2lvbiBkaXJlY3Rp
b24uCisgICAgaWYgKGlzVmVydGljYWwpCisgICAgICAgIHBvaW50LnggKz0gW1tzZWxmIF9zY3Jv
bGxWaWV3XSBzY3JvbGxPcmlnaW5dLng7CisgICAgZWxzZQorICAgICAgICBwb2ludC55ICs9IFtb
c2VsZiBfc2Nyb2xsVmlld10gc2Nyb2xsT3JpZ2luXS55OwogICAgIHJldHVybiBbW3NlbGYgX2Nv
bnRlbnRWaWV3XSBfc2Nyb2xsVG86JnBvaW50IGFuaW1hdGU6WUVTXTsKIH0KLQorICAgIAogLSAo
dm9pZClzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6KGlkKXNlbmRlcgogewogICAgIGlmIChb
c2VsZiBfc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50XSkKQEAgLTY0Myw2ICs2OTEsMTYgQEAg
LSAoQk9PTClfcGFnZUhvcml6b250YWxseTooQk9PTClsZWZ0CiAgICAgcmV0dXJuIFtzZWxmIF9z
Y3JvbGxIb3Jpem9udGFsbHlCeTpsZWZ0ID8gLWRlbHRhIDogZGVsdGFdOwogfQogCistIChCT09M
KV9wYWdlSW5CbG9ja1Byb2dyZXNzaW9uRGlyZWN0aW9uOihCT09MKWZvcndhcmQKK3sKKyAgICAv
LyBEZXRlcm1pbmUgd2hldGhlciB3ZSdyZSBjYWxsaW5nIF9wYWdlVmVydGljYWxseSBvciBfcGFn
ZUhvcml6b250YWxseS4KKyAgICBCT09MIGlzVmVydGljYWxEb2N1bWVudCA9IFtzZWxmIF9pc1Zl
cnRpY2FsRG9jdW1lbnRdOworICAgIEJPT0wgaXNGbGlwcGVkQmxvY2sgPSBbc2VsZiBfaXNGbGlw
cGVkRG9jdW1lbnRdOworICAgIGlmIChpc1ZlcnRpY2FsRG9jdW1lbnQpCisgICAgICAgIHJldHVy
biBbc2VsZiBfcGFnZVZlcnRpY2FsbHk6aXNGbGlwcGVkQmxvY2sgPyAhZm9yd2FyZCA6IGZvcndh
cmRdOworICAgIHJldHVybiBbc2VsZiBfcGFnZUhvcml6b250YWxseTppc0ZsaXBwZWRCbG9jayA/
ICFmb3J3YXJkIDogZm9yd2FyZF07Cit9CisKIC0gKEJPT0wpX3Njcm9sbExpbmVWZXJ0aWNhbGx5
OihCT09MKXVwCiB7CiAgICAgaWYgKFtzZWxmIF9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOnVw
ID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3duIGdyYW51bGFyaXR5OlNjcm9sbEJ5TGluZV0pCkBAIC02
NjksNyArNzI3LDcgQEAgLSAoQk9PTClfc2Nyb2xsTGluZUhvcml6b250YWxseTooQk9PTClsZQog
CiAtICh2b2lkKXNjcm9sbFBhZ2VVcDooaWQpc2VuZGVyCiB7Ci0gICAgaWYgKCFbc2VsZiBfcGFn
ZVZlcnRpY2FsbHk6WUVTXSkgeworICAgIGlmICghW3NlbGYgX3BhZ2VJbkJsb2NrUHJvZ3Jlc3Np
b25EaXJlY3Rpb246WUVTXSkgewogICAgICAgICAvLyBJZiB3ZSB3ZXJlIGFscmVhZHkgYXQgdGhl
IHRvcCwgdGVsbCB0aGUgbmV4dCByZXNwb25kZXIgdG8gc2Nyb2xsIGlmIGl0IGNhbi4KICAgICAg
ICAgW1tzZWxmIG5leHRSZXNwb25kZXJdIHRyeVRvUGVyZm9ybTpAc2VsZWN0b3Ioc2Nyb2xsUGFn
ZVVwOikgd2l0aDpzZW5kZXJdOwogICAgIH0KQEAgLTY3Nyw3ICs3MzUsNyBAQCAtICh2b2lkKXNj
cm9sbFBhZ2VVcDooaWQpc2VuZGVyCiAKIC0gKHZvaWQpc2Nyb2xsUGFnZURvd246KGlkKXNlbmRl
cgogewotICAgIGlmICghW3NlbGYgX3BhZ2VWZXJ0aWNhbGx5Ok5PXSkgeworICAgIGlmICghW3Nl
bGYgX3BhZ2VJbkJsb2NrUHJvZ3Jlc3Npb25EaXJlY3Rpb246Tk9dKSB7CiAgICAgICAgIC8vIElm
IHdlIHdlcmUgYWxyZWFkeSBhdCB0aGUgYm90dG9tLCB0ZWxsIHRoZSBuZXh0IHJlc3BvbmRlciB0
byBzY3JvbGwgaWYgaXQgY2FuLgogICAgICAgICBbW3NlbGYgbmV4dFJlc3BvbmRlcl0gdHJ5VG9Q
ZXJmb3JtOkBzZWxlY3RvcihzY3JvbGxQYWdlRG93bjopIHdpdGg6c2VuZGVyXTsKICAgICB9Cg==
</data>
<flag name="review"
          id="66994"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76418</attachid>
            <date>2010-12-13 11:55:26 -0800</date>
            <delta_ts>2010-12-13 12:28:29 -0800</delta_ts>
            <desc>Part 2: Patch for WebKit2 views.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>27530</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzkzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTAtMTItMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU0NSwgSG9tZS9FbmQsIFBhZ2VV
cC9QYWdlRHduIHNob3VsZCByZXNwZWN0IHdyaXRpbmctbW9kZS4gCisKKyAgICAgICAgQWRkIGxv
Z2ljYWwgc2Nyb2xsaW5nIHRvIFdlYkNvcmUuICBJdCBiYXNpY2FsbHkgbWlycm9ycyBwaHlzaWNh
bCBzY3JvbGxpbmcgYnV0IHdvcmtzIGluIGFic3RyYWN0IGxvZ2ljYWwKKyAgICAgICAgZGlyZWN0
aW9ucyBhbmQgb25seSBjb252ZXJ0cyB0byBwaHlzaWNhbCB3aGVuIGl0J3MgdGltZSB0byBhdHRl
bXB0IHRoZSBzY3JvbGwuCisgICAgICAgIAorICAgICAgICBBbHNvIGZpeGVkIGJ1Z3MgaW4gc2Ny
b2xsUmVjdXJzaXZlbHkgYW5kIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseSB3aGVyZSBvdmVyZmxv
dyBzZWN0aW9ucyBpbiBjb250YWluaW5nCisgICAgICAgIGZyYW1lcyBnb3Qgc2tpcHBlZCBvdmVy
LgorICAgICAgICAKKyAgICAgICAgTWFkZSB0aGUgcmVzZXR0aW5nIG9mIHRoZSBpbmxpbmUgYXhp
cyBzY3JvbGwgcG9zaXRpb24gb24gSG9tZS9FbmQgTWFjLXNwZWNpZmljIGZvciBvdmVyZmxvdyBz
ZWN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjps
b2dpY2FsU2Nyb2xsT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
Y3JvbGxSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmxvZ2lj
YWxTY3JvbGxSZWN1cnNpdmVseSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmlzVmVydGljYWxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmlzRmxp
cHBlZERvY3VtZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFR5cGVzLmg6CisgICAgICAgIChXZWJDb3JlOjpsb2dpY2FsVG9QaHlzaWNh
bCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3OjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6bG9n
aWNhbFNjcm9sbCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6aXNWZXJ0aWNhbERvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OmlzRmxpcHBlZERvY3VtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bG9naWNhbFNjcm9s
bCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaXN0Qm94Ojpsb2dpY2FsU2Nyb2xsKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpsb2dpY2FsU2Nyb2xsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmg6CisKIDIwMTAtMTItMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtMjE5LDYgKzIxOSw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTRz
Y3JvbGxPdmVyZmwKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTVzZW5kU2Nyb2xsRXZlbnRF
dgogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVdoZWVsRXZlbnRFUk5TXzE4UGxh
dGZvcm1XaGVlbEV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxN3Njcm9sbFJlY3Vy
c2l2ZWx5RU5TXzE1U2Nyb2xsRGlyZWN0aW9uRU5TXzE3U2Nyb2xsR3JhbnVsYXJpdHlFUE5TXzRO
b2RlRQorX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyNGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVs
eUVOU18yMlNjcm9sbExvZ2ljYWxEaXJlY3Rpb25FTlNfMTdTY3JvbGxHcmFudWxhcml0eUVQTlNf
NE5vZGVFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRF
UktOU184SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRWpSS05TXzdJbnRTaXplRQog
X19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMWhhbmRsZU1vdXNlUHJlc3NFdmVudEVSS05TXzE4
UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyM2hhbmRsZU1v
dXNlUmVsZWFzZUV2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkocmV2aXNpb24gNzM0MDIpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDIyICs5OTcsNzEgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnNjcm9sbE92ZXJmbG93KFNjcm9sbAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBF
dmVudEhhbmRsZXI6OmxvZ2ljYWxTY3JvbGxPdmVyZmxvdyhTY3JvbGxMb2dpY2FsRGlyZWN0aW9u
IGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5n
Tm9kZSkKK3sKKyAgICBOb2RlKiBub2RlID0gc3RhcnRpbmdOb2RlOworCisgICAgaWYgKCFub2Rl
KQorICAgICAgICBub2RlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsKKwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgbm9kZSA9IG1fbW91c2VQcmVzc05vZGUuZ2V0KCk7Cisg
ICAgCisgICAgaWYgKG5vZGUpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByID0gbm9kZS0+cmVu
ZGVyZXIoKTsKKyAgICAgICAgaWYgKHIgJiYgIXItPmlzTGlzdEJveCgpICYmIHItPmVuY2xvc2lu
Z0JveCgpLT5sb2dpY2FsU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKSB7CisgICAgICAg
ICAgICBzZXRGcmFtZVdhc1Njcm9sbGVkQnlVc2VyKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBFdmVu
dEhhbmRsZXI6OnNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUpCiB7CiAgICAg
Ly8gVGhlIGxheW91dCBuZWVkcyB0byBiZSB1cCB0byBkYXRlIHRvIGRldGVybWluZSBpZiB3ZSBj
YW4gc2Nyb2xsLiBXZSBtYXkgYmUKICAgICAvLyBoZXJlIGJlY2F1c2Ugb2YgYW4gb25Mb2FkIGV2
ZW50LCBpbiB3aGljaCBjYXNlIHRoZSBmaW5hbCBsYXlvdXQgaGFzbid0IGJlZW4gcGVyZm9ybWVk
IHlldC4KICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKLSAgICBib29sIGhhbmRsZWQgPSBzY3JvbGxPdmVyZmxvdyhkaXJlY3Rp
b24sIGdyYW51bGFyaXR5LCBzdGFydGluZ05vZGUpOwotICAgIGlmICghaGFuZGxlZCkgewotICAg
ICAgICBGcmFtZSogZnJhbWUgPSBtX2ZyYW1lOwotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBG
cmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwotICAgICAgICAgICAgaGFuZGxlZCA9IHZp
ZXcgPyB2aWV3LT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSkgOiBmYWxzZTsKLSAgICAg
ICAgICAgIGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7Ci0gICAgICAgIH0gd2hpbGUg
KCFoYW5kbGVkICYmIGZyYW1lKTsKLSAgICAgfQorICAgIGlmIChzY3JvbGxPdmVyZmxvdyhkaXJl
Y3Rpb24sIGdyYW51bGFyaXR5LCBzdGFydGluZ05vZGUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsg
ICAgCisgICAgRnJhbWUqIGZyYW1lID0gbV9mcmFtZTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBm
cmFtZS0+dmlldygpOworICAgIGlmICh2aWV3ICYmIHZpZXctPnNjcm9sbChkaXJlY3Rpb24sIGdy
YW51bGFyaXR5KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT5wYXJlbnQoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0
aW9uLCBncmFudWxhcml0eSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkpOwor
fQorCitib29sIEV2ZW50SGFuZGxlcjo6bG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwg
Tm9kZSogc3RhcnRpbmdOb2RlKQoreworICAgIC8vIFRoZSBsYXlvdXQgbmVlZHMgdG8gYmUgdXAg
dG8gZGF0ZSB0byBkZXRlcm1pbmUgaWYgd2UgY2FuIHNjcm9sbC4gV2UgbWF5IGJlCisgICAgLy8g
aGVyZSBiZWNhdXNlIG9mIGFuIG9uTG9hZCBldmVudCwgaW4gd2hpY2ggY2FzZSB0aGUgZmluYWwg
bGF5b3V0IGhhc24ndCBiZWVuIHBlcmZvcm1lZCB5ZXQuCisgICAgbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgaWYgKGxvZ2lj
YWxTY3JvbGxPdmVyZmxvdyhkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBzdGFydGluZ05vZGUpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCisgICAgRnJhbWUqIGZyYW1lID0gbV9mcmFtZTsKKyAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIAorICAgIGJvb2wgc2Nyb2xs
ZWQgPSBmYWxzZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gTWFjIGFsc28gcmVzZXRzIHRo
ZSBzY3JvbGwgcG9zaXRpb24gaW4gdGhlIGlubGluZSBkaXJlY3Rpb24uCisgICAgaWYgKGdyYW51
bGFyaXR5ID09IFNjcm9sbEJ5RG9jdW1lbnQgJiYgdmlldyAmJiB2aWV3LT5sb2dpY2FsU2Nyb2xs
KFNjcm9sbElubGluZURpcmVjdGlvbkJhY2t3YXJkLCBTY3JvbGxCeURvY3VtZW50KSkKKyAgICAg
ICAgc2Nyb2xsZWQgPSB0cnVlOworI2VuZGlmCisgICAgaWYgKHZpZXcgJiYgdmlldy0+bG9naWNh
bFNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSkKKyAgICAgICAgc2Nyb2xsZWQgPSB0cnVl
OworICAgIAorICAgIGlmIChzY3JvbGxlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisg
ICAgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKKyAgICBpZiAoIWZyYW1lKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gaGFuZGxlZDsKKyAgICByZXR1cm4gZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5sb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBn
cmFudWxhcml0eSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkpOwogfQogCiBJ
bnRQb2ludCBFdmVudEhhbmRsZXI6OmN1cnJlbnRNb3VzZVBvc2l0aW9uKCkgY29uc3QKSW5kZXg6
IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmgJKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsOCArMTMzLDEwIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgRnJhbWUqIHN1YmZyYW1lRm9yVGFyZ2V0Tm9kZShOb2RlKik7CiAKICAgICBib29sIHNj
cm9sbE92ZXJmbG93KFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0
YXJ0aW5nTm9kZSA9IDApOworICAgIGJvb2wgbG9naWNhbFNjcm9sbE92ZXJmbG93KFNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSAw
KTsKIAogICAgIGJvb2wgc2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gMCk7CisgICAgYm9vbCBsb2dpY2FsU2Ny
b2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHks
IE5vZGUqIHN0YXJ0aW5nTm9kZSA9IDApOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAg
ICBib29sIHNob3VsZERyYWdBdXRvTm9kZShOb2RlKiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsg
Ly8gLXdlYmtpdC11c2VyLWRyYWcgPT0gYXV0bwpAQCAtMTcwLDYgKzE3Miw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsK
ICAgICBib29sIGtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZv
aWQgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lk
IGRlZmF1bHRTY3JvbGxFdmVudEhhbmRsZXIoY29uc3QgS2V5Ym9hcmRFdmVudCYpOwogCiAgICAg
Ym9vbCBoYW5kbGVUZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRl
cmx5aW5nRXZlbnQgPSAwLAogICAgICAgICBib29sIGlzTGluZUJyZWFrID0gZmFsc2UsIGJvb2wg
aXNCYWNrVGFiID0gZmFsc2UpOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDczNDAyKQor
KysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzcsNCAr
MjQzNywzMCBAQCB2b2lkIEZyYW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmdEZWZlCiAgICAg
c19kZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcgPSBwOwogfQogCiti
b29sIEZyYW1lVmlldzo6aXNWZXJ0aWNhbERvY3VtZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZnJhbWUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlclZpZXcgPSBkb2MtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5k
ZXJWaWV3KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5
bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKK30KKworYm9vbCBGcmFtZVZpZXc6Omlz
RmxpcHBlZERvY3VtZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyVmlldyA9IGRvYy0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS0+aXNGbGlwcGVk
QmxvY2tzV3JpdGluZ01vZGUoKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgJKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiArMjUwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGbGlwcGVkRG9jdW1lbnQoKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBGcmFtZVZpZXcoRnJhbWUqKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAko
cmV2aXNpb24gNzM0MDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDYgKzM1LDcyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
U2Nyb2xsUmlnaHQKICAgICB9OwogCisgICAgZW51bSBTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIHsK
KyAgICAgICAgU2Nyb2xsQmxvY2tEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgU2Nyb2xsQmxv
Y2tEaXJlY3Rpb25Gb3J3YXJkLAorICAgICAgICBTY3JvbGxJbmxpbmVEaXJlY3Rpb25CYWNrd2Fy
ZCwKKyAgICAgICAgU2Nyb2xsSW5saW5lRGlyZWN0aW9uRm9yd2FyZAorICAgIH07CisgICAgCisg
ICAgCisgICAgaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlzaWNhbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBib29sIGlzRmxpcHBl
ZCkgCisgICAgeworICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgICAgICBjYXNlIFNj
cm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQ6IHsKKyAgICAgICAgICAgIGlmIChpc1ZlcnRpY2Fs
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0ZsaXBwZWQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBTY3JvbGxVcDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsRG93bjsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0ZsaXBwZWQpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBTY3JvbGxMZWZ0OworICAgICAgICAgICAgICAgIHJldHVy
biBTY3JvbGxSaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgU2Nyb2xsQmxvY2tEaXJlY3Rpb25Gb3J3YXJkOiB7CisgICAgICAg
ICAgICBpZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICAgICAgICAgIGlmICghaXNGbGlwcGVkKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsRG93bjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gU2Nyb2xsVXA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlm
ICghaXNGbGlwcGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsUmlnaHQ7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbExlZnQ7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFNjcm9sbElubGluZURpcmVjdGlv
bkJhY2t3YXJkOiB7CisgICAgICAgICAgICBpZiAoaXNWZXJ0aWNhbCkgeworICAgICAgICAgICAg
ICAgIGlmICghaXNGbGlwcGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsTGVm
dDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsUmlnaHQ7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIGlmICghaXNGbGlwcGVkKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gU2Nyb2xsVXA7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbERvd247Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IFNjcm9sbElubGluZURpcmVjdGlvbkZvcndhcmQ6IHsKKyAgICAgICAgICAgIGlmIChpc1ZlcnRp
Y2FsKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0ZsaXBwZWQpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBTY3JvbGxSaWdodDsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsTGVm
dDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0ZsaXBwZWQp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTY3JvbGxEb3duOworICAgICAgICAgICAgICAg
IHJldHVybiBTY3JvbGxVcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTY3JvbGxV
cDsKKyAgICB9CisKICAgICBlbnVtIFNjcm9sbEdyYW51bGFyaXR5IHsKICAgICAgICAgU2Nyb2xs
QnlMaW5lLAogICAgICAgICBTY3JvbGxCeVBhZ2UsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAJKHJldmlzaW9uIDczNTg2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzcyLDcgKzM3Miw3IEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xs
KFNjcm9sbERpcmVjdGlvbiAKIHsKICAgICBpZiAocGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAg
cmV0dXJuIHBsYXRmb3JtU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwotCisgICAgCiAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBTY3JvbGxVcCB8fCBkaXJlY3Rpb24gPT0gU2Nyb2xsRG93bikg
ewogICAgICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhcikKICAgICAgICAgICAgIHJldHVybiBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CkBAIC0z
ODMsNiArMzgzLDExIEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiAK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU2Nyb2xsVmlldzo6bG9naWNhbFNjcm9sbChT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCit7CisgICAgcmV0dXJuIHNjcm9sbChsb2dpY2FsVG9QaHlzaWNhbChkaXJlY3Rpb24s
IGlzVmVydGljYWxEb2N1bWVudCgpLCBpc0ZsaXBwZWREb2N1bWVudCgpKSwgZ3JhbnVsYXJpdHkp
OworfQorCiB2b2lkIFNjcm9sbFZpZXc6OndpbmRvd1Jlc2l6ZXJSZWN0Q2hhbmdlZCgpCiB7CiAg
ICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNp
b24gNzM0MDIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMTcyLDcgKzE3MiwxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNj
cm9sbHMgYnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KICAgICBib29sIHNjcm9sbChTY3JvbGxE
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KTsKLSAgICAgICAgCisgICAgCisgICAgLy8gQSBs
b2dpY2FsIHNjcm9sbCB0aGF0IGp1c3QgZW5kcyB1cCBjYWxsaW5nIHRoZSBjb3JyZXNwb25kaW5n
IHBoeXNpY2FsIHNjcm9sbCgpIGJhc2VkIG9mZiB0aGUgZG9jdW1lbnQncyB3cml0aW5nIG1vZGUu
CisgICAgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdy
YW51bGFyaXR5KTsKKwogICAgIC8vIFNjcm9sbCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSB2
aWV3IChlaXRoZXIgYmxpdHRpbmcgb3IgaW52YWxpZGF0aW5nIGFzIG5lZWRlZCkuCiAgICAgdm9p
ZCBzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSk7CiAKQEAgLTI4NSw2
ICsyODgsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNvbnN0IElu
dFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbik7CiAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2lu
KCkgeyByZXR1cm4gbV9zY3JvbGxPcmlnaW47IH0KIAorICAgIC8vIFN1YmNsYXNzZWQgYnkgRnJh
bWVWaWV3IHRvIGNoZWNrIHRoZSB3cml0aW5nLW1vZGUgb2YgdGhlIGRvY3VtZW50LgorICAgIHZp
cnR1YWwgYm9vbCBpc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBib29sIGlzRmxpcHBlZERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U2Nyb2xsYmFyPiBtX2hvcml6b250YWxTY3JvbGxi
YXI7CiAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbV92ZXJ0aWNhbFNjcm9sbGJhcjsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gNzM1MzEpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODUsNiArNTg1LDM2IEBAIGJvb2wg
UmVuZGVyQm94OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGQKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK2Jvb2wgUmVuZGVyQm94Ojpsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGll
ciwgTm9kZSoqIHN0b3BOb2RlKQoreworICAgIGJvb2wgc2Nyb2xsZWQgPSBmYWxzZTsKKyAgICAK
KyAgICBSZW5kZXJMYXllciogbCA9IGxheWVyKCk7CisgICAgaWYgKGwpIHsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgICAgIC8vIE9uIE1hYyBvbmx5IHdlIHJlc2V0IHRoZSBpbmxpbmUgZGlyZWN0
aW9uIHBvc2l0aW9uIHdoZW4gZG9pbmcgYSBkb2N1bWVudCBzY3JvbGwgKGUuZy4sIGhpdHRpbmcg
SG9tZS9FbmQpLgorICAgICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkK
KyAgICAgICAgICAgIHNjcm9sbGVkID0gbC0+c2Nyb2xsKGxvZ2ljYWxUb1BoeXNpY2FsKFNjcm9s
bElubGluZURpcmVjdGlvbkJhY2t3YXJkLCBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpLCBzdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSwgU2Nyb2xsQnlEb2N1
bWVudCwgbXVsdGlwbGllcik7CisjZW5kaWYKKyAgICAgICAgaWYgKGwtPnNjcm9sbChsb2dpY2Fs
VG9QaHlzaWNhbChkaXJlY3Rpb24sIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCks
IHN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpLCBncmFudWxhcml0eSwgbXVs
dGlwbGllcikpCisgICAgICAgICAgICBzY3JvbGxlZCA9IHRydWU7CisgICAgICAgIAorICAgICAg
ICBpZiAoc2Nyb2xsZWQpIHsKKyAgICAgICAgICAgIGlmIChzdG9wTm9kZSkKKyAgICAgICAgICAg
ICAgICAqc3RvcE5vZGUgPSBub2RlKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmIChzdG9wTm9kZSAmJiAqc3RvcE5vZGUgJiYgKnN0b3BOb2Rl
ID09IG5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBSZW5kZXJCbG9jayogYiA9
IGNvbnRhaW5pbmdCbG9jaygpOworICAgIGlmIChiICYmICFiLT5pc1JlbmRlclZpZXcoKSkKKyAg
ICAgICAgcmV0dXJuIGItPmxvZ2ljYWxTY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVs
dGlwbGllciwgc3RvcE5vZGUpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBSZW5kZXJC
b3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoZmFsc2UpICYmIChzY3JvbGxIZWlnaHQo
KSAhPSBjbGllbnRIZWlnaHQoKSB8fCBzY3JvbGxXaWR0aCgpICE9IGNsaWVudFdpZHRoKCkpOwpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMiw2ICszMTIsNyBAQCBwdWJs
aWM6CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdDsKICAgICBpbnQg
c2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPmlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgOiB2ZXJ0aWNh
bFNjcm9sbGJhcldpZHRoKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBOb2RlKiogc3Rv
cE5vZGUgPSAwKTsKKyAgICB2aXJ0dWFsIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2Fs
RGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIE5vZGUq
KiBzdG9wTm9kZSA9IDApOwogICAgIGJvb2wgY2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVB
cmVhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xs
ZWQoYm9vbCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGF1dG9zY3JvbGwoKTsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzA1LDE0ICsyMzA1LDkg
QEAgYm9vbCBSZW5kZXJMYXllcjo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbgogewogICAgIGJvb2wg
ZGlkSG9yaXpvbnRhbFNjcm9sbCA9IGZhbHNlOwogICAgIGJvb2wgZGlkVmVydGljYWxTY3JvbGwg
PSBmYWxzZTsKLSAgICAKLSAgICBpZiAobV9oQmFyKSB7Ci0gICAgICAgIC8vIFNwZWNpYWwtY2Fz
ZSBmb3IgdGhlIFNjcm9sbEJ5RG9jdW1lbnQgZ3JhbnVsYXJpdHkuIEEgZG9jdW1lbnQgc2Nyb2xs
Ci0gICAgICAgIC8vIGNhbiBvbmx5IGJlIHVwIG9yIGRvd24gYW5kIGluIGJvdGggY2FzZXMgdGhl
IGhvcml6b250YWwgYmFyIGdvZXMgYWxsCi0gICAgICAgIC8vIHRoZSB3YXkgdG8gdGhlIGxlZnQu
Ci0gICAgICAgIGRpZEhvcml6b250YWxTY3JvbGwgPSBtX2hCYXItPnNjcm9sbCgoZ3JhbnVsYXJp
dHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkgPyBTY3JvbGxMZWZ0IDogZGlyZWN0aW9uLCBncmFudWxh
cml0eSwgbXVsdGlwbGllcik7Ci0gICAgfQogCisgICAgaWYgKG1faEJhcikKKyAgICAgICAgZGlk
SG9yaXpvbnRhbFNjcm9sbCA9IG1faEJhci0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHks
IG11bHRpcGxpZXIpOwogICAgIGlmIChtX3ZCYXIpCiAgICAgICAgIGRpZFZlcnRpY2FsU2Nyb2xs
ID0gbV92QmFyLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7CiAK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCShyZXZpc2lvbiA3MzQwMikKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MTUsNiArNTE1LDExIEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6c2Nyb2xsKFNjcm9sbERpcmVjdGkK
ICAgICByZXR1cm4gbV92QmFyICYmIG1fdkJhci0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHksIG11bHRpcGxpZXIpOwogfQogCitib29sIFJlbmRlckxpc3RCb3g6OmxvZ2ljYWxTY3JvbGwo
U2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyLCBOb2RlKiopCit7CisgICAgcmV0dXJuIG1fdkJhciAm
JiBtX3ZCYXItPnNjcm9sbChsb2dpY2FsVG9QaHlzaWNhbChkaXJlY3Rpb24sIHN0eWxlKCktPmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCksIHN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKCkpLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7Cit9CisKIHZvaWQgUmVuZGVyTGlzdEJv
eDo6dmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCkKIHsKICAgICBFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSk7CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCShyZXZpc2lvbiA3MzQwMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVzdFJlc3VsdCYsIGlu
dCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHkpOwogCiAgICAgdmlydHVhbCBib29sIHNjcm9sbChT
Y3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwg
Tm9kZSoqIHN0b3BOb2RlID0gMCk7CisgICAgdmlydHVhbCBib29sIGxvZ2ljYWxTY3JvbGwoU2Ny
b2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIg
PSAxLCBOb2RlKiogc3RvcE5vZGUgPSAwKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpOwogICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OwpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZp
c2lvbiA3MzQwMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwODQsNiArMTA4NCwxNCBAQCBib29sIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6c2Nyb2xsCiAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpz
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllciwgc3RvcE5vZGUpOwogfQog
Citib29sIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bG9naWNhbFNjcm9sbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGZsb2F0IG11bHRpcGxpZXIsIE5vZGUqKiBzdG9wTm9kZSkKK3sKKyAgICBSZW5kZXJMYXllciog
bGF5ZXIgPSBpbm5lclRleHRFbGVtZW50KCktPnJlbmRlckJveCgpLT5sYXllcigpOworICAgIGlm
IChsYXllciAmJiBsYXllci0+c2Nyb2xsKGxvZ2ljYWxUb1BoeXNpY2FsKGRpcmVjdGlvbiwgc3R5
bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSwgc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSksIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVyKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpsb2dpY2FsU2Nyb2xsKGRpcmVjdGlvbiwg
Z3JhbnVsYXJpdHksIG11bHRpcGxpZXIsIHN0b3BOb2RlKTsKK30KKwogUGFzc1JlZlB0cjxTY3Jv
bGxiYXI+IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9s
bGJhckNsaWVudCogY2xpZW50LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCiB7CiAgICAgUmVmUHRyPFNjcm9sbGJhcj4g
d2lkZ2V0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmgJKHJldmlzaW9uIDczNDAyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTY3JvbGxUb3AoaW50KTsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBOb2Rl
Kiogc3RvcE5vZGUgPSAwKTsKKyAgICB2aXJ0dWFsIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEs
IE5vZGUqKiBzdG9wTm9kZSA9IDApOwogCiAgICAgaW50IHRleHRCbG9ja1dpZHRoKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBmbG9hdCBnZXRBdmdDaGFyV2lkdGgoQXRvbWljU3RyaW5nIGZhbWlseSk7
CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxv
ZwkocmV2aXNpb24gNzM5MzgpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIwIEBACisyMDEwLTEyLTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NDUsIEhvbWUvRW5kLCBQYWdl
VXAvUGFnZUR3biBzaG91bGQgcmVzcGVjdCB3cml0aW5nLW1vZGUuICBVc2UKKyAgICAgICAgbG9n
aWNhbCBzY3JvbGxpbmcgaW5zdGVhZCBvZiBwaHlzaWNhbCBzY3JvbGxpbmcgZm9yIHRob3NlIGtl
eXMgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bG9naWNhbFNjcm9sbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmxvZ2ljYWxTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVs
dEJlaGF2aW9yRm9yS2V5RXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93aW4v
V2ViUGFnZVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmxvZ2ljYWxTY3JvbGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQpOgor
CiAyMDEwLTEyLTEzICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiA3MzQwMikKKysrIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYsNiArMTA2LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzY3JvbGwoUGFnZSogcGFnZSwg
U2MKICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsK
IH0KIAorc3RhdGljIGlubGluZSB2b2lkIGxvZ2ljYWxTY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xs
TG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQoreworICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCktPmxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KTsKK30KKwogYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5
RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsKICAgICBpZiAo
a2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OktleURvd24pCkBAIC0xMjIsMjMgKzEy
NywyMSBAQCBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVktfU1BBQ0U6CiAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNo
aWZ0S2V5KCkpCi0gICAgICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxVcCwgU2Ny
b2xsQnlQYWdlKTsKKyAgICAgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgpLCBTY3Jv
bGxCbG9ja0RpcmVjdGlvbkJhY2t3YXJkLCBTY3JvbGxCeVBhZ2UpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2Up
OworICAgICAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbEJsb2NrRGly
ZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBW
S19QUklPUjoKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Nyb2xsVXAsIFNjcm9sbEJ5
UGFnZSk7CisgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxCbG9ja0Rp
cmVjdGlvbkJhY2t3YXJkLCBTY3JvbGxCeVBhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFZLX05FWFQ6Ci0gICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbERvd24sIFNjcm9s
bEJ5UGFnZSk7CisgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxCbG9j
a0RpcmVjdGlvbkZvcndhcmQsIFNjcm9sbEJ5UGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVktfSE9NRToKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Nyb2xsVXAsIFNjcm9s
bEJ5RG9jdW1lbnQpOwotICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxMZWZ0LCBT
Y3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNj
cm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFZLX0VORDoKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Ny
b2xsRG93biwgU2Nyb2xsQnlEb2N1bWVudCk7Ci0gICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCks
IFNjcm9sbExlZnQsIFNjcm9sbEJ5RG9jdW1lbnQpOworICAgICAgICBsb2dpY2FsU2Nyb2xsKG1f
cGFnZS5nZXQoKSwgU2Nyb2xsQmxvY2tEaXJlY3Rpb25Gb3J3YXJkLCBTY3JvbGxCeURvY3VtZW50
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWS19VUDoKICAgICAgICAgaWYgKGtleWJvYXJk
RXZlbnQuc2hpZnRLZXkoKSkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dl
YlBhZ2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQv
V2ViUGFnZVF0LmNwcAkocmV2aXNpb24gNzM0MDIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9XZWJQYWdlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNiArMjEzLDExIEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBzY3JvbGwoUGFnZSogcGFnZSwgU2MKICAgICBwYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zY3Jv
bGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKIH0KIAorc3RhdGljIGlubGlu
ZSB2b2lkIGxvZ2ljYWxTY3JvbGwoUGFnZSogcGFnZSwgU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBk
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmxv
Z2ljYWxTY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KKwogYm9v
bCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5
Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBl
KCkgIT0gV2ViRXZlbnQ6OktleURvd24gJiYga2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZl
bnQ6OlJhd0tleURvd24pCkBAIC0yMjYsNyArMjMxLDcgQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3Jt
RGVmYXVsdEJlaGF2aW9yRm9ySwogICAgICAgICAgICAgbV9wYWdlLT5nb0JhY2soKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBWS19TUEFDRToKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQo
KSwga2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3duLCBTY3Jv
bGxCeVBhZ2UpOworICAgICAgICBsb2dpY2FsU2Nyb2xsKG1fcGFnZS5nZXQoKSwga2V5Ym9hcmRF
dmVudC5zaGlmdEtleSgpID8gU2Nyb2xsQmxvY2tEaXJlY3Rpb25CYWNrd2FyZCA6IFNjcm9sbEJs
b2NrRGlyZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBWS19MRUZUOgogICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxMZWZ0LCBT
Y3JvbGxCeUxpbmUpOwpAQCAtMjQxLDE2ICsyNDYsMTYgQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3Jt
RGVmYXVsdEJlaGF2aW9yRm9ySwogICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxE
b3duLCBTY3JvbGxCeUxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX0hPTUU6Ci0g
ICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbFVwLCBTY3JvbGxCeURvY3VtZW50KTsK
KyAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbEJsb2NrRGlyZWN0aW9u
QmFja3dhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZL
X0VORDoKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlE
b2N1bWVudCk7CisgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxCbG9j
a0RpcmVjdGlvbkZvcndhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFZLX1BSSU9SOgotICAgICAgICBzY3JvbGwobV9wYWdlLmdldCgpLCBTY3JvbGxVcCwg
U2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9s
bEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5UGFnZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVktfTkVYVDoKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Nyb2xsRG93
biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNj
cm9sbEJsb2NrRGlyZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAkocmV2aXNpb24gNzM0MDIpCisr
KyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4OCw2ICsxODgsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHNjcm9sbChQYWdl
KiBwYWdlLCBTYwogICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVs
YXJpdHkpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgbG9naWNhbFNjcm9sbChQYWdlKiBwYWdl
LCBTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCit7CisgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5G
cmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+bG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlv
biwgZ3JhbnVsYXJpdHkpOworfQorCiBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZp
b3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogewog
ICAgIGlmIChrZXlib2FyZEV2ZW50LnR5cGUoKSAhPSBXZWJFdmVudDo6S2V5RG93biAmJiBrZXli
b2FyZEV2ZW50LnR5cGUoKSAhPSBXZWJFdmVudDo6UmF3S2V5RG93bikKQEAgLTIwMCw2ICsyMDUs
OSBAQCBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVktfU1BBQ0U6CisgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgpLCBrZXlib2Fy
ZEV2ZW50LnNoaWZ0S2V5KCkgPyBTY3JvbGxCbG9ja0RpcmVjdGlvbkJhY2t3YXJkIDogU2Nyb2xs
QmxvY2tEaXJlY3Rpb25Gb3J3YXJkLCBTY3JvbGxCeVBhZ2UpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIFZLX0xFRlQ6CiAgICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbExlZnQs
IFNjcm9sbEJ5TGluZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjEzLDE2ICsyMjEsMTYgQEAgYm9v
bCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgICAgICBzY3JvbGwobV9w
YWdlLmdldCgpLCBTY3JvbGxEb3duLCBTY3JvbGxCeUxpbmUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFZLX0hPTUU6Ci0gICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCksIFNjcm9sbFVwLCBT
Y3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAgbG9naWNhbFNjcm9sbChtX3BhZ2UuZ2V0KCksIFNj
cm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFZLX0VORDoKLSAgICAgICAgc2Nyb2xsKG1fcGFnZS5nZXQoKSwgU2Ny
b2xsRG93biwgU2Nyb2xsQnlEb2N1bWVudCk7CisgICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdl
LmdldCgpLCBTY3JvbGxCbG9ja0RpcmVjdGlvbkZvcndhcmQsIFNjcm9sbEJ5RG9jdW1lbnQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX1BSSU9SOgotICAgICAgICBzY3JvbGwobV9wYWdl
LmdldCgpLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgbG9naWNhbFNjcm9sbCht
X3BhZ2UuZ2V0KCksIFNjcm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQsIFNjcm9sbEJ5UGFnZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVktfTkVYVDoKLSAgICAgICAgc2Nyb2xsKG1fcGFn
ZS5nZXQoKSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgbG9naWNhbFNjcm9s
bChtX3BhZ2UuZ2V0KCksIFNjcm9sbEJsb2NrRGlyZWN0aW9uRm9yd2FyZCwgU2Nyb2xsQnlQYWdl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwo=
</data>
<flag name="review"
          id="67360"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76420</attachid>
            <date>2010-12-13 12:28:29 -0800</date>
            <delta_ts>2010-12-13 12:29:09 -0800</delta_ts>
            <desc>Cleanup on Windows.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2720</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3Mzk0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTAtMTItMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
c3VyZSB0aGUgZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyIGRvZXMgbG9naWNhbCBzY3JvbGxpbmcu
CisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcik6CisKIDIwMTAtMTItMTMgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MzkyMy4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZp
c2lvbiA3Mzk0MSkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzE5LDggKzI3MTksOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFNwYWNl
RXZlbnRIYW5kCiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7Ci0gICAgU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IGV2ZW50LT5zaGlmdEtleSgpID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3duOwotICAgIGlmIChzY3Jv
bGxPdmVyZmxvdyhkaXJlY3Rpb24sIFNjcm9sbEJ5UGFnZSkpIHsKKyAgICBTY3JvbGxMb2dpY2Fs
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGV2ZW50LT5zaGlmdEtleSgpID8gU2Nyb2xsQmxvY2tEaXJl
Y3Rpb25CYWNrd2FyZCA6IFNjcm9sbEJsb2NrRGlyZWN0aW9uRm9yd2FyZDsKKyAgICBpZiAobG9n
aWNhbFNjcm9sbE92ZXJmbG93KGRpcmVjdGlvbiwgU2Nyb2xsQnlQYWdlKSkgewogICAgICAgICBl
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3
MjksNyArMjcyOSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0U3BhY2VFdmVudEhhbmQK
ICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh2aWV3LT5zY3JvbGwo
ZGlyZWN0aW9uLCBTY3JvbGxCeVBhZ2UpKQorICAgIGlmICh2aWV3LT5sb2dpY2FsU2Nyb2xsKGRp
cmVjdGlvbiwgU2Nyb2xsQnlQYWdlKSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7CiB9CiAKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3Mzk0MikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTItMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSB0aGUgc3BhY2UgYmVoYXZpb3IgdGhhdCBJIGFkZGVkLiAgSXQncyBjb3ZlcmVk
IGluIEV2ZW50SGFuZGxlciBpbiBXZWJDb3JlCisgICAgICAgIGFscmVhZHkgZm9yIFdpbmRvd3Mu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQp
OgorCiAyMDEwLTEyLTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd2luL1dlYlBhZ2VXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAkocmV2aXNpb24gNzM5NDEpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NSw5ICsyMDUsNiBAQCBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgVktfU1BBQ0U6Ci0gICAgICAgIGxvZ2ljYWxTY3JvbGwobV9wYWdlLmdldCgp
LCBrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkgPyBTY3JvbGxCbG9ja0RpcmVjdGlvbkJhY2t3YXJk
IDogU2Nyb2xsQmxvY2tEaXJlY3Rpb25Gb3J3YXJkLCBTY3JvbGxCeVBhZ2UpOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIFZLX0xFRlQ6CiAgICAgICAgIHNjcm9sbChtX3BhZ2UuZ2V0KCksIFNj
cm9sbExlZnQsIFNjcm9sbEJ5TGluZSk7CiAgICAgICAgIGJyZWFrOwo=
</data>
<flag name="review"
          id="67362"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>