<?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>58102</bug_id>
          
          <creation_ts>2011-04-07 17:41:31 -0700</creation_ts>
          <short_desc>REGRESSION (WebKit2): AppKit thinks that web views don&apos;t support DocumentAccess</short_desc>
          <delta_ts>2011-04-08 12:39:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>381880</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-07 17:41:31 -0700</bug_when>
    <thetext>This works in WebKit1 because it implements textStorage method, but a better way to convince AppKit would be to switch to NSTextInputClient protocol. In the future, this could let us do performance optimizations too.

Patch forthcoming.

&lt;rdar://problem/9223246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381884</commentid>
    <comment_count>1</comment_count>
      <attachid>88742</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-07 17:45:02 -0700</bug_when>
    <thetext>Created attachment 88742
proposed fix

We could do this in WebHTMLView, but it has a huge baggage of hackish workarounds that changing the behavior by switching to a new protocol is super scary. The proposed alternative of having the view classes diverge is slightly less scary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381900</commentid>
    <comment_count>2</comment_count>
      <attachid>88742</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-07 18:01:21 -0700</bug_when>
    <thetext>Comment on attachment 88742
proposed fix

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

The overall implementation looks good to me.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1061
&gt;          // FIXME: We ignore most attributes from the string, so for example inserting from Character Palette loses font and glyph variation data.

Is this comment still applicable?

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1324
&gt;          // FIXME: We ignore most attributes from the string, so an input method cannot specify e.g. a font or a glyph variation.

Same as above. Is this comment still applicable?

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1399
&gt; +

unnecessary change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381943</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-07 19:41:21 -0700</bug_when>
    <thetext>&gt; Is this comment still applicable?

Yes, we ignore most attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382029</commentid>
    <comment_count>4</comment_count>
      <attachid>88742</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-07 23:42:24 -0700</bug_when>
    <thetext>Comment on attachment 88742
proposed fix

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1050
&gt; +        LOG(TextInput, &quot;insertText:\&quot;%@\&quot; replacementRange:(%u, %u)&quot;, isAttributedString ? [string string] : string, replacementRange.location, replacementRange.length);

%u is not the appropriate formatting specifier for NSUInteger; it’s right for unsigned and wrong for NSUInteger. The simplest workaround is to cast to unsigned.

&gt;&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1061

&gt; 
&gt; Is this comment still applicable?

I believe it is.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1348
&gt; -- (NSAttributedString *)attributedSubstringFromRange:(NSRange)nsRange
&gt; +- (NSAttributedString *)attributedSubstringForProposedRange:(NSRange)nsRange actualRange:(NSRangePointer)actualRange

The name nsRange is not good for the first argument. Leaving it alone makes the patch smaller, but other than that I see no reason to leave it with this name.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1383
&gt; +- (NSRect)firstRectForCharacterRange:(NSRange)theRange actualRange:(NSRangePointer)actualRange

The name theRange is not good for the first argument. Leaving it alone makes the patch smaller, but other than that I see no reason to leave it with this name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382439</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-08 12:01:20 -0700</bug_when>
    <thetext>&gt; %u is not the appropriate formatting specifier for NSUInteger; it’s right for unsigned and wrong for NSUInteger. The simplest workaround is to cast to unsigned.

This is what we do elsewhere in WebHTMLView and WKView, I would prefer to not introduce an inconsistency, and to not make global changes in this patch.

&gt; The name nsRange is not good for the first argument. Leaving it alone makes the patch smaller, but other than that I see no reason to leave it with this name.
&lt;...&gt;
&gt; The name theRange is not good for the first argument. Leaving it alone makes the patch smaller, but other than that I see no reason to leave it with this name.

I&apos;m not sure what name would be better. AppKit uses &quot;aRange&quot; for these arguments, which is no more speaking than our names, and doesn&apos;t fit our common style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382460</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-08 12:39:44 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/83326&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88742</attachid>
            <date>2011-04-07 17:45:02 -0700</date>
            <delta_ts>2011-04-07 23:42:24 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>NSTextInputClient.txt</filename>
            <type>text/plain</type>
            <size>8572</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzMjMyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMDcgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2ViS2l0Mik6IEFwcEtpdCB0aGlua3Mg
dGhhdCB3ZWIgdmlld3MgZG9uJ3Qgc3VwcG9ydCBEb2N1bWVudEFjY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMDIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzkyMjMyNDY+CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dL
VmlldyBkb0NvbW1hbmRCeVNlbGVjdG9yOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaW5zZXJ0VGV4
dDpyZXBsYWNlbWVudFJhbmdlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdmFsaWRBdHRyaWJ1dGVz
Rm9yTWFya2VkVGV4dF0pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0TWFya2VkVGV4dDpzZWxlY3Rl
ZFJhbmdlOnJlcGxhY2VtZW50UmFuZ2U6XSk6CisgICAgICAgICgtW1dLVmlldyBhdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTphY3R1YWxSYW5nZTpdKToKKyAgICAgICAgKC1bV0tW
aWV3IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOmFjdHVhbFJhbmdlOl0pOgorICAgICAgICBT
d2l0Y2ggdG8gTlNUZXh0SW5wdXRDbGllbnQsIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyBh
bmQgb3B0aW9uYWwgZmVhdHVyZXMgZm9yIG5vdy4KKwogMjAxMS0wNC0wNyAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIFdlaW5z
dGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5oCShy
ZXZpc2lvbiA4MzIwMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiBAY2xhc3MgV0tWaWV3RGF0YTsK
IAogV0tfRVhQT1JUCi1AaW50ZXJmYWNlIFdLVmlldyA6IE5TVmlldyA8TlNUZXh0SW5wdXQ+IHsK
K0BpbnRlcmZhY2UgV0tWaWV3IDogTlNWaWV3IDxOU1RleHRJbnB1dENsaWVudD4gewogICAgIFdL
Vmlld0RhdGEgKl9kYXRhOwogICAgIHVuc2lnbmVkIF9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRD
b3VudDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0JKHJldmlzaW9uIDgzMjA0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsNiBAQCAtICh2b2lkKV9zZXRT
aG93T3BhcXVlR3Jvd0JveEZvck93bmVyOihpCiAtIChCT09MKV91cGRhdGVHcm93Qm94Rm9yV2lu
ZG93RnJhbWVDaGFuZ2U7CiBAZW5kCiAKLS8vIERlY2xhcmUgdGhpcyBhdHRyaWJ1dGUgbmFtZSBi
ZWNhdXNlIEFwcEtpdCBleHBvcnRzIGl0IGJ1dCBkb2VzIG5vdCBtYWtlIGl0IGF2YWlsYWJsZSBp
biBBUEkgb3IgU1BJIGhlYWRlcnMuCi0vLyBGSVhNRTogV2Ugd291bGRuJ3QgbmVlZCB0aGlzIGlm
IHdlIGltcGxlbWVudGVkIHRoZSBOU1RleHRJbnB1dENsaWVudCBwcm90b2NvbCBpbnN0ZWFkIG9m
IHRoZSBkZXByZWNhdGVkIE5TVGV4dElucHV0LgotZXh0ZXJuICJDIiBOU1N0cmluZyAqTlNUZXh0
SW5wdXRSZXBsYWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZTsKLQogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMDMzLDcgKzEwMjksNyBAQCAt
ICh2b2lkKWRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvCiAgICAgaWYgKHBhcmFtZXRl
cnMpCiAgICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOwogCi0gICAgLy8g
QXMgaW4gaW5zZXJ0VGV4dDosIHdlIGFzc3VtZSB0aGF0IHRoZSBjYWxsIGNvbWVzIGZyb20gYW4g
aW5wdXQgbWV0aG9kIGlmIHRoZXJlIGlzIG1hcmtlZCB0ZXh0LgorICAgIC8vIEFzIGluIGluc2Vy
dFRleHQ6cmVwbGFjZW1lbnRSYW5nZTosIHdlIGFzc3VtZSB0aGF0IHRoZSBjYWxsIGNvbWVzIGZy
b20gYW4gaW5wdXQgbWV0aG9kIGlmIHRoZXJlIGlzIG1hcmtlZCB0ZXh0LgogICAgIGJvb2wgaXNG
cm9tSW5wdXRNZXRob2QgPSBwYXJhbWV0ZXJzICYmIHBhcmFtZXRlcnMtPmNhY2hlZFRleHRJbnB1
dFN0YXRlLmhhc01hcmtlZFRleHQ7CiAKICAgICBpZiAocGFyYW1ldGVycyAmJiAhaXNGcm9tSW5w
dXRNZXRob2QpCkBAIC0xMDQ1LDMwICsxMDQxLDI1IEBAIC0gKHZvaWQpZG9Db21tYW5kQnlTZWxl
Y3RvcjooU0VMKXNlbGVjdG8KICAgICB9CiB9CiAKLS0gKHZvaWQpaW5zZXJ0VGV4dDooaWQpc3Ry
aW5nCistICh2b2lkKWluc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJhbmdlOihOU1Jh
bmdlKXJlcGxhY2VtZW50UmFuZ2UKIHsKICAgICBCT09MIGlzQXR0cmlidXRlZFN0cmluZyA9IFtz
dHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV07CiAgICAgQVNT
RVJUKGlzQXR0cmlidXRlZFN0cmluZyB8fCBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5n
IGNsYXNzXV0pOwogCi0gICAgTE9HKFRleHRJbnB1dCwgImluc2VydFRleHQ6XCIlQFwiIiwgaXNB
dHRyaWJ1dGVkU3RyaW5nID8gW3N0cmluZyBzdHJpbmddIDogc3RyaW5nKTsKKyAgICBpZiAocmVw
bGFjZW1lbnRSYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kKQorICAgICAgICBMT0coVGV4dElu
cHV0LCAiaW5zZXJ0VGV4dDpcIiVAXCIgcmVwbGFjZW1lbnRSYW5nZTooJXUsICV1KSIsIGlzQXR0
cmlidXRlZFN0cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZywgcmVwbGFjZW1lbnRSYW5n
ZS5sb2NhdGlvbiwgcmVwbGFjZW1lbnRSYW5nZS5sZW5ndGgpOworICAgIGVsc2UKKyAgICAgICAg
TE9HKFRleHRJbnB1dCwgImluc2VydFRleHQ6XCIlQFwiIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8g
W3N0cmluZyBzdHJpbmddIDogc3RyaW5nKTsKICAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQ
YXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzOwogICAgIGlmIChwYXJhbWV0ZXJzKQogICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5
SU0gPSBmYWxzZTsKIAogICAgIE5TU3RyaW5nICp0ZXh0OwotICAgIE5TUmFuZ2UgcmVwbGFjZW1l
bnRSYW5nZSA9IHsgTlNOb3RGb3VuZCwgMCB9OwogICAgIGJvb2wgaXNGcm9tSW5wdXRNZXRob2Qg
PSBwYXJhbWV0ZXJzICYmIHBhcmFtZXRlcnMtPmNhY2hlZFRleHRJbnB1dFN0YXRlLmhhc01hcmtl
ZFRleHQ7CiAKICAgICBpZiAoaXNBdHRyaWJ1dGVkU3RyaW5nKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0cmluZywgc28gZm9yIGV4YW1w
bGUgaW5zZXJ0aW5nIGZyb20gQ2hhcmFjdGVyIFBhbGV0dGUgbG9zZXMgZm9udCBhbmQgZ2x5cGgg
dmFyaWF0aW9uIGRhdGEuCi0gICAgICAgIC8vIEl0IGRvZXMgbm90IGxvb2sgbGlrZSBhbnkgaW5w
dXQgbWV0aG9kcyBldmVyIHVzZSBpbnNlcnRUZXh0OiB3aXRoIGF0dHJpYnV0ZXMgb3RoZXIgdGhh
biBOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VBdHRyaWJ1dGVOYW1lLgogICAgICAgICB0ZXh0
ID0gW3N0cmluZyBzdHJpbmddOwotICAgICAgICBOU1N0cmluZyAqcmFuZ2VTdHJpbmcgPSBbc3Ry
aW5nIGF0dHJpYnV0ZTpOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VBdHRyaWJ1dGVOYW1lIGF0
SW5kZXg6MCBsb25nZXN0RWZmZWN0aXZlUmFuZ2U6MCBpblJhbmdlOk5TTWFrZVJhbmdlKDAsIFt0
ZXh0IGxlbmd0aF0pXTsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIlJlcGxhY2VtZW50UmFuZ2U6
ICVAIiwgcmFuZ2VTdHJpbmcpOwotICAgICAgICBpZiAocmFuZ2VTdHJpbmcpIHsKLSAgICAgICAg
ICAgIHJlcGxhY2VtZW50UmFuZ2UgPSBOU1JhbmdlRnJvbVN0cmluZyhyYW5nZVN0cmluZyk7Ci0g
ICAgICAgICAgICBpc0Zyb21JbnB1dE1ldGhvZCA9IHRydWU7Ci0gICAgICAgIH0KICAgICB9IGVs
c2UKICAgICAgICAgdGV4dCA9IHN0cmluZzsKIApAQCAtMTA3OSw2ICsxMDcwLDcgQEAgLSAodm9p
ZClpbnNlcnRUZXh0OihpZClzdHJpbmcKICAgICAvLyAtIElmIGl0J3Mgc2VudCBvdXRzaWRlIG9m
IGtleWJvYXJkIGV2ZW50IHByb2Nlc3NpbmcgKGUuZy4gZnJvbSBDaGFyYWN0ZXIgVmlld2VyLCBv
ciB3aGVuIGNvbmZpcm1pbmcgYW4gaW5saW5lIGlucHV0IGFyZWEgd2l0aCBhIG1vdXNlKSwKICAg
ICAvLyB0aGVuIHdlIGFsc28gZXhlY3V0ZSBpdCBpbW1lZGlhdGVseSwgYXMgdGhlcmUgd2lsbCBi
ZSBubyBvdGhlciBjaGFuY2UuCiAgICAgaWYgKHBhcmFtZXRlcnMgJiYgIWlzRnJvbUlucHV0TWV0
aG9kKSB7CisgICAgICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90
Rm91bmQpOwogICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKEtleXByZXNzQ29t
bWFuZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
Mjc2LDcgKzEyNjgsNyBAQCAtIChOU0FycmF5ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4
CiAgICAgaWYgKCF2YWxpZEF0dHJpYnV0ZXMpIHsKICAgICAgICAgdmFsaWRBdHRyaWJ1dGVzID0g
W1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOU1VuZGVybGluZVN0eWxlQXR0cmlidXRlTmFtZSwgTlNVbmRlcmxpbmVDb2xvckF0dHJp
YnV0ZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBOU01hcmtlZENsYXVzZVNlZ21l
bnRBdHRyaWJ1dGVOYW1lLCBOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VBdHRyaWJ1dGVOYW1l
LCBuaWxdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNNYXJrZWRDbGF1c2VTZWdtZW50
QXR0cmlidXRlTmFtZSwgbmlsXTsKICAgICAgICAgLy8gTlNUZXh0IGFsc28gc3VwcG9ydHMgdGhl
IGZvbGxvd2luZyBhdHRyaWJ1dGVzLCBidXQgaXQncwogICAgICAgICAvLyBoYXJkIHRvIHRlbGwg
d2hpY2ggYXJlIHJlYWxseSByZXF1aXJlZCBmb3IgdGV4dCBpbnB1dCB0bwogICAgICAgICAvLyB3
b3JrIHdlbGw7IEkgaGF2ZSBub3Qgc2VlbiBhbnkgaW5wdXQgbWV0aG9kIG1ha2UgdXNlIG9mIHRo
ZW0geWV0LgpAQCAtMTMwOCw3ICsxMzAwLDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGlu
ZXMoTlNBdHRyaWJ1dAogICAgIH0KIH0KIAotLSAodm9pZClzZXRNYXJrZWRUZXh0OihpZClzdHJp
bmcgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSluZXdTZWxSYW5nZQorLSAodm9pZClzZXRNYXJrZWRU
ZXh0OihpZClzdHJpbmcgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSluZXdTZWxSYW5nZSByZXBsYWNl
bWVudFJhbmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UKIHsKICAgICBbc2VsZiBfZXhlY3V0
ZVNhdmVkS2V5cHJlc3NDb21tYW5kc107CiAKQEAgLTEzMjcsMTggKzEzMTksMTAgQEAgLSAodm9p
ZClzZXRNYXJrZWRUZXh0OihpZClzdHJpbmcgc2VsZWN0ZQogICAgIAogICAgIFZlY3RvcjxDb21w
b3NpdGlvblVuZGVybGluZT4gdW5kZXJsaW5lczsKICAgICBOU1N0cmluZyAqdGV4dDsKLSAgICBO
U1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UgPSB7IE5TTm90Rm91bmQsIDAgfTsKIAogICAgIGlmIChp
c0F0dHJpYnV0ZWRTdHJpbmcpIHsKICAgICAgICAgLy8gRklYTUU6IFdlIGlnbm9yZSBtb3N0IGF0
dHJpYnV0ZXMgZnJvbSB0aGUgc3RyaW5nLCBzbyBhbiBpbnB1dCBtZXRob2QgY2Fubm90IHNwZWNp
ZnkgZS5nLiBhIGZvbnQgb3IgYSBnbHlwaCB2YXJpYXRpb24uCiAgICAgICAgIHRleHQgPSBbc3Ry
aW5nIHN0cmluZ107Ci0gICAgICAgIE5TU3RyaW5nICpyYW5nZVN0cmluZyA9IFtzdHJpbmcgYXR0
cmlidXRlOk5TVGV4dElucHV0UmVwbGFjZW1lbnRSYW5nZUF0dHJpYnV0ZU5hbWUgYXRJbmRleDow
IGxvbmdlc3RFZmZlY3RpdmVSYW5nZTowIGluUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3RleHQgbGVu
Z3RoXSldOwotICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIFJlcGxhY2VtZW50UmFuZ2U6ICVA
IiwgcmFuZ2VTdHJpbmcpOwotICAgICAgICAvLyBUaGUgQXBwS2l0IGFkZHMgYSAnc2VjcmV0JyBw
cm9wZXJ0eSB0byB0aGUgc3RyaW5nIHRoYXQgY29udGFpbnMgdGhlIHJlcGxhY2VtZW50IHJhbmdl
LgotICAgICAgICAvLyBUaGUgcmVwbGFjZW1lbnQgcmFuZ2UgaXMgdGhlIHJhbmdlIG9mIHRoZSB0
aGUgdGV4dCB0aGF0IHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZSBuZXcgc3RyaW5nLgotICAg
ICAgICBpZiAocmFuZ2VTdHJpbmcpCi0gICAgICAgICAgICByZXBsYWNlbWVudFJhbmdlID0gTlNS
YW5nZUZyb21TdHJpbmcocmFuZ2VTdHJpbmcpOwotCiAgICAgICAgIGV4dHJhY3RVbmRlcmxpbmVz
KHN0cmluZywgdW5kZXJsaW5lcyk7CiAgICAgfSBlbHNlCiAgICAgICAgIHRleHQgPSBzdHJpbmc7
CkBAIC0xMzYxLDcgKzEzNDUsNyBAQCAtIChOU1JhbmdlKW1hcmtlZFJhbmdlCiAgICAgcmV0dXJu
IE5TTWFrZVJhbmdlKGxvY2F0aW9uLCBsZW5ndGgpOwogfQogCi0tIChOU0F0dHJpYnV0ZWRTdHJp
bmcgKilhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOihOU1JhbmdlKW5zUmFuZ2UKKy0gKE5T
QXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlOihO
U1JhbmdlKW5zUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKWFjdHVhbFJhbmdlCiB7
CiAgICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwogCkBAIC0xMzc0LDYg
KzEzNTgsOSBAQCAtIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Vic3RyCiAgICAg
QXR0cmlidXRlZFN0cmluZyByZXN1bHQ7CiAgICAgX2RhdGEtPl9wYWdlLT5nZXRBdHRyaWJ1dGVk
U3Vic3RyaW5nRnJvbVJhbmdlKG5zUmFuZ2UubG9jYXRpb24sIE5TTWF4UmFuZ2UobnNSYW5nZSks
IHJlc3VsdCk7CiAKKyAgICBpZiAoYWN0dWFsUmFuZ2UpCisgICAgICAgICphY3R1YWxSYW5nZSA9
IG5zUmFuZ2U7CisKICAgICBMT0coVGV4dElucHV0LCAiYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21S
YW5nZTooJXUsICV1KSAtPiBcIiVAXCIiLCBuc1JhbmdlLmxvY2F0aW9uLCBuc1JhbmdlLmxlbmd0
aCwgW3Jlc3VsdC5zdHJpbmcuZ2V0KCkgc3RyaW5nXSk7CiAgICAgcmV0dXJuIFtbcmVzdWx0LnN0
cmluZy5nZXQoKSByZXRhaW5dIGF1dG9yZWxlYXNlXTsKIH0KQEAgLTEzOTMsNyArMTM4MCw3IEBA
IC0gKE5TVUludGVnZXIpY2hhcmFjdGVySW5kZXhGb3JQb2ludDooTlMKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi0tIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5TUmFuZ2Up
dGhlUmFuZ2UKKy0gKE5TUmVjdClmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZTooTlNSYW5nZSl0
aGVSYW5nZSBhY3R1YWxSYW5nZTooTlNSYW5nZVBvaW50ZXIpYWN0dWFsUmFuZ2UKIHsgCiAgICAg
W3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwogCkBAIC0xNDA5LDcgKzEzOTYs
MTAgQEAgLSAoTlNSZWN0KWZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOihOUwogICAgIE5TV2lu
ZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3ddOwogICAgIGlmICh3aW5kb3cpCiAgICAgICAgIHJl
c3VsdFJlY3Qub3JpZ2luID0gW3dpbmRvdyBjb252ZXJ0QmFzZVRvU2NyZWVuOnJlc3VsdFJlY3Qu
b3JpZ2luXTsKLSAgICAKKworICAgIGlmIChhY3R1YWxSYW5nZSkKKyAgICAgICAgKmFjdHVhbFJh
bmdlID0gdGhlUmFuZ2U7CisKICAgICBMT0coVGV4dElucHV0LCAiZmlyc3RSZWN0Rm9yQ2hhcmFj
dGVyUmFuZ2U6KCV1LCAldSkgLT4gKCVmLCAlZiwgJWYsICVmKSIsIHRoZVJhbmdlLmxvY2F0aW9u
LCB0aGVSYW5nZS5sZW5ndGgsIHJlc3VsdFJlY3Qub3JpZ2luLngsIHJlc3VsdFJlY3Qub3JpZ2lu
LnksIHJlc3VsdFJlY3Quc2l6ZS53aWR0aCwgcmVzdWx0UmVjdC5zaXplLmhlaWdodCk7CiAgICAg
cmV0dXJuIHJlc3VsdFJlY3Q7CiB9Cg==
</data>
<flag name="review"
          id="81302"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>