<?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>120506</bug_id>
          
          <creation_ts>2013-08-29 20:33:57 -0700</creation_ts>
          <short_desc>Unduplicate the code to convert between VisiblePosition and index</short_desc>
          <delta_ts>2013-08-29 22:00:55 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>mrobinson</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922795</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-29 20:33:57 -0700</bug_when>
    <thetext>Unduplicate the code to convert between VisiblePosition and index</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922796</commentid>
    <comment_count>1</comment_count>
      <attachid>210062</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-29 20:36:53 -0700</bug_when>
    <thetext>Created attachment 210062
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922797</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-29 20:38:44 -0700</bug_when>
    <thetext>This change was inspired by https://chromium.googlesource.com/chromium/blink/+/8ef233a60fec4c65de9e94c66a19a028377d7da0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922809</commentid>
    <comment_count>3</comment_count>
      <attachid>210062</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 22:00:53 -0700</bug_when>
    <thetext>Comment on attachment 210062
Cleanup

Clearing flags on attachment: 210062

Committed r154868: &lt;http://trac.webkit.org/changeset/154868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922810</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 22:00:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210062</attachid>
            <date>2013-08-29 20:36:53 -0700</date>
            <delta_ts>2013-08-29 22:00:53 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-120506-20130829203652.patch</filename>
            <type>text/plain</type>
            <size>13627</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDg2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA4LTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVuZHVwbGljYXRlIHRoZSBjb2Rl
IHRvIGNvbnZlcnQgYmV0d2VlbiBWaXNpYmxlUG9zaXRpb24gYW5kIGluZGV4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmNhcHN1bGF0ZSB0aGUgY29u
dmVyc2lvbiBiZXR3ZWVuIFZpc2libGVQb3NpdGlvbiBhbmQgaW5kZXggaW50byBpbmRleEZvclZp
c2libGVQb3NpdGlvbgorICAgICAgICBhbmQgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXhVc2luZ0No
YXJhY3Rlckl0ZXJhdG9yLiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlc2UgdHdvIGZ1bmN0aW9u
cworICAgICAgICBhcmUgZGlmZmVyZW50IGZyb20gdGhlIHR3byBvdGhlciBleGlzdGluZyBmdW5j
dGlvbnMgb2Ygc2ltaWxhciBuYW1lcyBidXQgd2UndmUgYXQgbGVhc3QKKyAgICAgICAgY29uZmlu
ZWQgcHJvYmxlbXMgaW50byBhIHNpbmdsZSBjcHAgZmlsZSBub3cuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JWaXNp
YmxlUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmZpbmRGaXJzdE1hcmthYmxlKToKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OnZpc2libGVQb3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRv
cik6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorICAgICAgICAqIGh0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzVmlzaWJs
ZVRleHRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZXRTZWxlY3Rpb25SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuaDoKKwogMjAxMy0wOC0yOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBBdm9pZCBOb2RlIHJlZmVyZW5jZXMgZnJvbSBBWE9iamVjdENhY2hl
IGZyb20gbGVha2luZwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxNTQ4NTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODE2LDkgKzE4MTYsOSBAQCBWaXNpYmxlUG9zaXRp
b24gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjCiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgCisKICAgICBpZiAoaXNOYXRpdmVU
ZXh0Q29udHJvbCgpKQotICAgICAgICByZXR1cm4gdG9SZW5kZXJUZXh0Q29udHJvbChtX3JlbmRl
cmVyKS0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXgpOworICAgICAgICByZXR1cm4gdG9S
ZW5kZXJUZXh0Q29udHJvbChtX3JlbmRlcmVyKS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLT52
aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7CiAKICAgICBpZiAoIWFsbG93c1RleHRSYW5n
ZXMoKSAmJiAhbV9yZW5kZXJlci0+aXNUZXh0KCkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9z
aXRpb24oKTsKQEAgLTE4MjYsMjMgKzE4MjYsMTQgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplYwogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CiAg
ICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgCi0g
ICAgaWYgKGluZGV4IDw9IDApCi0gICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oZmlyc3RQ
b3NpdGlvbkluT3JCZWZvcmVOb2RlKG5vZGUpLCBET1dOU1RSRUFNKTsKLSAgICAKLSAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgmbV9yZW5kZXJlci0+ZG9jdW1lbnQoKSk7
Ci0gICAgcmFuZ2UtPnNlbGVjdE5vZGVDb250ZW50cyhub2RlLCBJR05PUkVfRVhDRVBUSU9OKTsK
LSAgICBDaGFyYWN0ZXJJdGVyYXRvciBpdChyYW5nZS5nZXQoKSk7Ci0gICAgaXQuYWR2YW5jZShp
bmRleCAtIDEpOwotICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24oaXQucmFuZ2Uo
KS0+ZW5kQ29udGFpbmVyKCksIGl0LnJhbmdlKCktPmVuZE9mZnNldCgpLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKSwgVVBTVFJFQU0pOworCisgICAgcmV0dXJuIHZpc2libGVQ
b3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihub2RlLCBpbmRleCk7CiB9CiAg
ICAgCiBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3MpIGNvbnN0CiB7Ci0gICAgaWYgKGlzTmF0aXZl
VGV4dENvbnRyb2woKSkgewotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4
dENvbnRyb2wgPSB0b1JlbmRlclRleHRDb250cm9sKG1fcmVuZGVyZXIpLT50ZXh0Rm9ybUNvbnRy
b2xFbGVtZW50KCk7Ci0gICAgICAgIHJldHVybiB0ZXh0Q29udHJvbC0+aW5kZXhGb3JWaXNpYmxl
UG9zaXRpb24ocG9zKTsKLSAgICB9CisgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkKKyAg
ICAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoKS0+aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24ocG9zKTsKIAogICAgIGlmICgh
aXNUZXh0Q29udHJvbCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE4NTAsMjIgKzE4NDEsMjAg
QEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVgogICAgIE5vZGUqIG5v
ZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4g
MDsKLSAgICAKKwogICAgIFBvc2l0aW9uIGluZGV4UG9zaXRpb24gPSBwb3MuZGVlcEVxdWl2YWxl
bnQoKTsKICAgICBpZiAoaW5kZXhQb3NpdGlvbi5pc051bGwoKSB8fCBoaWdoZXN0RWRpdGFibGVS
b290KGluZGV4UG9zaXRpb24sIEhhc0VkaXRhYmxlQVhSb2xlKSAhPSBub2RlKQogICAgICAgICBy
ZXR1cm4gMDsKLSAgICAKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgm
bV9yZW5kZXJlci0+ZG9jdW1lbnQoKSk7Ci0gICAgcmFuZ2UtPnNldFN0YXJ0KG5vZGUsIDAsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIHJhbmdlLT5zZXRFbmQoaW5kZXhQb3NpdGlvbiwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgLy8gV2UgbmVlZCB0byBjb25z
aWRlciByZXBsYWNlZCBlbGVtZW50cyBmb3IgR1RLLCBhcyB0aGV5IHdpbGwgYmUKICAgICAvLyBw
cmVzZW50ZWQgd2l0aCB0aGUgJ29iamVjdCByZXBsYWNlbWVudCBjaGFyYWN0ZXInICgweEZGRkMp
LgotICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgpLCB0cnVl
KTsKKyAgICBib29sIGZvclNlbGVjdGlvblByZXNlcnZhdGlvbiA9IHRydWU7CiAjZWxzZQotICAg
IHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgpKTsKKyAgICBib29s
IGZvclNlbGVjdGlvblByZXNlcnZhdGlvbiA9IGZhbHNlOwogI2VuZGlmCisKKyAgICByZXR1cm4g
V2ViQ29yZTo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24obm9kZSwgcG9zLCBmb3JTZWxlY3Rpb25Q
cmVzZXJ2YXRpb24pOwogfQogCiBFbGVtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpy
b290RWRpdGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMTU0ODU4KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDQ5LDggKzMwNDksOCBAQCBzdGF0aWMgTm9kZSogZmluZEZpcnN0TWFya2FibGUoTm9kZSogbm9k
CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlz
VGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIGlmIChub2RlLT5yZW5k
ZXJlcigpLT5pc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICBub2RlID0gdG9SZW5kZXJUZXh0
Q29udHJvbChub2RlLT5yZW5kZXJlcigpKS0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoMSkuZGVl
cEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpOworICAgICAgICBpZiAoaXNIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudChub2RlKSkKKyAgICAgICAgICAgIG5vZGUgPSB0b0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KG5vZGUpLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleCgxKS5kZWVwRXF1
aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCk7CiAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmZpcnN0
Q2hpbGQoKSkKICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5maXJzdENoaWxkKCk7CiAgICAgICAg
IGVsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lv
biAxNTQ4NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTE1OSw2ICsxMTU5LDE0IEBAIGludCBpbmRleEZvclZpc2libGVQb3Np
dGlvbihjb25zdCBWaXNpYmwKICAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChy
YW5nZS5nZXQoKSwgdHJ1ZSk7CiB9CiAKKy8vIEZJWE1FOiBNZXJnZSB0aGVzZSB0d28gZnVuY3Rp
b25zLgoraW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uLCBib29sIGZvclNlbGVjdGlvblByZXNlcnZhdGlv
bikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdl
OjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgZmlyc3RQb3NpdGlvbkluTm9kZShub2RlKSwgdmlz
aWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkucGFyZW50QW5jaG9yZWRFcXVpdmFsZW50KCkp
OworICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgpLCBmb3JT
ZWxlY3Rpb25QcmVzZXJ2YXRpb24pOworfQorCiBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0
aW9uRm9ySW5kZXgoaW50IGluZGV4LCBDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChzY29wZSwgaW5kZXgsIDAsIHRydWUpOwpAQCAtMTE2OSw2ICsxMTc3LDIwIEBAIFZpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCgKICAgICByZXR1cm4gVmlzaWJsZVBvc2l0
aW9uKHJhbmdlLT5zdGFydFBvc2l0aW9uKCkpOwogfQogCitWaXNpYmxlUG9zaXRpb24gdmlzaWJs
ZVBvc2l0aW9uRm9ySW5kZXhVc2luZ0NoYXJhY3Rlckl0ZXJhdG9yKE5vZGUqIG5vZGUsIGludCBp
bmRleCkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKGluZGV4IDw9IDApCisgICAgICAg
IHJldHVybiBWaXNpYmxlUG9zaXRpb24oZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKG5vZGUp
LCBET1dOU1RSRUFNKTsKKworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRl
KG5vZGUtPmRvY3VtZW50KCkpOworICAgIHJhbmdlLT5zZWxlY3ROb2RlQ29udGVudHMobm9kZSwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgQ2hhcmFjdGVySXRlcmF0b3IgaXQocmFuZ2UuZ2V0KCkp
OworICAgIGl0LmFkdmFuY2UoaW5kZXggLSAxKTsKKworICAgIHJldHVybiBWaXNpYmxlUG9zaXRp
b24oUG9zaXRpb24oaXQucmFuZ2UoKS0+ZW5kQ29udGFpbmVyKCksIGl0LnJhbmdlKCktPmVuZE9m
ZnNldCgpLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgVVBTVFJFQU0pOwor
fQorCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIHBvc2l0aW9ucyBhcmUgdmlzaWJseSBuZXh0
IHRvIGVhY2ggb3RoZXIgKGZpcnN0IHRoZW4gc2Vjb25kKQogLy8gd2hpbGUgaWdub3Jpbmcgd2hp
dGVzcGFjZXMgYW5kIHVucmVuZGVyZWQgbm9kZXMKIGJvb2wgaXNWaXNpYmx5QWRqYWNlbnQoY29u
c3QgUG9zaXRpb24mIGZpcnN0LCBjb25zdCBQb3NpdGlvbiYgc2Vjb25kKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAkocmV2aXNpb24gMTU0ODU4KQorKysgU291cmNlL1dl
YkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNyArMTg5
LDkgQEAgYm9vbCBsaW5lQnJlYWtFeGlzdHNBdFZpc2libGVQb3NpdGlvbihjbwogaW50IGNvbXBh
cmVQb3NpdGlvbnMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CiAKIGludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
LCBSZWZQdHI8Q29udGFpbmVyTm9kZT4mIHNjb3BlKTsKK2ludCBpbmRleEZvclZpc2libGVQb3Np
dGlvbihOb2RlKiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCBmb3JTZWxlY3Rpb25QcmVz
ZXJ2YXRpb24pOwogVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBp
bmRleCwgQ29udGFpbmVyTm9kZSogc2NvcGUpOworVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3Np
dGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50IGluZGV4KTsgLy8g
RklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRoaXMgdmVyc2lvbj8KIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogLy8gUmFuZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ4NTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzksMTMgKzM5LDEyIEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKLSNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKLSNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVu
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIK
LSNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMjIzLDEzICsyMjIsMTIgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlz
cGF0YwogICAgIHNldENoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNl
KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGhhc1Zpc2libGVUZXh0QXJlYShSZW5kZXJUZXh0
Q29udHJvbCogdGV4dENvbnRyb2wsIEhUTUxFbGVtZW50KiBpbm5lclRleHQpCitzdGF0aWMgaW5s
aW5lIGJvb2wgaGFzVmlzaWJsZVRleHRBcmVhKFJlbmRlck9iamVjdCogdGV4dENvbnRyb2wsIEhU
TUxFbGVtZW50KiBpbm5lclRleHQpCiB7CiAgICAgQVNTRVJUKHRleHRDb250cm9sKTsKICAgICBy
ZXR1cm4gdGV4dENvbnRyb2wtPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBISURERU4gJiYgaW5u
ZXJUZXh0ICYmIGlubmVyVGV4dC0+cmVuZGVyZXIoKSAmJiBpbm5lclRleHQtPnJlbmRlckJveCgp
LT5oZWlnaHQoKTsKIH0KIAotCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRS
YW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50LCBzZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rp
b25FbmQoKSwgU3RyaW5nKCksIGVjKTsKQEAgLTMxMCwxNyArMzA4LDE2IEBAIHZvaWQgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGUKICAgICBlbmQgPSBtYXgoZW5kLCAwKTsKICAg
ICBzdGFydCA9IG1pbihtYXgoc3RhcnQsIDApLCBlbmQpOwogCi0gICAgUmVuZGVyVGV4dENvbnRy
b2wqIGNvbnRyb2wgPSB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpOwotICAgIGlmICgh
aGFzVmlzaWJsZVRleHRBcmVhKGNvbnRyb2wsIGlubmVyVGV4dEVsZW1lbnQoKSkpIHsKKyAgICBp
ZiAoIWhhc1Zpc2libGVUZXh0QXJlYShyZW5kZXJlcigpLCBpbm5lclRleHRFbGVtZW50KCkpKSB7
CiAgICAgICAgIGNhY2hlU2VsZWN0aW9uKHN0YXJ0LCBlbmQsIGRpcmVjdGlvbik7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0UG9zaXRpb24gPSBjb250
cm9sLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydCk7CisgICAgVmlzaWJsZVBvc2l0aW9u
IHN0YXJ0UG9zaXRpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydCk7CiAgICAgVmlz
aWJsZVBvc2l0aW9uIGVuZFBvc2l0aW9uOwogICAgIGlmIChzdGFydCA9PSBlbmQpCiAgICAgICAg
IGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjsKICAgICBlbHNlCi0gICAgICAgIGVuZFBvc2l0
aW9uID0gY29udHJvbC0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoZW5kKTsKKyAgICAgICAgZW5k
UG9zaXRpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChlbmQpOwogCiAgICAgLy8gc3RhcnRQ
b3NpdGlvbiBhbmQgZW5kUG9zaXRpb24gY2FuIGJlIG51bGwgcG9zaXRpb24gZm9yIGV4YW1wbGUg
d2hlbgogICAgIC8vICItd2Via2l0LXVzZXItc2VsZWN0OiBub25lIiBzdHlsZSBhdHRyaWJ1dGUg
aXMgc3BlY2lmaWVkLgpAQCAtMzQxLDEzICszMzgsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZQogCiBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKSBjb25zdAog
ewotICAgIFBvc2l0aW9uIGluZGV4UG9zaXRpb24gPSBwb3MuZGVlcEVxdWl2YWxlbnQoKS5wYXJl
bnRBbmNob3JlZEVxdWl2YWxlbnQoKTsKLSAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9s
KGluZGV4UG9zaXRpb24pICE9IHRoaXMpCisgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJv
bChwb3MuZGVlcEVxdWl2YWxlbnQoKSkgIT0gdGhpcykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
UmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoaW5kZXhQb3NpdGlvbi5kb2N1bWVu
dCgpKTsKLSAgICByYW5nZS0+c2V0U3RhcnQoaW5uZXJUZXh0RWxlbWVudCgpLCAwLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKLSAgICByYW5nZS0+c2V0RW5kKGluZGV4UG9zaXRpb24uY29udGFpbmVy
Tm9kZSgpLCBpbmRleFBvc2l0aW9uLm9mZnNldEluQ29udGFpbmVyTm9kZSgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICByZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5n
ZXQoKSk7CisgICAgYm9vbCBmb3JTZWxlY3Rpb25QcmVzZXJ2YXRpb24gPSBmYWxzZTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oaW5uZXJUZXh0RWxlbWVudCgp
LCBwb3MsIGZvclNlbGVjdGlvblByZXNlcnZhdGlvbik7Cit9CisKK1Zpc2libGVQb3NpdGlvbiBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGlu
ZGV4KSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVzaW5nQ2hh
cmFjdGVySXRlcmF0b3IoaW5uZXJUZXh0RWxlbWVudCgpLCBpbmRleCk7CiB9CiAKIGludCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2
aXNpb24gMTU0ODU4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBmaXhQbGFjZWhvbGRlclJlbmRlcmVyKEhUTUxFbGVtZW50KiBwbGFjZWhvbGRl
ciwgSFRNTEVsZW1lbnQqIHNpYmxpbmdFbGVtZW50KTsKIAogICAgIGludCBpbmRleEZvclZpc2li
bGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKKyAgICBWaXNpYmxlUG9z
aXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjb25zdDsKICAgICBpbnQg
c2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7CiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkocmV2
aXNpb24gMTU0ODU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDE3ICsxMjYsNiBAQCB2b2lkIFJlbmRlclRl
eHRDb250cm9sOjp1cGRhdGVGcm9tRWxlbWVuCiAgICAgICAgIHVwZGF0ZVVzZXJNb2RpZnlQcm9w
ZXJ0eShub2RlKCksIGlubmVyVGV4dC0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CiB9CiAKLVZpc2li
bGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJvbDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50
IGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA8PSAwKQotICAgICAgICByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKGZpcnN0UG9zaXRpb25Jbk5vZGUoaW5uZXJUZXh0RWxlbWVudCgpKSwgRE9X
TlNUUkVBTSk7Ci0gICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoJmRvY3Vt
ZW50KCkpOwotICAgIHJhbmdlLT5zZWxlY3ROb2RlQ29udGVudHMoaW5uZXJUZXh0RWxlbWVudCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBDaGFyYWN0ZXJJdGVyYXRvciBpdChyYW5nZS5n
ZXQoKSk7Ci0gICAgaXQuYWR2YW5jZShpbmRleCAtIDEpOwotICAgIHJldHVybiBWaXNpYmxlUG9z
aXRpb24oaXQucmFuZ2UoKS0+ZW5kUG9zaXRpb24oKSwgVVBTVFJFQU0pOwotfQotCiBpbnQgUmVu
ZGVyVGV4dENvbnRyb2w6OnNjcm9sbGJhclRoaWNrbmVzcygpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBnZXQgdGhlIHNpemUgb2YgdGhlIHNjcm9sbGJhciBmcm9tIHRoZSBSZW5k
ZXJUaGVtZSBpbnN0ZWFkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmgJKHJldmlzaW9uIDE1NDg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiw2IEBA
IHB1YmxpYzoKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4dEZvcm1Db250cm9s
RWxlbWVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3Jl
YXRlSW5uZXJUZXh0U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpIGNvbnN0ID0g
MDsKIAotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5k
ZXgpIGNvbnN0OwotCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyVGV4dENvbnRyb2woRWxlbWVudCop
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>