<?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>74035</bug_id>
          
          <creation_ts>2011-12-07 16:21:08 -0800</creation_ts>
          <short_desc>Editor::markAndReplaceFor should take Range instead of TextCheckingParagraph.</short_desc>
          <delta_ts>2011-12-07 20:26:06 -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>73616</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>516976</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-07 16:21:08 -0800</bug_when>
    <thetext>To merge asynchronous path and synchronous path of spellchecking, markAndReplaceFor should take Range instead of TextCheckingParagraph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516998</commentid>
    <comment_count>1</comment_count>
      <attachid>118288</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-07 16:56:01 -0800</bug_when>
    <thetext>Created attachment 118288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517033</commentid>
    <comment_count>2</comment_count>
      <attachid>118288</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-07 17:48:43 -0800</bug_when>
    <thetext>Comment on attachment 118288
Patch

Looks nice.
You can now remove the forward declaration of TextCheckingParagraph in Editor.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517060</commentid>
    <comment_count>3</comment_count>
      <attachid>118300</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-07 18:07:56 -0800</bug_when>
    <thetext>Created attachment 118300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517143</commentid>
    <comment_count>4</comment_count>
      <attachid>118300</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 20:26:02 -0800</bug_when>
    <thetext>Comment on attachment 118300
Patch

Clearing flags on attachment: 118300

Committed r102307: &lt;http://trac.webkit.org/changeset/102307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517144</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 20:26:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118288</attachid>
            <date>2011-12-07 16:56:01 -0800</date>
            <delta_ts>2011-12-07 18:07:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74035-20111208095559.patch</filename>
            <type>text/plain</type>
            <size>13627</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIwNzRkNGViMzc0YzJj
MGQ1NjlmNWE5NTc4ODYxYzI4M2RiMDg2OC4uOTM0MjdkYzU4ZjRjMTZkMjlmZDY0Mzk5MDgxMjAz
ODI5N2M3OTRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTEyLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgRWRpdG9yOjptYXJr
QW5kUmVwbGFjZUZvciBzaG91bGQgdGFrZSBSYW5nZSBpbnN0ZWFkIG9mIFRleHRDaGVja2luZ1Bh
cmFncmFwaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc0MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvciB0YWtlcyBjaGVrY2luZyByYW5nZSBhbmQgcGFyYWdy
YXBoIHJhbmdlIGluc3RlYWQgb2YKKyAgICAgICAgc3BlbGxpbmcgcGFyYWdyYXBoIGFuZCBncmFt
bWFyIHBhcmFncmFwaC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcik6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OlRleHRDaGVja2lu
Z1BhcmFncmFwaCk6CisgICAgICAgICogZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaDoKKwog
MjAxMS0xMi0wNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBU
eXBpbmdDb21tYW5kIGR1cGxpY2F0ZXMgY29kZSB0byBvYnRhaW4gdGhlIGxhc3QgdHlwaW5nIGNv
bW1hbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAzYjEwYTBkNDY5M2UyZDZhMjYz
ODE4MDRlZTkzMWE3ZmYwMTg2YmZmLi5kYTZmNTk2Y2FiNDc5MDIzODFjM2MyM2UyMTgwYjc3NDI2
ZjNmOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDEwLDM0ICsyMDEwLDI3
IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2Vz
KFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDCiAgICAgaWYgKCFpc1NwZWxsQ2hlY2tpbmdFbmFi
bGVkRm9yKGVkaXRhYmxlTm9kZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRleHRDaGVja2lu
Z1BhcmFncmFwaCBzcGVsbGluZ1BhcmFncmFwaChzcGVsbGluZ1JhbmdlKTsKLSAgICBUZXh0Q2hl
Y2tpbmdQYXJhZ3JhcGggZ3JhbW1hclBhcmFncmFwaChzaG91bGRNYXJrR3JhbW1hciA/IGdyYW1t
YXJSYW5nZSA6IDApOwotCi0gICAgaWYgKHNob3VsZE1hcmtHcmFtbWFyID8gKHNwZWxsaW5nUGFy
YWdyYXBoLmlzUmFuZ2VFbXB0eSgpICYmIGdyYW1tYXJQYXJhZ3JhcGguaXNFbXB0eSgpKSA6IHNw
ZWxsaW5nUGFyYWdyYXBoLmlzRW1wdHkoKSkKKyAgICBSYW5nZSogcmFuZ2VUb0NoZWNrID0gc2hv
dWxkTWFya0dyYW1tYXIgPyBncmFtbWFyUmFuZ2UgOiBzcGVsbGluZ1JhbmdlOworICAgIFRleHRD
aGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGhUb0NoZWNrKHJhbmdlVG9DaGVjayk7CisgICAgaWYg
KHBhcmFncmFwaFRvQ2hlY2suaXNSYW5nZUVtcHR5KCkgfHwgcGFyYWdyYXBoVG9DaGVjay5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgYXN5bmNocm9ub3VzID0gbV9mcmFt
ZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgJiYgIXNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWw7
CiAgICAgaWYgKGFzeW5jaHJvbm91cykgewotICAgICAgICBpZiAoc2hvdWxkTWFya0dyYW1tYXIp
Ci0gICAgICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlc29sdmVU
ZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgZ3JhbW1hclBhcmFncmFw
aC5wYXJhZ3JhcGhSYW5nZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9zcGVsbENo
ZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4
dENoZWNraW5nT3B0aW9ucyksIHNwZWxsaW5nUGFyYWdyYXBoLnBhcmFncmFwaFJhbmdlKCkpOwor
ICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlc29sdmVUZXh0Q2hl
Y2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgcGFyYWdyYXBoVG9DaGVjay5wYXJh
Z3JhcGhSYW5nZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFZlY3RvcjxUZXh0
Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHM7Ci0gICAgaWYgKHNob3VsZE1hcmtHcmFtbWFyKQotICAg
ICAgICBjaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0Q2hlY2tlcigpLCBncmFtbWFyUGFyYWdyYXBo
LnRleHRDaGFyYWN0ZXJzKCksIGdyYW1tYXJQYXJhZ3JhcGgudGV4dExlbmd0aCgpLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVRleHRDaGVja2lu
Z1R5cGVNYXNrKHRleHRDaGVja2luZ09wdGlvbnMpLCByZXN1bHRzKTsKLSAgICBlbHNlCi0gICAg
ICAgIGNoZWNrVGV4dE9mUGFyYWdyYXBoKHRleHRDaGVja2VyKCksIHNwZWxsaW5nUGFyYWdyYXBo
LnRleHRDaGFyYWN0ZXJzKCksIHNwZWxsaW5nUGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVUZXh0Q2hlY2tp
bmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgcmVzdWx0cyk7Ci0KLSAgICBtYXJrQW5k
UmVwbGFjZUZvcih0ZXh0Q2hlY2tpbmdPcHRpb25zLCByZXN1bHRzLCBzcGVsbGluZ1BhcmFncmFw
aCwgZ3JhbW1hclBhcmFncmFwaCk7CisgICAgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4dENoZWNr
ZXIoKSwgcGFyYWdyYXBoVG9DaGVjay50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGhUb0NoZWNr
LnRleHRMZW5ndGgoKSwKKyAgICAgICAgcmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKHRleHRD
aGVja2luZ09wdGlvbnMpLCByZXN1bHRzKTsKKyAgICBtYXJrQW5kUmVwbGFjZUZvcih0ZXh0Q2hl
Y2tpbmdPcHRpb25zLCByZXN1bHRzLCByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFRvQ2hlY2sucGFy
YWdyYXBoUmFuZ2UoKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcihUZXh0
Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBjb25zdCBWZWN0b3I8VGV4dENo
ZWNraW5nUmVzdWx0PiYgcmVzdWx0cywgY29uc3QgVGV4dENoZWNraW5nUGFyYWdyYXBoJiBzcGVs
bGluZ1BhcmFncmFwaCwgY29uc3QgVGV4dENoZWNraW5nUGFyYWdyYXBoJiBncmFtbWFyUGFyYWdy
YXBoKQordm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRleHRDaGVja2luZ1R5cGVNYXNr
IHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiBy
ZXN1bHRzLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdl
PiBwYXJhZ3JhcGhSYW5nZSkKIHsKKyAgICBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGggcGFyYWdyYXBo
KGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlKTsKKwogICAgIGJvb2wgc2hvdWxkTWFya1Nw
ZWxsaW5nID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsK
ICAgICBib29sIHNob3VsZE1hcmtHcmFtbWFyID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRD
aGVja2luZ1R5cGVHcmFtbWFyOwogICAgIGJvb2wgc2hvdWxkUGVyZm9ybVJlcGxhY2VtZW50ID0g
dGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudDsKQEAgLTIw
NTUsMTEgKzIwNDgsMTEgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRleHRDaGVj
a2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYKICAgICAgICAgaWYgKG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb25UeXBlKCkgPT0gVmlzaWJsZVNlbGVjdGlvbjo6
Q2FyZXRTZWxlY3Rpb24pIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gc2F2ZSB0aGUgY2Fy
ZXQgcG9zaXRpb24gc28gd2UgY2FuIHJlc3RvcmUgaXQgbGF0ZXIgaWYgbmVlZGVkCiAgICAgICAg
ICAgICBQb3NpdGlvbiBjYXJldFBvc2l0aW9uID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPmVuZCgp
OwotICAgICAgICAgICAgc2VsZWN0aW9uT2Zmc2V0ID0gc3BlbGxpbmdQYXJhZ3JhcGgub2Zmc2V0
VG8oY2FyZXRQb3NpdGlvbiwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBzZWxl
Y3Rpb25PZmZzZXQgPSBwYXJhZ3JhcGgub2Zmc2V0VG8oY2FyZXRQb3NpdGlvbiwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgICAgICAgICByZXN0b3JlU2VsZWN0aW9uQWZ0ZXJDaGFuZ2UgPSB0
cnVlOwotICAgICAgICAgICAgaWYgKHNlbGVjdGlvbk9mZnNldCA+IDAgJiYgKHNlbGVjdGlvbk9m
ZnNldCA+IHNwZWxsaW5nUGFyYWdyYXBoLnRleHRMZW5ndGgoKSB8fCBzcGVsbGluZ1BhcmFncmFw
aC50ZXh0Q2hhckF0KHNlbGVjdGlvbk9mZnNldCAtIDEpID09IG5ld2xpbmVDaGFyYWN0ZXIpKQor
ICAgICAgICAgICAgaWYgKHNlbGVjdGlvbk9mZnNldCA+IDAgJiYgKHNlbGVjdGlvbk9mZnNldCA+
IHBhcmFncmFwaC50ZXh0TGVuZ3RoKCkgfHwgcGFyYWdyYXBoLnRleHRDaGFyQXQoc2VsZWN0aW9u
T2Zmc2V0IC0gMSkgPT0gbmV3bGluZUNoYXJhY3RlcikpCiAgICAgICAgICAgICAgICAgYWRqdXN0
U2VsZWN0aW9uRm9yUGFyYWdyYXBoQm91bmRhcmllcyA9IHRydWU7Ci0gICAgICAgICAgICBpZiAo
c2VsZWN0aW9uT2Zmc2V0ID4gMCAmJiBzZWxlY3Rpb25PZmZzZXQgPD0gc3BlbGxpbmdQYXJhZ3Jh
cGgudGV4dExlbmd0aCgpICYmIGlzQW1iaWd1b3VzQm91bmRhcnlDaGFyYWN0ZXIoc3BlbGxpbmdQ
YXJhZ3JhcGgudGV4dENoYXJBdChzZWxlY3Rpb25PZmZzZXQgLSAxKSkpCisgICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uT2Zmc2V0ID4gMCAmJiBzZWxlY3Rpb25PZmZzZXQgPD0gcGFyYWdyYXBoLnRl
eHRMZW5ndGgoKSAmJiBpc0FtYmlndW91c0JvdW5kYXJ5Q2hhcmFjdGVyKHBhcmFncmFwaC50ZXh0
Q2hhckF0KHNlbGVjdGlvbk9mZnNldCAtIDEpKSkKICAgICAgICAgICAgICAgICBhbWJpZ3VvdXNC
b3VuZGFyeU9mZnNldCA9IHNlbGVjdGlvbk9mZnNldCAtIDE7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yMDcxLDcgKzIwNjQsNyBAQCB2b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoVGV4dENo
ZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgY29uc3QgVgogICAgIGludCBvZmZz
ZXREdWVUb1JlcGxhY2VtZW50ID0gMDsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBy
ZXN1bHRzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGludCBzcGVsbGluZ1JhbmdlRW5kT2Zmc2V0
ID0gc3BlbGxpbmdQYXJhZ3JhcGguY2hlY2tpbmdFbmQoKSArIG9mZnNldER1ZVRvUmVwbGFjZW1l
bnQ7CisgICAgICAgIGludCBzcGVsbGluZ1JhbmdlRW5kT2Zmc2V0ID0gcGFyYWdyYXBoLmNoZWNr
aW5nRW5kKCkgKyBvZmZzZXREdWVUb1JlcGxhY2VtZW50OwogICAgICAgICBjb25zdCBUZXh0Q2hl
Y2tpbmdSZXN1bHQqIHJlc3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpbnQgcmVzdWx0TG9j
YXRpb24gPSByZXN1bHQtPmxvY2F0aW9uICsgb2Zmc2V0RHVlVG9SZXBsYWNlbWVudDsKICAgICAg
ICAgaW50IHJlc3VsdExlbmd0aCA9IHJlc3VsdC0+bGVuZ3RoOwpAQCAtMjA4MiwyMyArMjA3NSwy
MyBAQCB2b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoVGV4dENoZWNraW5nVHlwZU1hc2sg
dGV4dENoZWNraW5nT3B0aW9ucywgY29uc3QgVgogICAgICAgICAvLyAyLiBSZXN1bHQgZmFsbHMg
d2l0aGluIHNwZWxsaW5nUmFuZ2UuCiAgICAgICAgIC8vIDMuIFRoZSB3b3JkIGluIHF1ZXN0aW9u
IGRvZXNuJ3QgZW5kIGF0IGFuIGFtYmlndW91cyBib3VuZGFyeS4gRm9yIGluc3RhbmNlLCB3ZSB3
b3VsZCBub3QgbWFyawogICAgICAgICAvLyAgICAid291bGRuJyIgYXMgbWlzc3BlbGxlZCByaWdo
dCBhZnRlciBhcG9zdHJvcGhlIGlzIHR5cGVkLgotICAgICAgICBpZiAoc2hvdWxkTWFya1NwZWxs
aW5nICYmIHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgcmVzdWx0
TG9jYXRpb24gPj0gc3BlbGxpbmdQYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpICYmIHJlc3VsdExv
Y2F0aW9uICsgcmVzdWx0TGVuZ3RoIDw9IHNwZWxsaW5nUmFuZ2VFbmRPZmZzZXQgJiYgIXJlc3Vs
dEVuZHNBdEFtYmlndW91c0JvdW5kYXJ5KSB7CisgICAgICAgIGlmIChzaG91bGRNYXJrU3BlbGxp
bmcgJiYgcmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiByZXN1bHRM
b2NhdGlvbiA+PSBwYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpICYmIHJlc3VsdExvY2F0aW9uICsg
cmVzdWx0TGVuZ3RoIDw9IHNwZWxsaW5nUmFuZ2VFbmRPZmZzZXQgJiYgIXJlc3VsdEVuZHNBdEFt
YmlndW91c0JvdW5kYXJ5KSB7CiAgICAgICAgICAgICBBU1NFUlQocmVzdWx0TGVuZ3RoID4gMCAm
JiByZXN1bHRMb2NhdGlvbiA+PSAwKTsKLSAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gbWlzc3Bl
bGxpbmdSYW5nZSA9IHNwZWxsaW5nUGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9uLCBy
ZXN1bHRMZW5ndGgpOworICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiBtaXNzcGVsbGluZ1Jhbmdl
ID0gcGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9uLCByZXN1bHRMZW5ndGgpOwogICAg
ICAgICAgICAgaWYgKCFtX3NwZWxsaW5nQ29ycmVjdG9yLT5pc1NwZWxsaW5nTWFya2VyQWxsb3dl
ZChtaXNzcGVsbGluZ1JhbmdlKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIG1pc3NwZWxsaW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtl
cnMoKS0+YWRkTWFya2VyKG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpT
cGVsbGluZyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkTWFya0dyYW1tYXIgJiYgcmVzdWx0
LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyICYmIGdyYW1tYXJQYXJhZ3JhcGguY2hl
Y2tpbmdSYW5nZUNvdmVycyhyZXN1bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3RoKSkgeworICAgICAg
ICB9IGVsc2UgaWYgKHNob3VsZE1hcmtHcmFtbWFyICYmIHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hl
Y2tpbmdUeXBlR3JhbW1hciAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZUNvdmVycyhyZXN1bHRM
b2NhdGlvbiwgcmVzdWx0TGVuZ3RoKSkgewogICAgICAgICAgICAgQVNTRVJUKHJlc3VsdExlbmd0
aCA+IDAgJiYgcmVzdWx0TG9jYXRpb24gPj0gMCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGogPSAwOyBqIDwgcmVzdWx0LT5kZXRhaWxzLnNpemUoKTsgaisrKSB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgR3JhbW1hckRldGFpbCogZGV0YWlsID0gJnJlc3VsdC0+ZGV0YWlsc1tqXTsKICAg
ICAgICAgICAgICAgICBBU1NFUlQoZGV0YWlsLT5sZW5ndGggPiAwICYmIGRldGFpbC0+bG9jYXRp
b24gPj0gMCk7Ci0gICAgICAgICAgICAgICAgaWYgKGdyYW1tYXJQYXJhZ3JhcGguY2hlY2tpbmdS
YW5nZUNvdmVycyhyZXN1bHRMb2NhdGlvbiArIGRldGFpbC0+bG9jYXRpb24sIGRldGFpbC0+bGVu
Z3RoKSkgewotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IGJhZEdyYW1tYXJSYW5n
ZSA9IGdyYW1tYXJQYXJhZ3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24gKyBkZXRhaWwtPmxv
Y2F0aW9uLCBkZXRhaWwtPmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFncmFwaC5j
aGVja2luZ1JhbmdlQ292ZXJzKHJlc3VsdExvY2F0aW9uICsgZGV0YWlsLT5sb2NhdGlvbiwgZGV0
YWlsLT5sZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gYmFkR3Jh
bW1hclJhbmdlID0gcGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9uICsgZGV0YWlsLT5s
b2NhdGlvbiwgZGV0YWlsLT5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICBiYWRHcmFtbWFy
UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2Vy
KGJhZEdyYW1tYXJSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGRldGFpbC0+
dXNlckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAg
ICAgIH0gZWxzZSBpZiAocmVzdWx0TG9jYXRpb24gKyByZXN1bHRMZW5ndGggPD0gc3BlbGxpbmdS
YW5nZUVuZE9mZnNldCAmJiByZXN1bHRMb2NhdGlvbiArIHJlc3VsdExlbmd0aCA+PSBzcGVsbGlu
Z1BhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCkKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRMb2Nh
dGlvbiArIHJlc3VsdExlbmd0aCA8PSBzcGVsbGluZ1JhbmdlRW5kT2Zmc2V0ICYmIHJlc3VsdExv
Y2F0aW9uICsgcmVzdWx0TGVuZ3RoID49IHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCkKICAgICAg
ICAgICAgICAgICAgICAgJiYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlTGluawog
ICAgICAgICAgICAgICAgICAgICB8fCByZXN1bHQtPnR5cGUgPT0gVGV4dENoZWNraW5nVHlwZVF1
b3RlCiAgICAgICAgICAgICAgICAgICAgIHx8IHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdU
eXBlRGFzaApAQCAtMjExNyw3ICsyMTEwLDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNl
Rm9yKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYKICAg
ICAgICAgICAgIC8vIDIuIFRoZSByZXN1bHQgZG9lc24ndCBlbmQgYXQgYW4gYW1iaWd1b3VzIGJv
dW5kYXJ5LgogICAgICAgICAgICAgLy8gICAgKEZJWE1FOiB0aGlzIGlzIHJlcXVpcmVkIHVudGls
IDY4NTMwMjcgaXMgZml4ZWQgYW5kIHRleHQgY2hlY2tpbmcgY2FuIGRvIHRoaXMgZm9yIHVzCiAg
ICAgICAgICAgICBib29sIGRvUmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudExlbmd0aCA+IDAgJiYg
IXJlc3VsdEVuZHNBdEFtYmlndW91c0JvdW5kYXJ5OwotICAgICAgICAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZVRvUmVwbGFjZSA9IHNwZWxsaW5nUGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0
aW9uLCByZXN1bHRMZW5ndGgpOworICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvUmVw
bGFjZSA9IHBhcmFncmFwaC5zdWJyYW5nZShyZXN1bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3RoKTsK
ICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uVG9SZXBsYWNlKHJhbmdlVG9S
ZXBsYWNlLmdldCgpLCBET1dOU1RSRUFNKTsKIAogICAgICAgICAgICAgLy8gYWRkaW5nIGxpbmtz
IHNob3VsZCBiZSBkb25lIG9ubHkgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhleSBhcmUgdHlwZWQKQEAg
LTIxNzUsMTMgKzIxNjgsMTMgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRleHRD
aGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYKIAogICAgICAgICAg
ICAgICAgIC8vIEFkZCBhIG1hcmtlciBzbyB0aGF0IGNvcnJlY3Rpb25zIGNhbiBlYXNpbHkgYmUg
dW5kb25lIGFuZCB3b24ndCBiZSByZS1jb3JyZWN0ZWQuCiAgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgICAgICAg
ICAgICAgbV9zcGVsbGluZ0NvcnJlY3Rvci0+bWFya0NvcnJlY3Rpb24oc3BlbGxpbmdQYXJhZ3Jh
cGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24sIHJlcGxhY2VtZW50TGVuZ3RoKSwgcmVwbGFjZWRT
dHJpbmcpOworICAgICAgICAgICAgICAgICAgICBtX3NwZWxsaW5nQ29ycmVjdG9yLT5tYXJrQ29y
cmVjdGlvbihwYXJhZ3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24sIHJlcGxhY2VtZW50TGVu
Z3RoKSwgcmVwbGFjZWRTdHJpbmcpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWQpIHsKLSAgICAgICAgVGV4dENoZWNraW5nUGFyYWdy
YXBoIGV4dGVuZGVkUGFyYWdyYXBoKHNwZWxsaW5nUGFyYWdyYXBoKTsKKyAgICAgICAgVGV4dENo
ZWNraW5nUGFyYWdyYXBoIGV4dGVuZGVkUGFyYWdyYXBoKHBhcmFncmFwaCk7CiAgICAgICAgIC8v
IFJlc3RvcmUgdGhlIGNhcmV0IHBvc2l0aW9uIGlmIHdlIGhhdmUgbWFkZSBhbnkgcmVwbGFjZW1l
bnRzCiAgICAgICAgIGV4dGVuZGVkUGFyYWdyYXBoLmV4cGFuZFJhbmdlVG9OZXh0RW5kKCk7CiAg
ICAgICAgIGlmIChyZXN0b3JlU2VsZWN0aW9uQWZ0ZXJDaGFuZ2UgJiYgc2VsZWN0aW9uT2Zmc2V0
ID49IDAgJiYgc2VsZWN0aW9uT2Zmc2V0IDw9IGV4dGVuZGVkUGFyYWdyYXBoLnJhbmdlTGVuZ3Ro
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDg2Y2FlNGQ5OWZlZDZkODE2MTIzNmMz
MGJiMWJhNTFlNGM0N2Y4YmYuLjVhZWY4YTkwMDNiNzc4MjYyNzNkODkxYTcxMjUzNjk1MjA5MDZk
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3MoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFJlZlB0
cjxSYW5nZT4mIGZpcnN0TWlzc3BlbGxpbmdSYW5nZSk7CiAgICAgdm9pZCBtYXJrQmFkR3JhbW1h
cihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgdm9pZCBtYXJrTWlzc3BlbGxpbmdzQW5k
QmFkR3JhbW1hcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzcGVsbGluZ1NlbGVjdGlvbiwgYm9v
bCBtYXJrR3JhbW1hciwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZ3JhbW1hclNlbGVjdGlvbik7
CisgICAgdm9pZCBtYXJrQW5kUmVwbGFjZUZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzaywgY29uc3Qg
VmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1Jh
bmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSk7CiAKICNpZiBVU0UoQVVUT01B
VElDX1RFWFRfUkVQTEFDRU1FTlQpCiAgICAgdm9pZCB1cHBlcmNhc2VXb3JkKCk7CkBAIC00MDUs
NyArNDA2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQqKTsKICAgICB2b2lkIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJh
dGlvbigpOwogICAgIHZvaWQgbWFya01pc3NwZWxsaW5nc09yQmFkR3JhbW1hcihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgYm9vbCBjaGVja1NwZWxsaW5nLCBSZWZQdHI8UmFuZ2U+JiBmaXJzdE1p
c3NwZWxsaW5nUmFuZ2UpOwotICAgIHZvaWQgbWFya0FuZFJlcGxhY2VGb3IoVGV4dENoZWNraW5n
VHlwZU1hc2ssIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiwgY29uc3QgVGV4dENo
ZWNraW5nUGFyYWdyYXBoJiBzcGVsbGluZ1BhcmFncmFwaCwgY29uc3QgVGV4dENoZWNraW5nUGFy
YWdyYXBoJiBncmFtbWFyUGFyYWdyYXBoKTsKICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayByZXNv
bHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZU1hc2spOwogCiAgICAgdm9p
ZCBzZWxlY3RDb21wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hl
Y2tpbmdIZWxwZXIuY3BwCmluZGV4IDk3NjFjNzU0NGU0YTNiYjNhZjE1NDFmYWFhODhjOGRjNmVj
MTk3ZGQuLmQ1NTM4MzAzZDBiYzdiOWY3NDNmNTJmODk4ZWJhYjUzYjIyMDM3MWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKQEAgLTExNiw2ICsx
MTYsMTUgQEAgVGV4dENoZWNraW5nUGFyYWdyYXBoOjpUZXh0Q2hlY2tpbmdQYXJhZ3JhcGgoUGFz
c1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSkKIHsKIH0KIAorVGV4dENoZWNraW5nUGFyYWdy
YXBoOjpUZXh0Q2hlY2tpbmdQYXJhZ3JhcGgoUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpCisgICAgOiBtX2NoZWNraW5nUmFu
Z2UoY2hlY2tpbmdSYW5nZSkKKyAgICAsIG1fcGFyYWdyYXBoUmFuZ2UocGFyYWdyYXBoUmFuZ2Up
CisgICAgLCBtX2NoZWNraW5nU3RhcnQoLTEpCisgICAgLCBtX2NoZWNraW5nRW5kKC0xKQorICAg
ICwgbV9jaGVja2luZ0xlbmd0aCgtMSkKK3sKK30KKwogVGV4dENoZWNraW5nUGFyYWdyYXBoOjp+
VGV4dENoZWNraW5nUGFyYWdyYXBoKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRDaGVja2luZ0hlbHBlci5oCmluZGV4IDAxYzg0Y2ZiMmJkMzZjZWE1NmQ3Y2I0YmZlMDk5MjFj
NDMyZjZiYWMuLjQ3YTYxYjM2MDk5M2JiYWM5MDk0MTljZTlhYzA4MDRmMGI4Y2RlNTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaApAQCAtMzEsNiArMzEs
NyBAQCBjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFRleHRDaGVja2luZ1BhcmFncmFwaCB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgVGV4dENoZWNraW5nUGFyYWdyYXBoKFBhc3NSZWZQdHI8UmFuZ2U+
IGNoZWNraW5nUmFuZ2UpOworICAgIFRleHRDaGVja2luZ1BhcmFncmFwaChQYXNzUmVmUHRyPFJh
bmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSk7CiAg
ICAgflRleHRDaGVja2luZ1BhcmFncmFwaCgpOwogCiAgICAgaW50IHJhbmdlTGVuZ3RoKCkgY29u
c3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118300</attachid>
            <date>2011-12-07 18:07:56 -0800</date>
            <delta_ts>2011-12-07 20:26:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74035-20111208110755.patch</filename>
            <type>text/plain</type>
            <size>13808</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNzU1Cm5ldyBt
b2RlIDEwMDY0NAppbmRleCBlMWQ2OTA1YjA2YTg1YzU5ZTY4MzRiOGUyMmQ2MTg3YmEzNGY4NzEy
Li5jOGJjZDU5NGI2NWRiMmQ2NmFkYTc0NjY4ZTc5ODA1N2IyYTVhMDJhCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMS0xMi0wNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29t
PgorCisgICAgICAgIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3Igc2hvdWxkIHRha2UgUmFuZ2Ug
aW5zdGVhZCBvZiBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGguCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEhh
amltZSBNb3JpdGEuCisKKyAgICAgICAgRWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvciB0YWtlcyBj
aGVrY2luZyByYW5nZSBhbmQgcGFyYWdyYXBoIHJhbmdlIGluc3RlYWQgb2YKKyAgICAgICAgc3Bl
bGxpbmcgcGFyYWdyYXBoIGFuZCBncmFtbWFyIHBhcmFncmFwaC4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NB
bmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQW5k
UmVwbGFjZUZvcik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdQYXJhZ3JhcGg6OlRleHRDaGVja2luZ1BhcmFncmFwaCk6CisgICAgICAgICogZWRpdGluZy9U
ZXh0Q2hlY2tpbmdIZWxwZXIuaDoKKwogMjAxMS0xMi0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEwMjI2Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAzYjEwYTBkNDY5M2UyZDZh
MjYzODE4MDRlZTkzMWE3ZmYwMTg2YmZmLi5kYTZmNTk2Y2FiNDc5MDIzODFjM2MyM2UyMTgwYjc3
NDI2ZjNmOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDEwLDM0ICsyMDEw
LDI3IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFu
Z2VzKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDCiAgICAgaWYgKCFpc1NwZWxsQ2hlY2tpbmdF
bmFibGVkRm9yKGVkaXRhYmxlTm9kZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRleHRDaGVj
a2luZ1BhcmFncmFwaCBzcGVsbGluZ1BhcmFncmFwaChzcGVsbGluZ1JhbmdlKTsKLSAgICBUZXh0
Q2hlY2tpbmdQYXJhZ3JhcGggZ3JhbW1hclBhcmFncmFwaChzaG91bGRNYXJrR3JhbW1hciA/IGdy
YW1tYXJSYW5nZSA6IDApOwotCi0gICAgaWYgKHNob3VsZE1hcmtHcmFtbWFyID8gKHNwZWxsaW5n
UGFyYWdyYXBoLmlzUmFuZ2VFbXB0eSgpICYmIGdyYW1tYXJQYXJhZ3JhcGguaXNFbXB0eSgpKSA6
IHNwZWxsaW5nUGFyYWdyYXBoLmlzRW1wdHkoKSkKKyAgICBSYW5nZSogcmFuZ2VUb0NoZWNrID0g
c2hvdWxkTWFya0dyYW1tYXIgPyBncmFtbWFyUmFuZ2UgOiBzcGVsbGluZ1JhbmdlOworICAgIFRl
eHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGhUb0NoZWNrKHJhbmdlVG9DaGVjayk7CisgICAg
aWYgKHBhcmFncmFwaFRvQ2hlY2suaXNSYW5nZUVtcHR5KCkgfHwgcGFyYWdyYXBoVG9DaGVjay5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgYXN5bmNocm9ub3VzID0gbV9m
cmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgJiYgIXNob3VsZFNob3dDb3JyZWN0aW9uUGFu
ZWw7CiAgICAgaWYgKGFzeW5jaHJvbm91cykgewotICAgICAgICBpZiAoc2hvdWxkTWFya0dyYW1t
YXIpCi0gICAgICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlc29s
dmVUZXh0Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgZ3JhbW1hclBhcmFn
cmFwaC5wYXJhZ3JhcGhSYW5nZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9zcGVs
bENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2so
dGV4dENoZWNraW5nT3B0aW9ucyksIHNwZWxsaW5nUGFyYWdyYXBoLnBhcmFncmFwaFJhbmdlKCkp
OworICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlc29sdmVUZXh0
Q2hlY2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgcGFyYWdyYXBoVG9DaGVjay5w
YXJhZ3JhcGhSYW5nZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHM7Ci0gICAgaWYgKHNob3VsZE1hcmtHcmFtbWFyKQot
ICAgICAgICBjaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0Q2hlY2tlcigpLCBncmFtbWFyUGFyYWdy
YXBoLnRleHRDaGFyYWN0ZXJzKCksIGdyYW1tYXJQYXJhZ3JhcGgudGV4dExlbmd0aCgpLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVRleHRDaGVj
a2luZ1R5cGVNYXNrKHRleHRDaGVja2luZ09wdGlvbnMpLCByZXN1bHRzKTsKLSAgICBlbHNlCi0g
ICAgICAgIGNoZWNrVGV4dE9mUGFyYWdyYXBoKHRleHRDaGVja2VyKCksIHNwZWxsaW5nUGFyYWdy
YXBoLnRleHRDaGFyYWN0ZXJzKCksIHNwZWxsaW5nUGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVUZXh0Q2hl
Y2tpbmdUeXBlTWFzayh0ZXh0Q2hlY2tpbmdPcHRpb25zKSwgcmVzdWx0cyk7Ci0KLSAgICBtYXJr
QW5kUmVwbGFjZUZvcih0ZXh0Q2hlY2tpbmdPcHRpb25zLCByZXN1bHRzLCBzcGVsbGluZ1BhcmFn
cmFwaCwgZ3JhbW1hclBhcmFncmFwaCk7CisgICAgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4dENo
ZWNrZXIoKSwgcGFyYWdyYXBoVG9DaGVjay50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGhUb0No
ZWNrLnRleHRMZW5ndGgoKSwKKyAgICAgICAgcmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKHRl
eHRDaGVja2luZ09wdGlvbnMpLCByZXN1bHRzKTsKKyAgICBtYXJrQW5kUmVwbGFjZUZvcih0ZXh0
Q2hlY2tpbmdPcHRpb25zLCByZXN1bHRzLCByYW5nZVRvQ2hlY2ssIHBhcmFncmFwaFRvQ2hlY2su
cGFyYWdyYXBoUmFuZ2UoKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcihU
ZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBjb25zdCBWZWN0b3I8VGV4
dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cywgY29uc3QgVGV4dENoZWNraW5nUGFyYWdyYXBoJiBz
cGVsbGluZ1BhcmFncmFwaCwgY29uc3QgVGV4dENoZWNraW5nUGFyYWdyYXBoJiBncmFtbWFyUGFy
YWdyYXBoKQordm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRleHRDaGVja2luZ1R5cGVN
YXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
JiByZXN1bHRzLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJh
bmdlPiBwYXJhZ3JhcGhSYW5nZSkKIHsKKyAgICBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGggcGFyYWdy
YXBoKGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlKTsKKwogICAgIGJvb2wgc2hvdWxkTWFy
a1NwZWxsaW5nID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVTcGVsbGlu
ZzsKICAgICBib29sIHNob3VsZE1hcmtHcmFtbWFyID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRl
eHRDaGVja2luZ1R5cGVHcmFtbWFyOwogICAgIGJvb2wgc2hvdWxkUGVyZm9ybVJlcGxhY2VtZW50
ID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudDsKQEAg
LTIwNTUsMTEgKzIwNDgsMTEgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRleHRD
aGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYKICAgICAgICAgaWYg
KG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb25UeXBlKCkgPT0gVmlzaWJsZVNlbGVjdGlv
bjo6Q2FyZXRTZWxlY3Rpb24pIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gc2F2ZSB0aGUg
Y2FyZXQgcG9zaXRpb24gc28gd2UgY2FuIHJlc3RvcmUgaXQgbGF0ZXIgaWYgbmVlZGVkCiAgICAg
ICAgICAgICBQb3NpdGlvbiBjYXJldFBvc2l0aW9uID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPmVu
ZCgpOwotICAgICAgICAgICAgc2VsZWN0aW9uT2Zmc2V0ID0gc3BlbGxpbmdQYXJhZ3JhcGgub2Zm
c2V0VG8oY2FyZXRQb3NpdGlvbiwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBz
ZWxlY3Rpb25PZmZzZXQgPSBwYXJhZ3JhcGgub2Zmc2V0VG8oY2FyZXRQb3NpdGlvbiwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICByZXN0b3JlU2VsZWN0aW9uQWZ0ZXJDaGFuZ2Ug
PSB0cnVlOwotICAgICAgICAgICAgaWYgKHNlbGVjdGlvbk9mZnNldCA+IDAgJiYgKHNlbGVjdGlv
bk9mZnNldCA+IHNwZWxsaW5nUGFyYWdyYXBoLnRleHRMZW5ndGgoKSB8fCBzcGVsbGluZ1BhcmFn
cmFwaC50ZXh0Q2hhckF0KHNlbGVjdGlvbk9mZnNldCAtIDEpID09IG5ld2xpbmVDaGFyYWN0ZXIp
KQorICAgICAgICAgICAgaWYgKHNlbGVjdGlvbk9mZnNldCA+IDAgJiYgKHNlbGVjdGlvbk9mZnNl
dCA+IHBhcmFncmFwaC50ZXh0TGVuZ3RoKCkgfHwgcGFyYWdyYXBoLnRleHRDaGFyQXQoc2VsZWN0
aW9uT2Zmc2V0IC0gMSkgPT0gbmV3bGluZUNoYXJhY3RlcikpCiAgICAgICAgICAgICAgICAgYWRq
dXN0U2VsZWN0aW9uRm9yUGFyYWdyYXBoQm91bmRhcmllcyA9IHRydWU7Ci0gICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uT2Zmc2V0ID4gMCAmJiBzZWxlY3Rpb25PZmZzZXQgPD0gc3BlbGxpbmdQYXJh
Z3JhcGgudGV4dExlbmd0aCgpICYmIGlzQW1iaWd1b3VzQm91bmRhcnlDaGFyYWN0ZXIoc3BlbGxp
bmdQYXJhZ3JhcGgudGV4dENoYXJBdChzZWxlY3Rpb25PZmZzZXQgLSAxKSkpCisgICAgICAgICAg
ICBpZiAoc2VsZWN0aW9uT2Zmc2V0ID4gMCAmJiBzZWxlY3Rpb25PZmZzZXQgPD0gcGFyYWdyYXBo
LnRleHRMZW5ndGgoKSAmJiBpc0FtYmlndW91c0JvdW5kYXJ5Q2hhcmFjdGVyKHBhcmFncmFwaC50
ZXh0Q2hhckF0KHNlbGVjdGlvbk9mZnNldCAtIDEpKSkKICAgICAgICAgICAgICAgICBhbWJpZ3Vv
dXNCb3VuZGFyeU9mZnNldCA9IHNlbGVjdGlvbk9mZnNldCAtIDE7CiAgICAgICAgIH0KICAgICB9
CkBAIC0yMDcxLDcgKzIwNjQsNyBAQCB2b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoVGV4
dENoZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgY29uc3QgVgogICAgIGludCBv
ZmZzZXREdWVUb1JlcGxhY2VtZW50ID0gMDsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCByZXN1bHRzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGludCBzcGVsbGluZ1JhbmdlRW5kT2Zm
c2V0ID0gc3BlbGxpbmdQYXJhZ3JhcGguY2hlY2tpbmdFbmQoKSArIG9mZnNldER1ZVRvUmVwbGFj
ZW1lbnQ7CisgICAgICAgIGludCBzcGVsbGluZ1JhbmdlRW5kT2Zmc2V0ID0gcGFyYWdyYXBoLmNo
ZWNraW5nRW5kKCkgKyBvZmZzZXREdWVUb1JlcGxhY2VtZW50OwogICAgICAgICBjb25zdCBUZXh0
Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpbnQgcmVzdWx0
TG9jYXRpb24gPSByZXN1bHQtPmxvY2F0aW9uICsgb2Zmc2V0RHVlVG9SZXBsYWNlbWVudDsKICAg
ICAgICAgaW50IHJlc3VsdExlbmd0aCA9IHJlc3VsdC0+bGVuZ3RoOwpAQCAtMjA4MiwyMyArMjA3
NSwyMyBAQCB2b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoVGV4dENoZWNraW5nVHlwZU1h
c2sgdGV4dENoZWNraW5nT3B0aW9ucywgY29uc3QgVgogICAgICAgICAvLyAyLiBSZXN1bHQgZmFs
bHMgd2l0aGluIHNwZWxsaW5nUmFuZ2UuCiAgICAgICAgIC8vIDMuIFRoZSB3b3JkIGluIHF1ZXN0
aW9uIGRvZXNuJ3QgZW5kIGF0IGFuIGFtYmlndW91cyBib3VuZGFyeS4gRm9yIGluc3RhbmNlLCB3
ZSB3b3VsZCBub3QgbWFyawogICAgICAgICAvLyAgICAid291bGRuJyIgYXMgbWlzc3BlbGxlZCBy
aWdodCBhZnRlciBhcG9zdHJvcGhlIGlzIHR5cGVkLgotICAgICAgICBpZiAoc2hvdWxkTWFya1Nw
ZWxsaW5nICYmIHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgcmVz
dWx0TG9jYXRpb24gPj0gc3BlbGxpbmdQYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpICYmIHJlc3Vs
dExvY2F0aW9uICsgcmVzdWx0TGVuZ3RoIDw9IHNwZWxsaW5nUmFuZ2VFbmRPZmZzZXQgJiYgIXJl
c3VsdEVuZHNBdEFtYmlndW91c0JvdW5kYXJ5KSB7CisgICAgICAgIGlmIChzaG91bGRNYXJrU3Bl
bGxpbmcgJiYgcmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiByZXN1
bHRMb2NhdGlvbiA+PSBwYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpICYmIHJlc3VsdExvY2F0aW9u
ICsgcmVzdWx0TGVuZ3RoIDw9IHNwZWxsaW5nUmFuZ2VFbmRPZmZzZXQgJiYgIXJlc3VsdEVuZHNB
dEFtYmlndW91c0JvdW5kYXJ5KSB7CiAgICAgICAgICAgICBBU1NFUlQocmVzdWx0TGVuZ3RoID4g
MCAmJiByZXN1bHRMb2NhdGlvbiA+PSAwKTsKLSAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gbWlz
c3BlbGxpbmdSYW5nZSA9IHNwZWxsaW5nUGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9u
LCByZXN1bHRMZW5ndGgpOworICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiBtaXNzcGVsbGluZ1Jh
bmdlID0gcGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9uLCByZXN1bHRMZW5ndGgpOwog
ICAgICAgICAgICAgaWYgKCFtX3NwZWxsaW5nQ29ycmVjdG9yLT5pc1NwZWxsaW5nTWFya2VyQWxs
b3dlZChtaXNzcGVsbGluZ1JhbmdlKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIG1pc3NwZWxsaW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1h
cmtlcnMoKS0+YWRkTWFya2VyKG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2Vy
OjpTcGVsbGluZyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkTWFya0dyYW1tYXIgJiYgcmVz
dWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyICYmIGdyYW1tYXJQYXJhZ3JhcGgu
Y2hlY2tpbmdSYW5nZUNvdmVycyhyZXN1bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3RoKSkgeworICAg
ICAgICB9IGVsc2UgaWYgKHNob3VsZE1hcmtHcmFtbWFyICYmIHJlc3VsdC0+dHlwZSA9PSBUZXh0
Q2hlY2tpbmdUeXBlR3JhbW1hciAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZUNvdmVycyhyZXN1
bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3RoKSkgewogICAgICAgICAgICAgQVNTRVJUKHJlc3VsdExl
bmd0aCA+IDAgJiYgcmVzdWx0TG9jYXRpb24gPj0gMCk7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGogPSAwOyBqIDwgcmVzdWx0LT5kZXRhaWxzLnNpemUoKTsgaisrKSB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgR3JhbW1hckRldGFpbCogZGV0YWlsID0gJnJlc3VsdC0+ZGV0YWlsc1tqXTsK
ICAgICAgICAgICAgICAgICBBU1NFUlQoZGV0YWlsLT5sZW5ndGggPiAwICYmIGRldGFpbC0+bG9j
YXRpb24gPj0gMCk7Ci0gICAgICAgICAgICAgICAgaWYgKGdyYW1tYXJQYXJhZ3JhcGguY2hlY2tp
bmdSYW5nZUNvdmVycyhyZXN1bHRMb2NhdGlvbiArIGRldGFpbC0+bG9jYXRpb24sIGRldGFpbC0+
bGVuZ3RoKSkgewotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IGJhZEdyYW1tYXJS
YW5nZSA9IGdyYW1tYXJQYXJhZ3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24gKyBkZXRhaWwt
PmxvY2F0aW9uLCBkZXRhaWwtPmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFncmFw
aC5jaGVja2luZ1JhbmdlQ292ZXJzKHJlc3VsdExvY2F0aW9uICsgZGV0YWlsLT5sb2NhdGlvbiwg
ZGV0YWlsLT5sZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gYmFk
R3JhbW1hclJhbmdlID0gcGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExvY2F0aW9uICsgZGV0YWls
LT5sb2NhdGlvbiwgZGV0YWlsLT5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICBiYWRHcmFt
bWFyUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFy
a2VyKGJhZEdyYW1tYXJSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGRldGFp
bC0+dXNlckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSBpZiAocmVzdWx0TG9jYXRpb24gKyByZXN1bHRMZW5ndGggPD0gc3BlbGxp
bmdSYW5nZUVuZE9mZnNldCAmJiByZXN1bHRMb2NhdGlvbiArIHJlc3VsdExlbmd0aCA+PSBzcGVs
bGluZ1BhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCkKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRM
b2NhdGlvbiArIHJlc3VsdExlbmd0aCA8PSBzcGVsbGluZ1JhbmdlRW5kT2Zmc2V0ICYmIHJlc3Vs
dExvY2F0aW9uICsgcmVzdWx0TGVuZ3RoID49IHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCkKICAg
ICAgICAgICAgICAgICAgICAgJiYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlTGlu
awogICAgICAgICAgICAgICAgICAgICB8fCByZXN1bHQtPnR5cGUgPT0gVGV4dENoZWNraW5nVHlw
ZVF1b3RlCiAgICAgICAgICAgICAgICAgICAgIHx8IHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tp
bmdUeXBlRGFzaApAQCAtMjExNyw3ICsyMTEwLDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBs
YWNlRm9yKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYK
ICAgICAgICAgICAgIC8vIDIuIFRoZSByZXN1bHQgZG9lc24ndCBlbmQgYXQgYW4gYW1iaWd1b3Vz
IGJvdW5kYXJ5LgogICAgICAgICAgICAgLy8gICAgKEZJWE1FOiB0aGlzIGlzIHJlcXVpcmVkIHVu
dGlsIDY4NTMwMjcgaXMgZml4ZWQgYW5kIHRleHQgY2hlY2tpbmcgY2FuIGRvIHRoaXMgZm9yIHVz
CiAgICAgICAgICAgICBib29sIGRvUmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudExlbmd0aCA+IDAg
JiYgIXJlc3VsdEVuZHNBdEFtYmlndW91c0JvdW5kYXJ5OwotICAgICAgICAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZVRvUmVwbGFjZSA9IHNwZWxsaW5nUGFyYWdyYXBoLnN1YnJhbmdlKHJlc3VsdExv
Y2F0aW9uLCByZXN1bHRMZW5ndGgpOworICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRv
UmVwbGFjZSA9IHBhcmFncmFwaC5zdWJyYW5nZShyZXN1bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3Ro
KTsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uVG9SZXBsYWNlKHJhbmdl
VG9SZXBsYWNlLmdldCgpLCBET1dOU1RSRUFNKTsKIAogICAgICAgICAgICAgLy8gYWRkaW5nIGxp
bmtzIHNob3VsZCBiZSBkb25lIG9ubHkgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhleSBhcmUgdHlwZWQK
QEAgLTIxNzUsMTMgKzIxNjgsMTMgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFRl
eHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIGNvbnN0IFYKIAogICAgICAg
ICAgICAgICAgIC8vIEFkZCBhIG1hcmtlciBzbyB0aGF0IGNvcnJlY3Rpb25zIGNhbiBlYXNpbHkg
YmUgdW5kb25lIGFuZCB3b24ndCBiZSByZS1jb3JyZWN0ZWQuCiAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgICAg
ICAgICAgICAgbV9zcGVsbGluZ0NvcnJlY3Rvci0+bWFya0NvcnJlY3Rpb24oc3BlbGxpbmdQYXJh
Z3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24sIHJlcGxhY2VtZW50TGVuZ3RoKSwgcmVwbGFj
ZWRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICBtX3NwZWxsaW5nQ29ycmVjdG9yLT5tYXJr
Q29ycmVjdGlvbihwYXJhZ3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24sIHJlcGxhY2VtZW50
TGVuZ3RoKSwgcmVwbGFjZWRTdHJpbmcpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWQpIHsKLSAgICAgICAgVGV4dENoZWNraW5nUGFy
YWdyYXBoIGV4dGVuZGVkUGFyYWdyYXBoKHNwZWxsaW5nUGFyYWdyYXBoKTsKKyAgICAgICAgVGV4
dENoZWNraW5nUGFyYWdyYXBoIGV4dGVuZGVkUGFyYWdyYXBoKHBhcmFncmFwaCk7CiAgICAgICAg
IC8vIFJlc3RvcmUgdGhlIGNhcmV0IHBvc2l0aW9uIGlmIHdlIGhhdmUgbWFkZSBhbnkgcmVwbGFj
ZW1lbnRzCiAgICAgICAgIGV4dGVuZGVkUGFyYWdyYXBoLmV4cGFuZFJhbmdlVG9OZXh0RW5kKCk7
CiAgICAgICAgIGlmIChyZXN0b3JlU2VsZWN0aW9uQWZ0ZXJDaGFuZ2UgJiYgc2VsZWN0aW9uT2Zm
c2V0ID49IDAgJiYgc2VsZWN0aW9uT2Zmc2V0IDw9IGV4dGVuZGVkUGFyYWdyYXBoLnJhbmdlTGVu
Z3RoKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDg2Y2FlNGQ5OWZlZDZkODE2MTIz
NmMzMGJiMWJhNTFlNGM0N2Y4YmYuLmYwOWZiZjU5ODE3ZTIxMDZhODRmODllMjgzYzM5ZTZiMDA1
OTliMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNjIsNyArNjIsNiBAQCBjbGFzcyBT
aW1wbGVGb250RGF0YTsKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFRleHQ7CiBjbGFzcyBU
ZXh0Q2hlY2tlckNsaWVudDsKLWNsYXNzIFRleHRDaGVja2luZ1BhcmFncmFwaDsKIHN0cnVjdCBU
ZXh0Q2hlY2tpbmdSZXN1bHQ7CiBjbGFzcyBUZXh0RXZlbnQ7CiAKQEAgLTIyMiw2ICsyMjEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrTWlzc3BlbGxpbmdzKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBSZWZQdHI8UmFuZ2U+JiBmaXJzdE1pc3NwZWxsaW5nUmFuZ2UpOwogICAgIHZvaWQgbWFy
a0JhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogICAgIHZvaWQgbWFya01pc3Nw
ZWxsaW5nc0FuZEJhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3BlbGxpbmdTZWxl
Y3Rpb24sIGJvb2wgbWFya0dyYW1tYXIsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGdyYW1tYXJT
ZWxlY3Rpb24pOworICAgIHZvaWQgbWFya0FuZFJlcGxhY2VGb3IoVGV4dENoZWNraW5nVHlwZU1h
c2ssIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiwgUGFzc1JlZlB0cjxSYW5nZT4g
Y2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOwogCiAjaWYg
VVNFKEFVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5UKQogICAgIHZvaWQgdXBwZXJjYXNlV29yZCgp
OwpAQCAtNDA1LDcgKzQwNSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChQYXN0ZWJvYXJkKik7CiAgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25BZnRlckVk
aXRpbmdPcGVyYXRpb24oKTsKICAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3NPckJhZEdyYW1tYXIo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgY2hlY2tTcGVsbGluZywgUmVmUHRyPFJhbmdl
PiYgZmlyc3RNaXNzcGVsbGluZ1JhbmdlKTsKLSAgICB2b2lkIG1hcmtBbmRSZXBsYWNlRm9yKFRl
eHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYsIGNv
bnN0IFRleHRDaGVja2luZ1BhcmFncmFwaCYgc3BlbGxpbmdQYXJhZ3JhcGgsIGNvbnN0IFRleHRD
aGVja2luZ1BhcmFncmFwaCYgZ3JhbW1hclBhcmFncmFwaCk7CiAgICAgVGV4dENoZWNraW5nVHlw
ZU1hc2sgcmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVNYXNrKTsK
IAogICAgIHZvaWQgc2VsZWN0Q29tcG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCA5NzYxYzc1NDRlNGEzYmIzYWYxNTQxZmFh
YTg4YzhkYzZlYzE5N2RkLi5kNTUzODMwM2QwYmM3YjlmNzQzZjUyZjg5OGViYWI1M2IyMjAzNzFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBA
IC0xMTYsNiArMTE2LDE1IEBAIFRleHRDaGVja2luZ1BhcmFncmFwaDo6VGV4dENoZWNraW5nUGFy
YWdyYXBoKFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UpCiB7CiB9CiAKK1RleHRDaGVj
a2luZ1BhcmFncmFwaDo6VGV4dENoZWNraW5nUGFyYWdyYXBoKFBhc3NSZWZQdHI8UmFuZ2U+IGNo
ZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorICAgIDogbV9j
aGVja2luZ1JhbmdlKGNoZWNraW5nUmFuZ2UpCisgICAgLCBtX3BhcmFncmFwaFJhbmdlKHBhcmFn
cmFwaFJhbmdlKQorICAgICwgbV9jaGVja2luZ1N0YXJ0KC0xKQorICAgICwgbV9jaGVja2luZ0Vu
ZCgtMSkKKyAgICAsIG1fY2hlY2tpbmdMZW5ndGgoLTEpCit7Cit9CisKIFRleHRDaGVja2luZ1Bh
cmFncmFwaDo6flRleHRDaGVja2luZ1BhcmFncmFwaCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaAppbmRleCAwMWM4NGNmYjJiZDM2Y2VhNTZkN2Ni
NGJmZTA5OTIxYzQzMmY2YmFjLi40N2E2MWIzNjA5OTNiYmFjOTA5NDE5Y2U5YWMwODA0ZjBiOGNk
ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgKQEAg
LTMxLDYgKzMxLDcgQEAgY2xhc3MgUG9zaXRpb247CiBjbGFzcyBUZXh0Q2hlY2tpbmdQYXJhZ3Jh
cGggewogcHVibGljOgogICAgIGV4cGxpY2l0IFRleHRDaGVja2luZ1BhcmFncmFwaChQYXNzUmVm
UHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlKTsKKyAgICBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGgoUGFz
c1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBo
UmFuZ2UpOwogICAgIH5UZXh0Q2hlY2tpbmdQYXJhZ3JhcGgoKTsKIAogICAgIGludCByYW5nZUxl
bmd0aCgpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>