<?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>25500</bug_id>
          
          <creation_ts>2009-04-30 16:58:42 -0700</creation_ts>
          <short_desc>Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056</short_desc>
          <delta_ts>2009-06-02 14:31:27 -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.5</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>25056</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119546</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-30 16:58:42 -0700</bug_when>
    <thetext>Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056

Darin indicated the Range should deal only with primitive DOM node/offset pairs, and that Position (which is a more robust editing construct) should have its own comparison functions and that Range.h should not mention Position at all.

Turns out that Position already has a comparePositions() function (which knows how to additionally handled positions in shadow trees).  So I&apos;ve just changed all callers of compareBoundaryPoints(Position, Position) to use the existing comparePositions() function.  I&apos;ve also added a comparePositions which takes VisiblePositions for convenience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119547</commentid>
    <comment_count>1</comment_count>
      <attachid>29930</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-30 17:01:20 -0700</bug_when>
    <thetext>Created attachment 29930
Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056

 11 files changed, 77 insertions(+), 34 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119550</commentid>
    <comment_count>2</comment_count>
      <attachid>29931</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-30 17:14:14 -0700</bug_when>
    <thetext>Created attachment 29931
Add a compareBoundaryPoints which takes RangeBoundaryPoints

 3 files changed, 32 insertions(+), 11 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122525</commentid>
    <comment_count>3</comment_count>
      <attachid>29930</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-21 20:26:09 -0700</bug_when>
    <thetext>Comment on attachment 29930
Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056

Is the VisiblePosition version of comparePositions ever used? I couldn&apos;t tell from the diff. If not, I suggest removing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122601</commentid>
    <comment_count>4</comment_count>
      <attachid>29931</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 01:06:54 -0700</bug_when>
    <thetext>Comment on attachment 29931
Add a compareBoundaryPoints which takes RangeBoundaryPoints

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122602</commentid>
    <comment_count>5</comment_count>
      <attachid>29930</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 01:09:49 -0700</bug_when>
    <thetext>Comment on attachment 29930
Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056

Mostly looks ok. But please remove this function if it&apos;s not actually used. Would rather not add dead code.

+int comparePositions(const VisiblePosition&amp; a, const VisiblePosition&amp; b)
+{
+    return comparePositions(a.deepEquivalent(), b.deepEquivalent());
+}
+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124053</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-02 14:31:27 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/dom/Range.cpp
	M	WebCore/dom/Range.h
	M	WebCore/editing/ApplyStyleCommand.cpp
	M	WebCore/editing/CompositeEditCommand.cpp
	M	WebCore/editing/DeleteSelectionCommand.cpp
	M	WebCore/editing/SelectionController.cpp
	M	WebCore/editing/VisibleSelection.cpp
	M	WebCore/editing/htmlediting.cpp
	M	WebCore/editing/htmlediting.h
	M	WebCore/page/EventHandler.cpp
Committed r44367
	M	WebCore/ChangeLog
	M	WebCore/dom/Range.cpp
	M	WebCore/dom/Range.h
Committed r44368
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29930</attachid>
            <date>2009-04-30 17:01:20 -0700</date>
            <delta_ts>2009-05-22 01:09:49 -0700</delta_ts>
            <desc>Remove Range::compareBoundaryPoints(Position, Position) per Darin&apos;s suggestion in bug 25056</desc>
            <filename>Remove-Range-compareBoundaryPoints-Position-Position-per-Darin-s-suggestion-in-bug-25056.patch</filename>
            <type>text/plain</type>
            <size>17304</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OTIwOTM5NTQyYjJjYTIyMzA0MDZhOTM1OGQyMDc1YWRmZGVhYjQ2YQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJkMjQ3Li5jZGMwNTFj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDUyIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVtb3ZlIFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoUG9zaXRpb24sIFBv
c2l0aW9uKSBwZXIgRGFyaW4ncyBzdWdnZXN0aW9uIGluIGJ1ZyAyNTA1NgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MDAKKworICAgICAgICBEYXJp
biBpbmRpY2F0ZWQgdGhlIFJhbmdlIHNob3VsZCBkZWFsIG9ubHkgd2l0aCBwcmltaXRpdmUgRE9N
IG5vZGUvb2Zmc2V0CisgICAgICAgIHBhaXJzLCBhbmQgdGhhdCBQb3NpdGlvbiAod2hpY2ggaXMg
YSBtb3JlIHJvYnVzdCBlZGl0aW5nIGNvbnN0cnVjdCkgc2hvdWxkIGhhdmUKKyAgICAgICAgaXRz
IG93biBjb21wYXJpc29uIGZ1bmN0aW9ucyBhbmQgdGhhdCBSYW5nZS5oIHNob3VsZCBub3QgbWVu
dGlvbiBQb3NpdGlvbiBhdCBhbGwuCisKKyAgICAgICAgVHVybnMgb3V0IHRoYXQgUG9zaXRpb24g
YWxyZWFkeSBoYXMgYSBjb21wYXJlUG9zaXRpb25zKCkgZnVuY3Rpb24gKHdoaWNoIGtub3dzCisg
ICAgICAgIGhvdyB0byBhZGRpdGlvbmFsbHkgaGFuZGxlZCBwb3NpdGlvbnMgaW4gc2hhZG93IHRy
ZWVzKS4gIFNvIEkndmUganVzdCBjaGFuZ2VkCisgICAgICAgIGFsbCBjYWxsZXJzIG9mIGNvbXBh
cmVCb3VuZGFyeVBvaW50cyhQb3NpdGlvbiwgUG9zaXRpb24pIHRvIHVzZSB0aGUgZXhpc3RpbmcK
KyAgICAgICAgY29tcGFyZVBvc2l0aW9ucygpIGZ1bmN0aW9uLiAgSSd2ZSBhbHNvIGFkZGVkIGEg
Y29tcGFyZVBvc2l0aW9ucyB3aGljaCB0YWtlcworICAgICAgICBWaXNpYmxlUG9zaXRpb25zIGZv
ciBjb252ZW5pZW5jZS4KKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgICogZG9t
L1JhbmdlLmg6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6dXBkYXRlU3RhcnRFbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHls
ZVRvUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUlu
bGluZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpub2RlRnVs
bHlTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6bm9kZUZ1
bGx5VW5zZWxlY3RlZCk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWdu
aWZpY2FudFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1v
dmVQYXJhZ3JhcGhDb250ZW50c1RvTmV3QmxvY2tJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjppbml0aWFsaXplU3RhcnRFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6aGFuZGxlR2VuZXJhbERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMpOgorICAg
ICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3Rpb25Db250cm9sbGVyOjpub2RlV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OnRvTm9ybWFsaXplZFJhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVQb3NpdGlvbnMpOgorICAgICAgICAqIGVk
aXRpbmcvaHRtbGVkaXRpbmcuaDoKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmds
ZUNsaWNrKToKKworMjAwOS0wNC0zMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgQWRkIG1vcmUg
cG9zaXRpb24gY29uc3RydWN0b3JzCiAgICAgICAgIHBvc2l0aW9uQmVmb3JlTm9kZSwgcG9zaXRp
b25BZnRlck5vZGUKICAgICAgICAgZmlyc3RQb3NpdGlvbkluTm9kZSwgbGFzdFBvc2l0aW9uSW5O
b2RlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9XZWJDb3JlL2RvbS9SYW5n
ZS5jcHAKaW5kZXggYjM2N2NiMi4uMzRjOTcyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNTI2LDExICs1MjYsNiBAQCBz
aG9ydCBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKE5vZGUqIGNvbnRhaW5lckEsIGludCBv
ZmZzZXRBLCBOb2RlKiBjb250YWluZQogICAgIHJldHVybiAwOwogfQogCi1zaG9ydCBSYW5nZTo6
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKGNvbnN0IFBvc2l0aW9uJiBhLCBjb25zdCBQb3NpdGlvbiYg
YikKLXsKLSAgICByZXR1cm4gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKGEubm9kZSgpLCBhLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGIubm9kZSgpLCBiLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCkpOwotfQotCiBib29sIFJhbmdlOjpib3VuZGFyeVBvaW50c1ZhbGlkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9zdGFydC5jb250YWluZXIoKSAmJiBjb21wYXJlQm91bmRhcnlQb2ludHMobV9z
dGFydC5jb250YWluZXIoKSwgbV9zdGFydC5vZmZzZXQoKSwgbV9lbmQuY29udGFpbmVyKCksIG1f
ZW5kLm9mZnNldCgpKSA8PSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1dl
YkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggOTQzNDNkOS4uNWZmMmVkMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vUmFuZ2UuaAorKysgYi9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC02Niw3ICs2Niw2
IEBAIHB1YmxpYzoKICAgICBlbnVtIENvbXBhcmVIb3cgeyBTVEFSVF9UT19TVEFSVCwgU1RBUlRf
VE9fRU5ELCBFTkRfVE9fRU5ELCBFTkRfVE9fU1RBUlQgfTsKICAgICBzaG9ydCBjb21wYXJlQm91
bmRhcnlQb2ludHMoQ29tcGFyZUhvdywgY29uc3QgUmFuZ2UqIHNvdXJjZVJhbmdlLCBFeGNlcHRp
b25Db2RlJikgY29uc3Q7CiAgICAgc3RhdGljIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhO
b2RlKiBjb250YWluZXJBLCBpbnQgb2Zmc2V0QSwgTm9kZSogY29udGFpbmVyQiwgaW50IG9mZnNl
dEIpOwotICAgIHN0YXRpYyBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoY29uc3QgUG9zaXRp
b24mLCBjb25zdCBQb3NpdGlvbiYpOwogICAgIGJvb2wgYm91bmRhcnlQb2ludHNWYWxpZCgpIGNv
bnN0OwogICAgIGJvb2wgaW50ZXJzZWN0c05vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgZGVsZXRlQ29udGVudHMoRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNzYyNjIzNS4uMGEyODVmOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgQXBwbHlTdHls
ZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwg
Ym9vbCByZW1vdmVPbmwKIAogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6dXBkYXRlU3RhcnRFbmQo
Y29uc3QgUG9zaXRpb24mIG5ld1N0YXJ0LCBjb25zdCBQb3NpdGlvbiYgbmV3RW5kKQogewotICAg
IEFTU0VSVChSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKG5ld0VuZCwgbmV3U3RhcnQpID49
IDApOworICAgIEFTU0VSVChjb21wYXJlUG9zaXRpb25zKG5ld0VuZCwgbmV3U3RhcnQpID49IDAp
OwogCiAgICAgaWYgKCFtX3VzZUVuZGluZ1NlbGVjdGlvbiAmJiAobmV3U3RhcnQgIT0gbV9zdGFy
dCB8fCBuZXdFbmQgIT0gbV9lbmQpKQogICAgICAgICBtX3VzZUVuZGluZ1NlbGVjdGlvbiA9IHRy
dWU7CkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9j
a1N0eWxlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uICpzdHlsZSkKICAgICAvLyBnZXQgcG9z
aXRpb25zIHdlIHdhbnQgdG8gdXNlIGZvciBhcHBseWluZyBzdHlsZQogICAgIFBvc2l0aW9uIHN0
YXJ0ID0gc3RhcnRQb3NpdGlvbigpOwogICAgIFBvc2l0aW9uIGVuZCA9IGVuZFBvc2l0aW9uKCk7
Ci0gICAgaWYgKFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoZW5kLCBzdGFydCkgPCAwKSB7
CisgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMoZW5kLCBzdGFydCkgPCAwKSB7CiAgICAgICAgIFBv
c2l0aW9uIHN3YXAgPSBzdGFydDsKICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgIGVuZCA9
IHN3YXA7CkBAIC00ODAsNyArNDgwLDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlS
ZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgogICAgIAog
ICAgIFBvc2l0aW9uIHN0YXJ0ID0gc3RhcnRQb3NpdGlvbigpOwogICAgIFBvc2l0aW9uIGVuZCA9
IGVuZFBvc2l0aW9uKCk7Ci0gICAgaWYgKFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoZW5k
LCBzdGFydCkgPCAwKSB7CisgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMoZW5kLCBzdGFydCkgPCAw
KSB7CiAgICAgICAgIFBvc2l0aW9uIHN3YXAgPSBzdGFydDsKICAgICAgICAgc3RhcnQgPSBlbmQ7
CiAgICAgICAgIGVuZCA9IHN3YXA7CkBAIC03MTUsNyArNzE1LDcgQEAgdm9pZCBBcHBseVN0eWxl
Q29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5
bGUpCiAgICAgLy8gYWRqdXN0IHRvIHRoZSBwb3NpdGlvbnMgd2Ugd2FudCB0byB1c2UgZm9yIGFw
cGx5aW5nIHN0eWxlCiAgICAgUG9zaXRpb24gc3RhcnQgPSBzdGFydFBvc2l0aW9uKCk7CiAgICAg
UG9zaXRpb24gZW5kID0gZW5kUG9zaXRpb24oKTsKLSAgICBpZiAoUmFuZ2U6OmNvbXBhcmVCb3Vu
ZGFyeVBvaW50cyhlbmQsIHN0YXJ0KSA8IDApIHsKKyAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhl
bmQsIHN0YXJ0KSA8IDApIHsKICAgICAgICAgUG9zaXRpb24gc3dhcCA9IHN0YXJ0OwogICAgICAg
ICBzdGFydCA9IGVuZDsKICAgICAgICAgZW5kID0gc3dhcDsKQEAgLTc3Niw3ICs3NzYsNyBAQCB2
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxlKENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uICpzdHlsZSkKICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPiBlbWJlZGRpbmdTdHlsZSA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUo
KTsKICAgICAgICAgZW1iZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29k
ZUJpZGksIENTU1ZhbHVlRW1iZWQpOwogICAgICAgICBlbWJlZGRpbmdTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
ZGlyZWN0aW9uLmdldCgpKS0+Z2V0SWRlbnQoKSk7Ci0gICAgICAgIGlmIChSYW5nZTo6Y29tcGFy
ZUJvdW5kYXJ5UG9pbnRzKGVtYmVkZGluZ1JlbW92ZVN0YXJ0LCBlbWJlZGRpbmdSZW1vdmVFbmQp
IDw9IDApCisgICAgICAgIGlmIChjb21wYXJlUG9zaXRpb25zKGVtYmVkZGluZ1JlbW92ZVN0YXJ0
LCBlbWJlZGRpbmdSZW1vdmVFbmQpIDw9IDApCiAgICAgICAgICAgICByZW1vdmVJbmxpbmVTdHls
ZShlbWJlZGRpbmdTdHlsZSwgZW1iZWRkaW5nUmVtb3ZlU3RhcnQsIGVtYmVkZGluZ1JlbW92ZUVu
ZCk7CiAKICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZVdp
dGhvdXRFbWJlZGRpbmcgPSBzdHlsZS0+Y29weSgpOwpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQg
QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb1JhbmdlKENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKiBzdHlsCiAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCkgPj0gY2FyZXRNYXhPZmZzZXQoc3RhcnQubm9kZSgpKSkgewogICAgICAgICBub2RlID0gbm9k
ZS0+dHJhdmVyc2VOZXh0Tm9kZSgpOwogICAgICAgICBQb3NpdGlvbiBuZXdTdGFydCA9IFBvc2l0
aW9uKG5vZGUsIDApOwotICAgICAgICBpZiAoIW5vZGUgfHwgUmFuZ2U6OmNvbXBhcmVCb3VuZGFy
eVBvaW50cyhlbmQsIG5ld1N0YXJ0KSA8IDApCisgICAgICAgIGlmICghbm9kZSB8fCBjb21wYXJl
UG9zaXRpb25zKGVuZCwgbmV3U3RhcnQpIDwgMCkKICAgICAgICAgICAgIHJhbmdlSXNFbXB0eSA9
IHRydWU7CiAgICAgfQogCkBAIC0xMjA1LDcgKzEyMDUsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21t
YW5kOjpyZW1vdmVJbmxpbmVTdHlsZShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPgogICAgIEFTU0VSVChlbmQuaXNOb3ROdWxsKCkpOwogICAgIEFTU0VSVChzdGFydC5ub2Rl
KCktPmluRG9jdW1lbnQoKSk7CiAgICAgQVNTRVJUKGVuZC5ub2RlKCktPmluRG9jdW1lbnQoKSk7
Ci0gICAgQVNTRVJUKFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoc3RhcnQsIGVuZCkgPD0g
MCk7CisgICAgQVNTRVJUKGNvbXBhcmVQb3NpdGlvbnMoc3RhcnQsIGVuZCkgPD0gMCk7CiAgICAg
CiAgICAgUmVmUHRyPENTU1ZhbHVlPiB0ZXh0RGVjb3JhdGlvblNwZWNpYWxQcm9wZXJ0eSA9IHN0
eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25z
SW5FZmZlY3QpOwogCkBAIC0xMjY5LDggKzEyNjksNyBAQCBib29sIEFwcGx5U3R5bGVDb21tYW5k
Ojpub2RlRnVsbHlTZWxlY3RlZChOb2RlICpub2RlLCBjb25zdCBQb3NpdGlvbiAmc3RhcnQsIGNv
bgogICAgIEFTU0VSVChub2RlLT5pc0VsZW1lbnROb2RlKCkpOwogCiAgICAgUG9zaXRpb24gcG9z
ID0gUG9zaXRpb24obm9kZSwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkudXBzdHJlYW0oKTsKLSAg
ICByZXR1cm4gUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyhub2RlLCAwLCBzdGFydC5ub2Rl
KCksIHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkpID49IDAgJiYKLSAgICAgICAgUmFu
Z2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyhwb3MsIGVuZCkgPD0gMDsKKyAgICByZXR1cm4gY29t
cGFyZVBvc2l0aW9ucyhQb3NpdGlvbihub2RlLCAwKSwgc3RhcnQpID49IDAgJiYgY29tcGFyZVBv
c2l0aW9ucyhwb3MsIGVuZCkgPD0gMDsKIH0KIAogYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6bm9k
ZUZ1bGx5VW5zZWxlY3RlZChOb2RlICpub2RlLCBjb25zdCBQb3NpdGlvbiAmc3RhcnQsIGNvbnN0
IFBvc2l0aW9uICZlbmQpIGNvbnN0CkBAIC0xMjc5LDggKzEyNzgsOCBAQCBib29sIEFwcGx5U3R5
bGVDb21tYW5kOjpub2RlRnVsbHlVbnNlbGVjdGVkKE5vZGUgKm5vZGUsIGNvbnN0IFBvc2l0aW9u
ICZzdGFydCwgYwogICAgIEFTU0VSVChub2RlLT5pc0VsZW1lbnROb2RlKCkpOwogCiAgICAgUG9z
aXRpb24gcG9zID0gUG9zaXRpb24obm9kZSwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkudXBzdHJl
YW0oKTsKLSAgICBib29sIGlzRnVsbHlCZWZvcmVTdGFydCA9IFJhbmdlOjpjb21wYXJlQm91bmRh
cnlQb2ludHMocG9zLCBzdGFydCkgPCAwOwotICAgIGJvb2wgaXNGdWxseUFmdGVyRW5kID0gUmFu
Z2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyhub2RlLCAwLCBlbmQubm9kZSgpLCBlbmQuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSkgPiAwOworICAgIGJvb2wgaXNGdWxseUJlZm9yZVN0YXJ0ID0g
Y29tcGFyZVBvc2l0aW9ucyhwb3MsIHN0YXJ0KSA8IDA7CisgICAgYm9vbCBpc0Z1bGx5QWZ0ZXJF
bmQgPSBjb21wYXJlUG9zaXRpb25zKFBvc2l0aW9uKG5vZGUsIDApLCBlbmQpID4gMDsKIAogICAg
IHJldHVybiBpc0Z1bGx5QmVmb3JlU3RhcnQgfHwgaXNGdWxseUFmdGVyRW5kOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggOWYyZjg4NS4uYmFhMTk3NiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysg
Yi9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01MzUsNyArNTM1
LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHQo
Y29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdAogICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBl
bmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChSYW5nZTo6Y29tcGFyZUJv
dW5kYXJ5UG9pbnRzKHN0YXJ0LCBlbmQpID49IDApCisgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMo
c3RhcnQsIGVuZCkgPj0gMCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogbmV4dDsKQEAg
LTY0OSw3ICs2NDksNyBAQCBQYXNzUmVmUHRyPE5vZGU+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpt
b3ZlUGFyYWdyYXBoQ29udGVudHNUb05ld0Jsb2NrSWZOZWNlc3NhcgogCiAgICAgLy8gSWYgdGhl
cmUgYXJlIG5vIFZpc2libGVQb3NpdGlvbnMgaW4gdGhlIHNhbWUgYmxvY2sgYXMgcG9zIHRoZW4g
CiAgICAgLy8gdXBzdHJlYW1TdGFydCB3aWxsIGJlIG91dHNpZGUgdGhlIHBhcmFncmFwaAotICAg
IGlmIChSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHBvcywgdXBzdHJlYW1TdGFydCkgPCAw
KQorICAgIGlmIChjb21wYXJlUG9zaXRpb25zKHBvcywgdXBzdHJlYW1TdGFydCkgPCAwKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIC8vIFBlcmZvcm0gc29tZSBjaGVja3MgdG8gc2VlIGlmIHdl
IG5lZWQgdG8gcGVyZm9ybSB3b3JrIGluIHRoaXMgZnVuY3Rpb24uCkBAIC03NDUsMTIgKzc0NSwx
MiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcAogICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlz
aWJsZVN0YXJ0ID0gZW5kaW5nU2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7CiAgICAgICAgIFZp
c2libGVQb3NpdGlvbiB2aXNpYmxlRW5kID0gZW5kaW5nU2VsZWN0aW9uKCkudmlzaWJsZUVuZCgp
OwogICAgICAgICAKLSAgICAgICAgYm9vbCBzdGFydEFmdGVyUGFyYWdyYXBoID0gUmFuZ2U6OmNv
bXBhcmVCb3VuZGFyeVBvaW50cyh2aXNpYmxlU3RhcnQuZGVlcEVxdWl2YWxlbnQoKSwgZW5kT2ZQ
YXJhZ3JhcGhUb01vdmUuZGVlcEVxdWl2YWxlbnQoKSkgPiAwOwotICAgICAgICBib29sIGVuZEJl
Zm9yZVBhcmFncmFwaCA9IFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHModmlzaWJsZUVuZC5k
ZWVwRXF1aXZhbGVudCgpLCBzdGFydE9mUGFyYWdyYXBoVG9Nb3ZlLmRlZXBFcXVpdmFsZW50KCkp
IDwgMDsKKyAgICAgICAgYm9vbCBzdGFydEFmdGVyUGFyYWdyYXBoID0gY29tcGFyZVBvc2l0aW9u
cyh2aXNpYmxlU3RhcnQsIGVuZE9mUGFyYWdyYXBoVG9Nb3ZlKSA+IDA7CisgICAgICAgIGJvb2wg
ZW5kQmVmb3JlUGFyYWdyYXBoID0gY29tcGFyZVBvc2l0aW9ucyh2aXNpYmxlRW5kLCBzdGFydE9m
UGFyYWdyYXBoVG9Nb3ZlKSA8IDA7CiAgICAgICAgIAogICAgICAgICBpZiAoIXN0YXJ0QWZ0ZXJQ
YXJhZ3JhcGggJiYgIWVuZEJlZm9yZVBhcmFncmFwaCkgewotICAgICAgICAgICAgYm9vbCBzdGFy
dEluUGFyYWdyYXBoID0gUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyh2aXNpYmxlU3RhcnQu
ZGVlcEVxdWl2YWxlbnQoKSwgc3RhcnRPZlBhcmFncmFwaFRvTW92ZS5kZWVwRXF1aXZhbGVudCgp
KSA+PSAwOwotICAgICAgICAgICAgYm9vbCBlbmRJblBhcmFncmFwaCA9IFJhbmdlOjpjb21wYXJl
Qm91bmRhcnlQb2ludHModmlzaWJsZUVuZC5kZWVwRXF1aXZhbGVudCgpLCBlbmRPZlBhcmFncmFw
aFRvTW92ZS5kZWVwRXF1aXZhbGVudCgpKSA8PSAwOworICAgICAgICAgICAgYm9vbCBzdGFydElu
UGFyYWdyYXBoID0gY29tcGFyZVBvc2l0aW9ucyh2aXNpYmxlU3RhcnQsIHN0YXJ0T2ZQYXJhZ3Jh
cGhUb01vdmUpID49IDA7CisgICAgICAgICAgICBib29sIGVuZEluUGFyYWdyYXBoID0gY29tcGFy
ZVBvc2l0aW9ucyh2aXNpYmxlRW5kLCBlbmRPZlBhcmFncmFwaFRvTW92ZSkgPD0gMDsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7CiAgICAgICAgICAgICBpZiAoc3Rh
cnRJblBhcmFncmFwaCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCmluZGV4IDk5MjM4Y2IuLjRjOGQ3MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTEzNiwxMSArMTM2LDExIEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aW5pdGlhbGl6ZVN0YXJ0RW5kKFBvc2l0aW9uJiBzdGFydCwgUG9zaXRpb24m
IGVuZCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2UncmUg
Z29pbmcgdG8gZXhwYW5kIHRvIGluY2x1ZGUgdGhlIHN0YXJ0U3BlY2lhbENvbnRhaW5lciwgaXQg
bXVzdCBiZSBmdWxseSBzZWxlY3RlZC4KLSAgICAgICAgaWYgKHN0YXJ0U3BlY2lhbENvbnRhaW5l
ciAmJiAhZW5kU3BlY2lhbENvbnRhaW5lciAmJiBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRz
KHBvc2l0aW9uSW5QYXJlbnRBZnRlck5vZGUoc3RhcnRTcGVjaWFsQ29udGFpbmVyKSwgZW5kKSA+
IC0xKQorICAgICAgICBpZiAoc3RhcnRTcGVjaWFsQ29udGFpbmVyICYmICFlbmRTcGVjaWFsQ29u
dGFpbmVyICYmIGNvbXBhcmVQb3NpdGlvbnMocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShzdGFy
dFNwZWNpYWxDb250YWluZXIpLCBlbmQpID4gLTEpCiAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICAvLyBJZiB3ZSdyZSBnb2luZyB0byBleHBhbmQgdG8gaW5jbHVkZSB0aGUgZW5kU3BlY2lh
bENvbnRhaW5lciwgaXQgbXVzdCBiZSBmdWxseSBzZWxlY3RlZC4gICAgICAgICAKLSAgICAgICAg
aWYgKGVuZFNwZWNpYWxDb250YWluZXIgJiYgIXN0YXJ0U3BlY2lhbENvbnRhaW5lciAmJiBSYW5n
ZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHN0YXJ0LCBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9k
ZShlbmRTcGVjaWFsQ29udGFpbmVyKSkgPiAtMSkKKyAgICAgICAgLy8gSWYgd2UncmUgZ29pbmcg
dG8gZXhwYW5kIHRvIGluY2x1ZGUgdGhlIGVuZFNwZWNpYWxDb250YWluZXIsIGl0IG11c3QgYmUg
ZnVsbHkgc2VsZWN0ZWQuCisgICAgICAgIGlmIChlbmRTcGVjaWFsQ29udGFpbmVyICYmICFzdGFy
dFNwZWNpYWxDb250YWluZXIgJiYgY29tcGFyZVBvc2l0aW9ucyhzdGFydCwgcG9zaXRpb25JblBh
cmVudEJlZm9yZU5vZGUoZW5kU3BlY2lhbENvbnRhaW5lcikpID4gLTEpCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgCiAgICAgICAgIGlmIChzdGFydFNwZWNpYWxDb250YWluZXIgJiYgc3Rh
cnRTcGVjaWFsQ29udGFpbmVyLT5pc0Rlc2NlbmRhbnRPZihlbmRTcGVjaWFsQ29udGFpbmVyKSkK
QEAgLTQ2MCw3ICs0NjAsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmhhbmRsZUdl
bmVyYWxEZWxldGUoKQogICAgICAgICAKICAgICAgICAgLy8gaGFuZGxlIGRlbGV0aW5nIGFsbCBu
b2RlcyB0aGF0IGFyZSBjb21wbGV0ZWx5IHNlbGVjdGVkCiAgICAgICAgIHdoaWxlIChub2RlICYm
IG5vZGUgIT0gbV9kb3duc3RyZWFtRW5kLm5vZGUoKSkgewotICAgICAgICAgICAgaWYgKFJhbmdl
Ojpjb21wYXJlQm91bmRhcnlQb2ludHMoUG9zaXRpb24obm9kZS5nZXQoKSwgMCksIG1fZG93bnN0
cmVhbUVuZCkgPj0gMCkgeworICAgICAgICAgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMoUG9zaXRp
b24obm9kZS5nZXQoKSwgMCksIG1fZG93bnN0cmVhbUVuZCkgPj0gMCkgewogICAgICAgICAgICAg
ICAgIC8vIHRyYXZlcnNlTmV4dFNpYmxpbmcganVzdCBibGV3IHBhc3QgdGhlIGVuZCBwb3NpdGlv
biwgc28gc3RvcCBkZWxldGluZwogICAgICAgICAgICAgICAgIG5vZGUgPSAwOwogICAgICAgICAg
ICAgfSBlbHNlIGlmICghbV9kb3duc3RyZWFtRW5kLm5vZGUoKS0+aXNEZXNjZW5kYW50T2Yobm9k
ZS5nZXQoKSkpIHsKQEAgLTU1OCw3ICs1NTgsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6Om1lcmdlUGFyYWdyYXBocygpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgICAKICAgICAv
LyBGSVhNRTogVGhlIGRlbGV0aW9uIGFsZ29yaXRobSBzaG91bGRuJ3QgbGV0IHRoaXMgaGFwcGVu
LgotICAgIGlmIChSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1fdXBzdHJlYW1TdGFydCwg
bV9kb3duc3RyZWFtRW5kKSA+IDApCisgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMobV91cHN0cmVh
bVN0YXJ0LCBtX2Rvd25zdHJlYW1FbmQpID4gMCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAK
ICAgICAvLyBUaGVyZSdzIG5vdGhpbmcgdG8gbWVyZ2UuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggZTIwMTI5ZS4uN2JjYWVkNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9T
ZWxlY3Rpb25Db250cm9sbGVyLmNwcApAQCAtMjA0LDggKzIwNCw3IEBAIHZvaWQgU2VsZWN0aW9u
Q29udHJvbGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSAqbm9kZSkKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgbV9zZWwuc2V0V2l0aG91dFZhbGlkYXRpb24obV9zZWwuZW5kKCksIG1fc2Vs
LnN0YXJ0KCkpOwogICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGlm
IHdlIGhhZCBhbiBpc05vZGVJblJhbmdlIGZ1bmN0aW9uIG9uIFJhbmdlcy4KLSAgICB9IGVsc2Ug
aWYgKFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMobV9zZWwuc3RhcnQoKSwgUG9zaXRpb24o
bm9kZSwgMCkpID09IC0xICYmCi0gICAgICAgICAgICAgICBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5
UG9pbnRzKG1fc2VsLmVuZCgpLCBQb3NpdGlvbihub2RlLCAwKSkgPT0gMSkgeworICAgIH0gZWxz
ZSBpZiAoY29tcGFyZVBvc2l0aW9ucyhtX3NlbC5zdGFydCgpLCBQb3NpdGlvbihub2RlLCAwKSkg
PT0gLTEgJiYgY29tcGFyZVBvc2l0aW9ucyhtX3NlbC5lbmQoKSwgUG9zaXRpb24obm9kZSwgMCkp
ID09IDEpIHsKICAgICAgICAgLy8gSWYgd2UgZGlkIG5vdGhpbmcgaGVyZSwgd2hlbiB0aGlzIG5v
ZGUncyByZW5kZXJlciB3YXMgZGVzdHJveWVkLCB0aGUgcmVjdCB0aGF0IGl0IAogICAgICAgICAv
LyBvY2N1cGllZCB3b3VsZCBiZSBpbnZhbGlkYXRlZCwgYnV0LCBzZWxlY3Rpb24gZ2FwcyB0aGF0
IGNoYW5nZSBhcyBhIHJlc3VsdCBvZiAKICAgICAgICAgLy8gdGhlIHJlbW92YWwgd291bGRuJ3Qg
YmUgaW52YWxpZGF0ZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVj
dGlvbi5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXggMjA0
ZWE4Mi4uYzRjNzdiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMTcw
LDcgKzE3MCw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IFZpc2libGVTZWxlY3Rpb246OnRvTm9ybWFs
aXplZFJhbmdlKCkgY29uc3QKICAgICAgICAgQVNTRVJUKGlzUmFuZ2UoKSk7CiAgICAgICAgIHMg
PSBtX3N0YXJ0LmRvd25zdHJlYW0oKTsKICAgICAgICAgZSA9IG1fZW5kLnVwc3RyZWFtKCk7Ci0g
ICAgICAgIGlmIChSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHMubm9kZSgpLCBzLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGUubm9kZSgpLCBlLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCkpID4gMCkgeworICAgICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhzLCBlKSA+IDApIHsKICAg
ICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgc3RhcnQgaXMgYmVmb3JlIHRoZSBlbmQuCiAgICAg
ICAgICAgICAvLyBUaGUgZW5kIGNhbiB3aW5kIHVwIGJlZm9yZSB0aGUgc3RhcnQgaWYgY29sbGFw
c2VkIHdoaXRlc3BhY2UgaXMgdGhlIG9ubHkgdGhpbmcgc2VsZWN0ZWQuCiAgICAgICAgICAgICBQ
b3NpdGlvbiB0bXAgPSBzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcCBiL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKaW5kZXggZGQzYTBjZC4uZGE5
NzE4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCkBAIC0xMjcsNiArMTI3LDExIEBAIGludCBj
b21wYXJlUG9zaXRpb25zKGNvbnN0IFBvc2l0aW9uJiBhLCBjb25zdCBQb3NpdGlvbiYgYikKICAg
ICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0IDogYmlhczsKIH0KIAoraW50IGNvbXBhcmVQb3NpdGlv
bnMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBhLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGIpCit7
CisgICAgcmV0dXJuIGNvbXBhcmVQb3NpdGlvbnMoYS5kZWVwRXF1aXZhbGVudCgpLCBiLmRlZXBF
cXVpdmFsZW50KCkpOworfQorCiBOb2RlKiBoaWdoZXN0RWRpdGFibGVSb290KGNvbnN0IFBvc2l0
aW9uJiBwb3NpdGlvbikKIHsKICAgICBOb2RlKiBub2RlID0gcG9zaXRpb24ubm9kZSgpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmggYi9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaAppbmRleCBiY2RhZGExLi4zZjE5MTdhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
aApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIE5vZGU7CiBjbGFz
cyBQb3NpdGlvbjsKIGNsYXNzIFJhbmdlOwotY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNz
IFN0cmluZzsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKK2NsYXNzIFZpc2libGVTZWxlY3Rpb247
CiAKIFBvc2l0aW9uIHJhbmdlQ29tcGxpYW50RXF1aXZhbGVudChjb25zdCBQb3NpdGlvbiYpOwog
UG9zaXRpb24gcmFuZ2VDb21wbGlhbnRFcXVpdmFsZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OwpAQCAtNTEsNiArNTEsNyBAQCBOb2RlKiBoaWdoZXN0RWRpdGFibGVSb290KGNvbnN0IFBvc2l0
aW9uJik7CiBWaXNpYmxlUG9zaXRpb24gZmlyc3RFZGl0YWJsZVBvc2l0aW9uQWZ0ZXJQb3NpdGlv
bkluUm9vdChjb25zdCBQb3NpdGlvbiYsIE5vZGUqKTsKIFZpc2libGVQb3NpdGlvbiBsYXN0RWRp
dGFibGVQb3NpdGlvbkJlZm9yZVBvc2l0aW9uSW5Sb290KGNvbnN0IFBvc2l0aW9uJiwgTm9kZSop
OwogaW50IGNvbXBhcmVQb3NpdGlvbnMoY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYp
OworaW50IGNvbXBhcmVQb3NpdGlvbnMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CiBOb2RlKiBsb3dlc3RFZGl0YWJsZUFuY2VzdG9yKE5vZGUqKTsKIGJv
b2wgaXNDb250ZW50RWRpdGFibGUoY29uc3QgTm9kZSopOwogUG9zaXRpb24gbmV4dENhbmRpZGF0
ZShjb25zdCBQb3NpdGlvbiYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1MTc3ZjMwLi4wMGE1
ZDNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzA0LDggKzMwNCw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSCiAgICAgICAgIC8vIHdhcyBjcmVhdGVkIHJpZ2h0LXRvLWxlZnQKICAgICAg
ICAgUG9zaXRpb24gc3RhcnQgPSBuZXdTZWxlY3Rpb24uc3RhcnQoKTsKICAgICAgICAgUG9zaXRp
b24gZW5kID0gbmV3U2VsZWN0aW9uLmVuZCgpOwotICAgICAgICBzaG9ydCBiZWZvcmUgPSBSYW5n
ZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHBvcy5ub2RlKCksIHBvcy5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCBzdGFydC5ub2RlKCksIHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkp
OwotICAgICAgICBpZiAoYmVmb3JlIDw9IDApCisgICAgICAgIGlmIChjb21wYXJlUG9zaXRpb25z
KHBvcywgc3RhcnQpIDw9IDApCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2Vs
ZWN0aW9uKHBvcywgZW5kKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbmV3U2VsZWN0aW9u
ID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgcG9zKTsK
</data>
<flag name="review"
          id="14998"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29931</attachid>
            <date>2009-04-30 17:14:14 -0700</date>
            <delta_ts>2009-05-22 01:06:54 -0700</delta_ts>
            <desc>Add a compareBoundaryPoints which takes RangeBoundaryPoints</desc>
            <filename>Add-a-compareBoundaryPoints-which-takes-RangeBoundaryPoints.patch</filename>
            <type>text/plain</type>
            <size>4561</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZmNlMzNhYTJmMGU5YzMzOWJkOWFlMjAxZTdmYjI1NDM0YWZiYmUzZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZGMwNTFjLi5lOTI2YmQ4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDI1IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQWRkIGEgY29tcGFyZUJvdW5kYXJ5UG9pbnRzIHdoaWNoIHRha2VzIFJhbmdlQm91
bmRhcnlQb2ludHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI1NTAwCisKKyAgICAgICAgSSBub3RpY2VkIHRoZSBuZWVkIGZvciB0aGlzIGZ1bmN0aW9u
IHdoZW4gcmVtb3ZpbmcgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFBvc2l0aW9uLCBQb3NpdGlvbikK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBhbG1vc3QgZW50aXJlbHkgbWludXMgbGluZXMuCisKKyAg
ICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCB0aHVzIG5vIHRlc3RzLgorCisgICAgICAgICog
ZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZXRTdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZTo6c2V0RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpj
b21wYXJlQm91bmRhcnlQb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmJvdW5kYXJ5
UG9pbnRzVmFsaWQpOgorICAgICAgICAqIGRvbS9SYW5nZS5oOgorCisyMDA5LTA0LTMwICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKwogICAgICAgICBSZW1vdmUgUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyhQ
b3NpdGlvbiwgUG9zaXRpb24pIHBlciBEYXJpbidzIHN1Z2dlc3Rpb24gaW4gYnVnIDI1MDU2CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUwMAogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
aW5kZXggMzRjOTcyNS4uYTQzNjFlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUmFuZ2UuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmFu
Z2U6OnNldFN0YXJ0KFBhc3NSZWZQdHI8Tm9kZT4gcmVmTm9kZSwgaW50IG9mZnNldCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgaWYgKHN0YXJ0Um9vdENvbnRhaW5lciAhPSBlbmRSb290Q29udGFp
bmVyKQogICAgICAgICBjb2xsYXBzZSh0cnVlLCBlYyk7CiAgICAgLy8gY2hlY2sgaWYgbmV3IHN0
YXJ0IGFmdGVyIGVuZAotICAgIGVsc2UgaWYgKGNvbXBhcmVCb3VuZGFyeVBvaW50cyhtX3N0YXJ0
LmNvbnRhaW5lcigpLCBtX3N0YXJ0Lm9mZnNldCgpLCBtX2VuZC5jb250YWluZXIoKSwgbV9lbmQu
b2Zmc2V0KCkpID4gMCkKKyAgICBlbHNlIGlmIChjb21wYXJlQm91bmRhcnlQb2ludHMobV9zdGFy
dCwgbV9lbmQpID4gMCkKICAgICAgICAgY29sbGFwc2UodHJ1ZSwgZWMpOwogfQogCkBAIC0yNDYs
NyArMjQ2LDcgQEAgdm9pZCBSYW5nZTo6c2V0RW5kKFBhc3NSZWZQdHI8Tm9kZT4gcmVmTm9kZSwg
aW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgaWYgKHN0YXJ0Um9vdENvbnRhaW5l
ciAhPSBlbmRSb290Q29udGFpbmVyKQogICAgICAgICBjb2xsYXBzZShmYWxzZSwgZWMpOwogICAg
IC8vIGNoZWNrIGlmIG5ldyBlbmQgYmVmb3JlIHN0YXJ0Ci0gICAgaWYgKGNvbXBhcmVCb3VuZGFy
eVBvaW50cyhtX3N0YXJ0LmNvbnRhaW5lcigpLCBtX3N0YXJ0Lm9mZnNldCgpLCBtX2VuZC5jb250
YWluZXIoKSwgbV9lbmQub2Zmc2V0KCkpID4gMCkKKyAgICBpZiAoY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKG1fc3RhcnQsIG1fZW5kKSA+IDApCiAgICAgICAgIGNvbGxhcHNlKGZhbHNlLCBlYyk7CiB9
CiAKQEAgLTQxOCwxNyArNDE4LDEzIEBAIHNob3J0IFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2lu
dHMoQ29tcGFyZUhvdyBob3csIGNvbnN0IFJhbmdlKiBzb3VyY2VSYW5nZSwgRXhjCiAKICAgICBz
d2l0Y2ggKGhvdykgewogICAgICAgICBjYXNlIFNUQVJUX1RPX1NUQVJUOgotICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVCb3VuZGFyeVBvaW50cyhtX3N0YXJ0LmNvbnRhaW5lcigpLCBtX3N0YXJ0
Lm9mZnNldCgpLAotICAgICAgICAgICAgICAgIHNvdXJjZVJhbmdlLT5tX3N0YXJ0LmNvbnRhaW5l
cigpLCBzb3VyY2VSYW5nZS0+bV9zdGFydC5vZmZzZXQoKSk7CisgICAgICAgICAgICByZXR1cm4g
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1fc3RhcnQsIHNvdXJjZVJhbmdlLT5tX3N0YXJ0KTsKICAg
ICAgICAgY2FzZSBTVEFSVF9UT19FTkQ6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUJvdW5k
YXJ5UG9pbnRzKG1fZW5kLmNvbnRhaW5lcigpLCBtX2VuZC5vZmZzZXQoKSwKLSAgICAgICAgICAg
ICAgICBzb3VyY2VSYW5nZS0+bV9zdGFydC5jb250YWluZXIoKSwgc291cmNlUmFuZ2UtPm1fc3Rh
cnQub2Zmc2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVCb3VuZGFyeVBvaW50cyht
X2VuZCwgc291cmNlUmFuZ2UtPm1fc3RhcnQpOwogICAgICAgICBjYXNlIEVORF9UT19FTkQ6Ci0g
ICAgICAgICAgICByZXR1cm4gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1fZW5kLmNvbnRhaW5lcigp
LCBtX2VuZC5vZmZzZXQoKSwKLSAgICAgICAgICAgICAgICBzb3VyY2VSYW5nZS0+bV9lbmQuY29u
dGFpbmVyKCksIHNvdXJjZVJhbmdlLT5tX2VuZC5vZmZzZXQoKSk7CisgICAgICAgICAgICByZXR1
cm4gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1fZW5kLCBzb3VyY2VSYW5nZS0+bV9lbmQpOwogICAg
ICAgICBjYXNlIEVORF9UT19TVEFSVDoKLSAgICAgICAgICAgIHJldHVybiBjb21wYXJlQm91bmRh
cnlQb2ludHMobV9zdGFydC5jb250YWluZXIoKSwgbV9zdGFydC5vZmZzZXQoKSwKLSAgICAgICAg
ICAgICAgICBzb3VyY2VSYW5nZS0+bV9lbmQuY29udGFpbmVyKCksIHNvdXJjZVJhbmdlLT5tX2Vu
ZC5vZmZzZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1f
c3RhcnQsIHNvdXJjZVJhbmdlLT5tX2VuZCk7CiAgICAgfQogCiAgICAgZWMgPSBTWU5UQVhfRVJS
OwpAQCAtNTI2LDkgKzUyMiwxNCBAQCBzaG9ydCBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRz
KE5vZGUqIGNvbnRhaW5lckEsIGludCBvZmZzZXRBLCBOb2RlKiBjb250YWluZQogICAgIHJldHVy
biAwOwogfQogCitzaG9ydCBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKGNvbnN0IFJhbmdl
Qm91bmRhcnlQb2ludCYgYm91bmRhcnlBLCBjb25zdCBSYW5nZUJvdW5kYXJ5UG9pbnQmIGJvdW5k
YXJ5QikKK3sKKyAgICByZXR1cm4gY29tcGFyZUJvdW5kYXJ5UG9pbnRzKGJvdW5kYXJ5QS5jb250
YWluZXIoKSwgYm91bmRhcnlBLm9mZnNldCgpLCBib3VuZGFyeUIuY29udGFpbmVyKCksIGJvdW5k
YXJ5Qi5vZmZzZXQoKSk7Cit9CisKIGJvb2wgUmFuZ2U6OmJvdW5kYXJ5UG9pbnRzVmFsaWQoKSBj
b25zdAogewotICAgIHJldHVybiBtX3N0YXJ0LmNvbnRhaW5lcigpICYmIGNvbXBhcmVCb3VuZGFy
eVBvaW50cyhtX3N0YXJ0LmNvbnRhaW5lcigpLCBtX3N0YXJ0Lm9mZnNldCgpLCBtX2VuZC5jb250
YWluZXIoKSwgbV9lbmQub2Zmc2V0KCkpIDw9IDA7CisgICAgcmV0dXJuIG1fc3RhcnQuY29udGFp
bmVyKCkgJiYgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKG1fc3RhcnQsIG1fZW5kKSA8PSAwOwogfQog
CiB2b2lkIFJhbmdlOjpkZWxldGVDb250ZW50cyhFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1JhbmdlLmggYi9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IDVmZjJl
ZDIuLjExNWY0NDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvV2ViQ29y
ZS9kb20vUmFuZ2UuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBDb21wYXJl
SG93IHsgU1RBUlRfVE9fU1RBUlQsIFNUQVJUX1RPX0VORCwgRU5EX1RPX0VORCwgRU5EX1RPX1NU
QVJUIH07CiAgICAgc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKENvbXBhcmVIb3csIGNvbnN0
IFJhbmdlKiBzb3VyY2VSYW5nZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHN0YXRpYyBz
aG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoTm9kZSogY29udGFpbmVyQSwgaW50IG9mZnNldEEs
IE5vZGUqIGNvbnRhaW5lckIsIGludCBvZmZzZXRCKTsKKyAgICBzdGF0aWMgc2hvcnQgY29tcGFy
ZUJvdW5kYXJ5UG9pbnRzKGNvbnN0IFJhbmdlQm91bmRhcnlQb2ludCYgYm91bmRhcnlBLCBjb25z
dCBSYW5nZUJvdW5kYXJ5UG9pbnQmIGJvdW5kYXJ5Qik7CiAgICAgYm9vbCBib3VuZGFyeVBvaW50
c1ZhbGlkKCkgY29uc3Q7CiAgICAgYm9vbCBpbnRlcnNlY3RzTm9kZShOb2RlKiByZWZOb2RlLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVDb250ZW50cyhFeGNlcHRpb25Db2RlJik7
Cg==
</data>
<flag name="review"
          id="14999"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>