<?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>73984</bug_id>
          
          <creation_ts>2011-12-06 23:48:22 -0800</creation_ts>
          <short_desc>TypingCommand duplicates code to obtain the last typing command</short_desc>
          <delta_ts>2011-12-07 01:03:58 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>64414</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>morrita</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>516510</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-06 23:48:22 -0800</bug_when>
    <thetext>Lots of code like:

    ASSERT(document);

    Frame* frame = document-&gt;frame();
    ASSERT(frame);

    EditCommand* lastEditCommand = frame-&gt;editor()-&gt;lastEditCommand();
    if (isOpenForMoreTypingCommand(lastEditCommand)) {

is duplicated throughout TypingCommand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516517</commentid>
    <comment_count>1</comment_count>
      <attachid>118179</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-07 00:18:36 -0800</bug_when>
    <thetext>Created attachment 118179
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516525</commentid>
    <comment_count>2</comment_count>
      <attachid>118179</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-07 00:29:03 -0800</bug_when>
    <thetext>Comment on attachment 118179
cleanup

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516530</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-07 00:55:40 -0800</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516531</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-07 01:03:58 -0800</bug_when>
    <thetext>Committed r102225: &lt;http://trac.webkit.org/changeset/102225&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118179</attachid>
            <date>2011-12-07 00:18:36 -0800</date>
            <delta_ts>2011-12-07 00:29:03 -0800</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-73984-20111207001836.patch</filename>
            <type>text/plain</type>
            <size>11886</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTEyLTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFR5cGluZ0NvbW1hbmQgZHVwbGlj
YXRlcyBjb2RlIHRvIG9idGFpbiB0aGUgbGFzdCB0eXBpbmcgY29tbWFuZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRyYWN0ZWQgbGFzdFR5cGluZ0Nv
bW1hbmRJZlN0aWxsT3BlbkZvclR5cGluZyBvdXQgb2YgaXNPcGVuRm9yTW9yZVR5cGluZ0NvbW1h
bmQKKyAgICAgICAgYW5kIGEgYnVuY2ggb2YgVHlwaW5nQ29tbWFuZCBzdGF0aWMgbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICBBbHNvIG1hZGUgbW9yZSBtZW1iZXIgZnVuY3Rpb25zIG9mIFR5
cGluZ0NvbW1hbmQgcHJpdmF0ZS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2V0Q29tcG9zaXRpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmRlbGV0ZVNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6OmZvcndhcmREZWxldGVLZXlQcmVzc2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0TGluZUJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvckluUXVvdGVkQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bGFzdFR5cGluZ0NvbW1hbmRJZlN0aWxs
T3BlbkZvclR5cGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpjbG9zZVR5
cGluZyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdDb21tYW5kOjppc09wZW5Gb3JNb3JlVHlwaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0NvbW1hbmQ6OmNsb3NlVHlwaW5nKToKKwogMjAxMS0xMi0wNiAgTWFyeSBXdSAg
PG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIHVwc3RyZWFtIEJsYWNrQmVy
cnkgcG9ydGluZyBvZiBLVVJML0xvZ2dpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAJKHJldmlzaW9uIDEwMjIyMikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQyNSw3ICsxNDI1LDcgQEAgdm9pZCBFZGl0b3I6OnNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZwogCiAgICAgaWYgKG1vZGUgPT0gQ2FuY2VsQ29tcG9zaXRp
b24pIHsKICAgICAgICAgLy8gQW4gb3BlbiB0eXBpbmcgY29tbWFuZCB0aGF0IGRpc2FncmVlcyBh
Ym91dCBjdXJyZW50IHNlbGVjdGlvbiB3b3VsZCBjYXVzZSBpc3N1ZXMgd2l0aCB0eXBpbmcgbGF0
ZXIgb24uCi0gICAgICAgIFR5cGluZ0NvbW1hbmQ6OmNsb3NlVHlwaW5nKG1fbGFzdEVkaXRDb21t
YW5kLmdldCgpKTsKKyAgICAgICAgVHlwaW5nQ29tbWFuZDo6Y2xvc2VUeXBpbmcobV9mcmFtZSk7
CiAgICAgfQogCiAgICAgc2V0SWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UoZmFsc2Up
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlz
aW9uIDEwMjIyMikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IAogICAgIG1fZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsKIAog
ICAgIGlmIChjbG9zZVR5cGluZykKLSAgICAgICAgVHlwaW5nQ29tbWFuZDo6Y2xvc2VUeXBpbmco
bV9mcmFtZS0+ZWRpdG9yKCktPmxhc3RFZGl0Q29tbWFuZCgpKTsKKyAgICAgICAgVHlwaW5nQ29t
bWFuZDo6Y2xvc2VUeXBpbmcobV9mcmFtZSk7CiAKICAgICBpZiAoc2hvdWxkQ2xlYXJUeXBpbmdT
dHlsZSkKICAgICAgICAgY2xlYXJUeXBpbmdTdHlsZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lvbiAxMDIyMjIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MywxMyAr
ODMsMTEgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24oRG9jdQogICAgIAog
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7
Ci0gICAgCisKICAgICBpZiAoIWZyYW1lLT5zZWxlY3Rpb24oKS0+aXNSYW5nZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgRWRpdENvbW1hbmQqIGxhc3RFZGl0Q29tbWFuZCA9IGZyYW1l
LT5lZGl0b3IoKS0+bGFzdEVkaXRDb21tYW5kKCk7Ci0gICAgaWYgKGlzT3BlbkZvck1vcmVUeXBp
bmdDb21tYW5kKGxhc3RFZGl0Q29tbWFuZCkpIHsKLSAgICAgICAgVHlwaW5nQ29tbWFuZCogbGFz
dFR5cGluZ0NvbW1hbmQgPSBzdGF0aWNfY2FzdDxUeXBpbmdDb21tYW5kKj4obGFzdEVkaXRDb21t
YW5kKTsKKworICAgIGlmIChUeXBpbmdDb21tYW5kKiBsYXN0VHlwaW5nQ29tbWFuZCA9IGxhc3RU
eXBpbmdDb21tYW5kSWZTdGlsbE9wZW5Gb3JUeXBpbmcoZnJhbWUpKSB7CiAgICAgICAgIGxhc3RU
eXBpbmdDb21tYW5kLT5zZXRTaG91bGRQcmV2ZW50U3BlbGxDaGVja2luZyhvcHRpb25zICYgUHJl
dmVudFNwZWxsQ2hlY2tpbmcpOwogICAgICAgICBsYXN0VHlwaW5nQ29tbWFuZC0+ZGVsZXRlU2Vs
ZWN0aW9uKG9wdGlvbnMgJiBTbWFydERlbGV0ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTEwMSwx
NyArOTksMTMgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24oRG9jdQogdm9p
ZCBUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKERvY3VtZW50ICpkb2N1bWVudCwgT3B0
aW9ucyBvcHRpb25zLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgQVNTRVJU
KGRvY3VtZW50KTsKLSAgICAKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsK
LSAgICBBU1NFUlQoZnJhbWUpOwotICAgIAotICAgIEVkaXRDb21tYW5kKiBsYXN0RWRpdENvbW1h
bmQgPSBmcmFtZS0+ZWRpdG9yKCktPmxhc3RFZGl0Q29tbWFuZCgpOwotICAgIGlmIChncmFudWxh
cml0eSA9PSBDaGFyYWN0ZXJHcmFudWxhcml0eSAmJiBpc09wZW5Gb3JNb3JlVHlwaW5nQ29tbWFu
ZChsYXN0RWRpdENvbW1hbmQpKSB7Ci0gICAgICAgIFR5cGluZ0NvbW1hbmQqIGxhc3RUeXBpbmdD
b21tYW5kID0gc3RhdGljX2Nhc3Q8VHlwaW5nQ29tbWFuZCo+KGxhc3RFZGl0Q29tbWFuZCk7Ci0g
ICAgICAgIHVwZGF0ZVNlbGVjdGlvbklmRGlmZmVyZW50RnJvbUN1cnJlbnRTZWxlY3Rpb24obGFz
dFR5cGluZ0NvbW1hbmQsIGZyYW1lKTsKLSAgICAgICAgbGFzdFR5cGluZ0NvbW1hbmQtPnNldFNo
b3VsZFByZXZlbnRTcGVsbENoZWNraW5nKG9wdGlvbnMgJiBQcmV2ZW50U3BlbGxDaGVja2luZyk7
Ci0gICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5kZWxldGVLZXlQcmVzc2VkKGdyYW51bGFyaXR5
LCBvcHRpb25zICYgS2lsbFJpbmcpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKGdyYW51bGFy
aXR5ID09IENoYXJhY3RlckdyYW51bGFyaXR5KSB7CisgICAgICAgIGlmIChUeXBpbmdDb21tYW5k
KiBsYXN0VHlwaW5nQ29tbWFuZCA9IGxhc3RUeXBpbmdDb21tYW5kSWZTdGlsbE9wZW5Gb3JUeXBp
bmcoZG9jdW1lbnQtPmZyYW1lKCkpKSB7CisgICAgICAgICAgICB1cGRhdGVTZWxlY3Rpb25JZkRp
ZmZlcmVudEZyb21DdXJyZW50U2VsZWN0aW9uKGxhc3RUeXBpbmdDb21tYW5kLCBkb2N1bWVudC0+
ZnJhbWUoKSk7CisgICAgICAgICAgICBsYXN0VHlwaW5nQ29tbWFuZC0+c2V0U2hvdWxkUHJldmVu
dFNwZWxsQ2hlY2tpbmcob3B0aW9ucyAmIFByZXZlbnRTcGVsbENoZWNraW5nKTsKKyAgICAgICAg
ICAgIGxhc3RUeXBpbmdDb21tYW5kLT5kZWxldGVLZXlQcmVzc2VkKGdyYW51bGFyaXR5LCBvcHRp
b25zICYgS2lsbFJpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQog
CiAgICAgVHlwaW5nQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50LCBEZWxldGVLZXksICIiLCBvcHRp
b25zLCBncmFudWxhcml0eSktPmFwcGx5KCk7CkBAIC0xMjEsMTcgKzExNSwxNCBAQCB2b2lkIFR5
cGluZ0NvbW1hbmQ6OmZvcndhcmREZWxldGVLZXlQcmVzCiB7CiAgICAgLy8gRklYTUU6IEZvcndh
cmQgZGVsZXRlIGluIFRleHRFZGl0IGFwcGVhcnMgdG8gb3BlbiBhbmQgY2xvc2UgYSBuZXcgdHlw
aW5nIGNvbW1hbmQuCiAgICAgQVNTRVJUKGRvY3VtZW50KTsKLSAgICAKICAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIAotICAgIEVk
aXRDb21tYW5kKiBsYXN0RWRpdENvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmxhc3RFZGl0Q29t
bWFuZCgpOwotICAgIGlmIChncmFudWxhcml0eSA9PSBDaGFyYWN0ZXJHcmFudWxhcml0eSAmJiBp
c09wZW5Gb3JNb3JlVHlwaW5nQ29tbWFuZChsYXN0RWRpdENvbW1hbmQpKSB7Ci0gICAgICAgIFR5
cGluZ0NvbW1hbmQqIGxhc3RUeXBpbmdDb21tYW5kID0gc3RhdGljX2Nhc3Q8VHlwaW5nQ29tbWFu
ZCo+KGxhc3RFZGl0Q29tbWFuZCk7Ci0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbklmRGlmZmVyZW50
RnJvbUN1cnJlbnRTZWxlY3Rpb24obGFzdFR5cGluZ0NvbW1hbmQsIGZyYW1lKTsKLSAgICAgICAg
bGFzdFR5cGluZ0NvbW1hbmQtPnNldFNob3VsZFByZXZlbnRTcGVsbENoZWNraW5nKG9wdGlvbnMg
JiBQcmV2ZW50U3BlbGxDaGVja2luZyk7Ci0gICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5mb3J3
YXJkRGVsZXRlS2V5UHJlc3NlZChncmFudWxhcml0eSwgb3B0aW9ucyAmIEtpbGxSaW5nKTsKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmIChncmFudWxhcml0eSA9PSBDaGFyYWN0ZXJHcmFudWxhcml0
eSkgeworICAgICAgICBpZiAoVHlwaW5nQ29tbWFuZCogbGFzdFR5cGluZ0NvbW1hbmQgPSBsYXN0
VHlwaW5nQ29tbWFuZElmU3RpbGxPcGVuRm9yVHlwaW5nKGZyYW1lKSkgeworICAgICAgICAgICAg
dXBkYXRlU2VsZWN0aW9uSWZEaWZmZXJlbnRGcm9tQ3VycmVudFNlbGVjdGlvbihsYXN0VHlwaW5n
Q29tbWFuZCwgZnJhbWUpOworICAgICAgICAgICAgbGFzdFR5cGluZ0NvbW1hbmQtPnNldFNob3Vs
ZFByZXZlbnRTcGVsbENoZWNraW5nKG9wdGlvbnMgJiBQcmV2ZW50U3BlbGxDaGVja2luZyk7Cisg
ICAgICAgICAgICBsYXN0VHlwaW5nQ29tbWFuZC0+Zm9yd2FyZERlbGV0ZUtleVByZXNzZWQoZ3Jh
bnVsYXJpdHksIG9wdGlvbnMgJiBLaWxsUmluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBUeXBpbmdDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQsIEZvcndh
cmREZWxldGVLZXksICIiLCBvcHRpb25zLCBncmFudWxhcml0eSktPmFwcGx5KCk7CkBAIC0xODUs
OSArMTc2LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KERvY3VtZW50KgogICAg
IC8vIFNldCB0aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBzZWxlY3Rpb24gYXBwcm9wcmlhdGVseSBp
ZiB3ZSBhcmUgdXNpbmcgYSBzZWxlY3Rpb24KICAgICAvLyB0aGF0IGlzIGRpZmZlcmVudCBmcm9t
IHRoZSBjdXJyZW50IHNlbGVjdGlvbi4gIEluIHRoZSBmdXR1cmUsIHdlIHNob3VsZCBjaGFuZ2Ug
RWRpdENvbW1hbmQKICAgICAvLyB0byBkZWFsIHdpdGggY3VzdG9tIHNlbGVjdGlvbnMgaW4gYSBn
ZW5lcmFsIHdheSB0aGF0IGNhbiBiZSB1c2VkIGJ5IGFsbCBvZiB0aGUgY29tbWFuZHMuCi0gICAg
UmVmUHRyPEVkaXRDb21tYW5kPiBsYXN0RWRpdENvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmxh
c3RFZGl0Q29tbWFuZCgpOwotICAgIGlmIChpc09wZW5Gb3JNb3JlVHlwaW5nQ29tbWFuZChsYXN0
RWRpdENvbW1hbmQuZ2V0KCkpKSB7Ci0gICAgICAgIFR5cGluZ0NvbW1hbmQqIGxhc3RUeXBpbmdD
b21tYW5kID0gc3RhdGljX2Nhc3Q8VHlwaW5nQ29tbWFuZCo+KGxhc3RFZGl0Q29tbWFuZC5nZXQo
KSk7CisgICAgaWYgKFR5cGluZ0NvbW1hbmQqIGxhc3RUeXBpbmdDb21tYW5kID0gbGFzdFR5cGlu
Z0NvbW1hbmRJZlN0aWxsT3BlbkZvclR5cGluZyhmcmFtZS5nZXQoKSkpIHsKICAgICAgICAgaWYg
KGxhc3RUeXBpbmdDb21tYW5kLT5lbmRpbmdTZWxlY3Rpb24oKSAhPSBzZWxlY3Rpb25Gb3JJbnNl
cnRpb24pIHsKICAgICAgICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5zZXRTdGFydGluZ1NlbGVj
dGlvbihzZWxlY3Rpb25Gb3JJbnNlcnRpb24pOwogICAgICAgICAgICAgbGFzdFR5cGluZ0NvbW1h
bmQtPnNldEVuZGluZ1NlbGVjdGlvbihzZWxlY3Rpb25Gb3JJbnNlcnRpb24pOwpAQCAtMjE1LDEz
ICsyMDQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoRG9jdW1lbnQqCiB2b2lk
IFR5cGluZ0NvbW1hbmQ6Omluc2VydExpbmVCcmVhayhEb2N1bWVudCAqZG9jdW1lbnQsIE9wdGlv
bnMgb3B0aW9ucykKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwotCi0gICAgRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQtPmZyYW1lKCk7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLQotICAgIEVkaXRDb21t
YW5kKiBsYXN0RWRpdENvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmxhc3RFZGl0Q29tbWFuZCgp
OwotICAgIGlmIChpc09wZW5Gb3JNb3JlVHlwaW5nQ29tbWFuZChsYXN0RWRpdENvbW1hbmQpKSB7
Ci0gICAgICAgIFR5cGluZ0NvbW1hbmQqIGxhc3RUeXBpbmdDb21tYW5kID0gc3RhdGljX2Nhc3Q8
VHlwaW5nQ29tbWFuZCo+KGxhc3RFZGl0Q29tbWFuZCk7CisgICAgaWYgKFR5cGluZ0NvbW1hbmQq
IGxhc3RUeXBpbmdDb21tYW5kID0gbGFzdFR5cGluZ0NvbW1hbmRJZlN0aWxsT3BlbkZvclR5cGlu
Zyhkb2N1bWVudC0+ZnJhbWUoKSkpIHsKICAgICAgICAgbGFzdFR5cGluZ0NvbW1hbmQtPnNldFNo
b3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKG9wdGlvbnMgJiBSZXRhaW5BdXRvY29y
cmVjdGlvbkluZGljYXRvcik7CiAgICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5pbnNlcnRMaW5l
QnJlYWsoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjMzLDEzICsyMTYsOCBAQCB2b2lkIFR5cGlu
Z0NvbW1hbmQ6Omluc2VydExpbmVCcmVhayhEb2N1CiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckluUXVvdGVkQ29udGVudChEb2N1bWVudCAqZG9jdW1lbnQpCiB7
CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5m
cmFtZSgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0KLSAgICBFZGl0Q29tbWFuZCogbGFzdEVkaXRD
b21tYW5kID0gZnJhbWUtPmVkaXRvcigpLT5sYXN0RWRpdENvbW1hbmQoKTsKLSAgICBpZiAoaXNP
cGVuRm9yTW9yZVR5cGluZ0NvbW1hbmQobGFzdEVkaXRDb21tYW5kKSkgewotICAgICAgICBzdGF0
aWNfY2FzdDxUeXBpbmdDb21tYW5kKj4obGFzdEVkaXRDb21tYW5kKS0+aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9ySW5RdW90ZWRDb250ZW50KCk7CisgICAgaWYgKFR5cGluZ0NvbW1hbmQqIGxhc3RU
eXBpbmdDb21tYW5kID0gbGFzdFR5cGluZ0NvbW1hbmRJZlN0aWxsT3BlbkZvclR5cGluZyhkb2N1
bWVudC0+ZnJhbWUoKSkpIHsKKyAgICAgICAgbGFzdFR5cGluZ0NvbW1hbmQtPmluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckluUXVvdGVkQ29udGVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0yNDksMTMgKzIyNyw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXIKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKERvY3Vt
ZW50ICpkb2N1bWVudCwgT3B0aW9ucyBvcHRpb25zKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7
Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBBU1NFUlQoZnJh
bWUpOwotCi0gICAgRWRpdENvbW1hbmQqIGxhc3RFZGl0Q29tbWFuZCA9IGZyYW1lLT5lZGl0b3Io
KS0+bGFzdEVkaXRDb21tYW5kKCk7Ci0gICAgaWYgKGlzT3BlbkZvck1vcmVUeXBpbmdDb21tYW5k
KGxhc3RFZGl0Q29tbWFuZCkpIHsKLSAgICAgICAgVHlwaW5nQ29tbWFuZCogbGFzdFR5cGluZ0Nv
bW1hbmQgPSBzdGF0aWNfY2FzdDxUeXBpbmdDb21tYW5kKj4obGFzdEVkaXRDb21tYW5kKTsKKyAg
ICBpZiAoVHlwaW5nQ29tbWFuZCogbGFzdFR5cGluZ0NvbW1hbmQgPSBsYXN0VHlwaW5nQ29tbWFu
ZElmU3RpbGxPcGVuRm9yVHlwaW5nKGRvY3VtZW50LT5mcmFtZSgpKSkgewogICAgICAgICBsYXN0
VHlwaW5nQ29tbWFuZC0+c2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3Iob3B0
aW9ucyAmIFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKTsKICAgICAgICAgbGFzdFR5cGlu
Z0NvbW1hbmQtPmluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpOwogICAgICAgICByZXR1cm47CkBA
IC0yNjQsMTUgKzIzNiwyMSBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNl
cGFyCiAgICAgYXBwbHlDb21tYW5kKFR5cGluZ0NvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCwgSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yLCAiIiwgb3B0aW9ucykpOwogfQogCi1ib29sIFR5cGluZ0Nv
bW1hbmQ6OmlzT3BlbkZvck1vcmVUeXBpbmdDb21tYW5kKGNvbnN0IEVkaXRDb21tYW5kKiBjbWQp
CitUeXBpbmdDb21tYW5kKiBUeXBpbmdDb21tYW5kOjpsYXN0VHlwaW5nQ29tbWFuZElmU3RpbGxP
cGVuRm9yVHlwaW5nKEZyYW1lKiBmcmFtZSkKIHsKLSAgICByZXR1cm4gY21kICYmIGNtZC0+aXNU
eXBpbmdDb21tYW5kKCkgJiYgc3RhdGljX2Nhc3Q8Y29uc3QgVHlwaW5nQ29tbWFuZCo+KGNtZCkt
PmlzT3BlbkZvck1vcmVUeXBpbmcoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworCisgICAgRWRpdENv
bW1hbmQqIGxhc3RFZGl0Q29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS0+bGFzdEVkaXRDb21tYW5k
KCk7CisgICAgaWYgKCFsYXN0RWRpdENvbW1hbmQgfHwgIWxhc3RFZGl0Q29tbWFuZC0+aXNUeXBp
bmdDb21tYW5kKCkgfHwgIXN0YXRpY19jYXN0PFR5cGluZ0NvbW1hbmQqPihsYXN0RWRpdENvbW1h
bmQpLT5pc09wZW5Gb3JNb3JlVHlwaW5nKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFR5cGluZ0NvbW1hbmQqPihsYXN0RWRpdENvbW1hbmQpOwogfQogCi12
b2lkIFR5cGluZ0NvbW1hbmQ6OmNsb3NlVHlwaW5nKEVkaXRDb21tYW5kKiBjbWQpCit2b2lkIFR5
cGluZ0NvbW1hbmQ6OmNsb3NlVHlwaW5nKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoaXNPcGVu
Rm9yTW9yZVR5cGluZ0NvbW1hbmQoY21kKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8VHlwaW5nQ29t
bWFuZCo+KGNtZCktPmNsb3NlVHlwaW5nKCk7CisgICAgaWYgKFR5cGluZ0NvbW1hbmQqIGxhc3RU
eXBpbmdDb21tYW5kID0gbGFzdFR5cGluZ0NvbW1hbmRJZlN0aWxsT3BlbkZvclR5cGluZyhmcmFt
ZSkpCisgICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5jbG9zZVR5cGluZygpOwogfQogCiB2b2lk
IFR5cGluZ0NvbW1hbmQ6OmRvQXBwbHkoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmgJKHJldmlzaW9uIDEwMjIyMikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSArNjUsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgaW5zZXJ0TGluZUJyZWFrKERvY3VtZW50KiwgT3B0aW9ucyk7CiAg
ICAgc3RhdGljIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKERvY3VtZW50KiwgT3B0aW9u
cyk7CiAgICAgc3RhdGljIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9ySW5RdW90ZWRDb250
ZW50KERvY3VtZW50Kik7Ci0gICAgc3RhdGljIGJvb2wgaXNPcGVuRm9yTW9yZVR5cGluZ0NvbW1h
bmQoY29uc3QgRWRpdENvbW1hbmQqKTsKLSAgICBzdGF0aWMgdm9pZCBjbG9zZVR5cGluZyhFZGl0
Q29tbWFuZCopOwotICAgIAotICAgIGJvb2wgaXNPcGVuRm9yTW9yZVR5cGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fb3BlbkZvck1vcmVUeXBpbmc7IH0KLSAgICB2b2lkIGNsb3NlVHlwaW5nKCkgeyBt
X29wZW5Gb3JNb3JlVHlwaW5nID0gZmFsc2U7IH0KKyAgICBzdGF0aWMgdm9pZCBjbG9zZVR5cGlu
ZyhGcmFtZSopOwogCiAgICAgdm9pZCBpbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQpOwogICAgIHZvaWQgaW5zZXJ0VGV4dFJ1bldpdGhvdXROZXds
aW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KTsKQEAgLTk2
LDcgKzkyLDExIEBAIHByaXZhdGU6CiAKICAgICBib29sIHNtYXJ0RGVsZXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zbWFydERlbGV0ZTsgfQogICAgIHZvaWQgc2V0U21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSkgeyBtX3NtYXJ0RGVsZXRlID0gc21hcnREZWxldGU7IH0KLSAgICAKKyAgICBib29s
IGlzT3BlbkZvck1vcmVUeXBpbmcoKSBjb25zdCB7IHJldHVybiBtX29wZW5Gb3JNb3JlVHlwaW5n
OyB9CisgICAgdm9pZCBjbG9zZVR5cGluZygpIHsgbV9vcGVuRm9yTW9yZVR5cGluZyA9IGZhbHNl
OyB9CisKKyAgICBzdGF0aWMgVHlwaW5nQ29tbWFuZCogbGFzdFR5cGluZ0NvbW1hbmRJZlN0aWxs
T3BlbkZvclR5cGluZyhGcmFtZSopOworCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKICAg
ICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc1R5cGluZ0NvbW1hbmQoKSBjb25zdDsK
</data>
<flag name="review"
          id="117836"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>