<?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>55611</bug_id>
          
          <creation_ts>2011-03-02 13:38:08 -0800</creation_ts>
          <short_desc>The memory of FloatingObject should be handled automatically</short_desc>
          <delta_ts>2011-03-15 15:48:54 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55602</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>darin</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>361041</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-02 13:38:08 -0800</bug_when>
    <thetext>Currently, the FloatingObjects of RenderBlock have to be delete manually. The ownership of those objects is quite simple, that should be handled automatically.

OwnPtr won&apos;t do it, but maybe PassOwnPtr in the structure could do the trick. If not, a simple wrapper to deal with the memory could be a solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361213</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-02 17:13:55 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; OwnPtr won&apos;t do it

Why? Maybe we can specialize the template to do something simple with OwnPtr.

&gt; maybe PassOwnPtr in the structure could do the trick

Unlikely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367673</commentid>
    <comment_count>2</comment_count>
      <attachid>85811</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-15 08:42:04 -0700</bug_when>
    <thetext>Created attachment 85811
Patch

First step, make ListHashSet more flexible to be able to use Type and PassType with the structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367844</commentid>
    <comment_count>3</comment_count>
      <attachid>85839</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-15 12:07:46 -0700</bug_when>
    <thetext>Created attachment 85839
Patch

First step, make ListHashSet more flexible to be able to use Type and PassType with the structure. Same patch without French-inspired words in the changlog :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368003</commentid>
    <comment_count>4</comment_count>
      <attachid>85839</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-15 15:48:54 -0700</bug_when>
    <thetext>Comment on attachment 85839
Patch

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

review- because the change to EventQueue is incorrect

&gt; Source/JavaScriptCore/ChangeLog:27
&gt; +        (WTF::ListHashSetNode::ListHashSetNode):
&gt; +        (WTF::ListHashSetTranslator::hash):
&gt; +        (WTF::ListHashSetTranslator::equal):
&gt; +        (WTF::ListHashSetTranslator::translate):
&gt; +        (WTF::::find):
&gt; +        (WTF::::contains):
&gt; +        (WTF::::add):
&gt; +        (WTF::::insertBefore):
&gt; +        (WTF::::remove):

It would be better to add comments explaining what’s changing in these functions. Also, the script generates “WTF::::find”, which is nonsense. Please fix that rather than checking it in.

&gt; Source/JavaScriptCore/wtf/ListHashSet.h:103
&gt; +        template&lt;typename ArgType&gt; iterator find(const ArgType&amp;);
&gt; +        template&lt;typename ArgType&gt; const_iterator find(const ArgType&amp;) const;
&gt; +        template&lt;typename ArgType&gt; bool contains(const ArgType&amp;) const;

This is stylistically different than the approach used in HashSet; we don’t provide a translator so this works only if the type is assignment-compatible. I don’t think it’s good for HashSet and ListHashSet to take different approaches to the same problem.

HashSet also uses T for the type name and here you used the name ArgType.

Lets do this in a way that’s consistent if possible.

&gt; Source/WebCore/ChangeLog:6
&gt; +        The memory of FloatingObject should be handled automatically
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=55611

I don’t think it makes sense to have the bug mention FloatingObject when this patch is just about extending ListHashSet. You should make a new bugs.webkit.org entry for just adding the new feature and then you can use a blocking relationship. It’s best not to use one bug to track two changes.

&gt; Source/WebCore/dom/EventQueue.cpp:112
&gt; +            if (event == lastPendingEvent)
&gt; +                break;

This won’t work if cancelEvent is called, passing in lastPendingEvent, during the execution of the event dispatch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85811</attachid>
            <date>2011-03-15 08:42:04 -0700</date>
            <delta_ts>2011-03-15 12:07:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55611-20110315164201.patch</filename>
            <type>text/plain</type>
            <size>12311</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODExMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJh
NDRhMzAwYjA1NzZhZWNlNWU5MDBjNzNhYjA2MDIyYWMwZGEyZjAuLjBjODhjZjkwOTgwMWM1Zjhi
NjJjODZlNTVhMjU1ZDAxMWI4YjQ1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDExLTAzLTE1ICBCZW5qYW1pbiBQb3VsYWluICA8aWtpcG91QGdtYWlsLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
bWVtb3J5IG9mIEZsb2F0aW5nT2JqZWN0IHNob3VsZCBiZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NjExCisK
KyAgICAgICAgTW9kaWZ5IExpc3RIYXNoU2V0IHRvIGJlIGFibGUgdG8gaGFuZGxlIGRpZmZlcmVu
dCB0eXBlcyBmb3IKKyAgICAgICAgaW50ZXJuYWwgc3RvcmFnZSBhbmQgZm9yIHRoZSBtZXRob2Rz
LgorICAgICAgICBUaGlzIGFsbG93IHRoZSB1c2Ugb2YgaW50ZXJuYWwgdHlwZSB3aXRob3V0IGNv
cHkgY29uc3RydWN0b3IsIG9yIGZvcgorICAgICAgICB3aGljaCB0aGUgY29weSBjb25zdHJ1Y3Rv
ciBzaG91bGQgYmUgZXZpdGVkIHdoZW4gcGFzc2luZyB0aGUgdmFsdWUuCisKKyAgICAgICAgVGhl
IGhhc2ggdHJhaXQgb2YgUmVmUHRyIGlzIG1vZGlmaWVkIHRvIGFsbG93IHBhc3NpbmcgYSBQYXNz
UmVmUHRyLgorICAgICAgICBUaGlzIG1lYW4gdGhlIExpc3RIYXNoU2V0IGNhbiBoYXZlIGEgUmVm
UHRyIGludGVybmFsbHksIGFuZCB1c2UgUGFzc1JlZlB0ciBmb3IKKyAgICAgICAgaXRzIG1ldGhv
ZHMuCisKKyAgICAgICAgKiB3dGYvSGFzaEZ1bmN0aW9ucy5oOgorICAgICAgICAqIHd0Zi9MaXN0
SGFzaFNldC5oOgorICAgICAgICAoV1RGOjpMaXN0SGFzaFNldE5vZGU6Okxpc3RIYXNoU2V0Tm9k
ZSk6CisgICAgICAgIChXVEY6Okxpc3RIYXNoU2V0VHJhbnNsYXRvcjo6aGFzaCk6CisgICAgICAg
IChXVEY6Okxpc3RIYXNoU2V0VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpMaXN0
SGFzaFNldFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXVEY6Ojo6ZmluZCk6Cisg
ICAgICAgIChXVEY6Ojo6Y29udGFpbnMpOgorICAgICAgICAoV1RGOjo6OmFkZCk6CisgICAgICAg
IChXVEY6Ojo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdURjo6OjpyZW1vdmUpOgorCiAyMDEx
LTAzLTE1ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9IYXNoRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hh
c2hGdW5jdGlvbnMuaAppbmRleCAyYzY2YTJkOWZiZjNjZTBmNzcxOTM2OGY1N2NiYjE1NTdiMDFm
Yzc4Li4xY2E0NTIzOTQ5M2VjNTcxZTgzNGJlNWE3YmY0Y2NjNGE2ZTQ2N2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0hhc2hGdW5jdGlvbnMuaApAQCAtMTI2LDEwICsxMjYsMTIgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFB0ckhhc2g8
UmVmUHRyPFA+ID4gOiBQdHJIYXNoPFAqPiB7CiAgICAgICAgIHVzaW5nIFB0ckhhc2g8UCo+Ojpo
YXNoOwogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZWZQdHI8UD4mIGtleSkg
eyByZXR1cm4gaGFzaChrZXkuZ2V0KCkpOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNo
KGNvbnN0IFBhc3NSZWZQdHI8UD4mIGtleSkgeyByZXR1cm4gaGFzaChrZXkuZ2V0KCkpOyB9CiAg
ICAgICAgIHVzaW5nIFB0ckhhc2g8UCo+OjplcXVhbDsKICAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgUmVmUHRyPFA+JiBhLCBjb25zdCBSZWZQdHI8UD4mIGIpIHsgcmV0dXJuIGEgPT0g
YjsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChQKiBhLCBjb25zdCBSZWZQdHI8UD4mIGIp
IHsgcmV0dXJuIGEgPT0gYjsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWZQ
dHI8UD4mIGEsIFAqIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBSZWZQdHI8UD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8UD4mIGIpIHsgcmV0dXJu
IGEgPT0gYjsgfQogICAgIH07CiAKICAgICAvLyBkZWZhdWx0IGhhc2ggZnVuY3Rpb24gZm9yIGVh
Y2ggdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNl
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNldC5oCmluZGV4IGIwZDBl
NDNkNTVlYmQ4MjY1ZWE5OWU0NjRmMjI5ZmUyOTkxOTM5OTQuLjVmYTU0ZTkwOWQwOGQxMGI0OWE4
NGIxY2UyZDFlOTZiYzIwZDc1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTGlzdEhhc2hTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RIYXNo
U2V0LmgKQEAgLTk4LDkgKzk4LDkgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGNvbnN0IFZh
bHVlVHlwZSYgbGFzdCgpIGNvbnN0OwogICAgICAgICB2b2lkIHJlbW92ZUxhc3QoKTsKIAotICAg
ICAgICBpdGVyYXRvciBmaW5kKGNvbnN0IFZhbHVlVHlwZSYpOwotICAgICAgICBjb25zdF9pdGVy
YXRvciBmaW5kKGNvbnN0IFZhbHVlVHlwZSYpIGNvbnN0OwotICAgICAgICBib29sIGNvbnRhaW5z
KGNvbnN0IFZhbHVlVHlwZSYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmdU
eXBlPiBpdGVyYXRvciBmaW5kKGNvbnN0IEFyZ1R5cGUmKTsKKyAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQXJnVHlwZT4gY29uc3RfaXRlcmF0b3IgZmluZChjb25zdCBBcmdUeXBlJikgY29uc3Q7
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+IGJvb2wgY29udGFpbnMoY29uc3Qg
QXJnVHlwZSYpIGNvbnN0OwogCiAgICAgICAgIC8vIEFuIGFsdGVybmF0ZSB2ZXJzaW9uIG9mIGZp
bmQoKSB0aGF0IGZpbmRzIHRoZSBvYmplY3QgYnkgaGFzaGluZyBhbmQgY29tcGFyaW5nCiAgICAg
ICAgIC8vIHdpdGggc29tZSBvdGhlciB0eXBlLCB0byBhdm9pZCB0aGUgY29zdCBvZiB0eXBlIGNv
bnZlcnNpb24uCkBAIC0xMTEsMTIgKzExMSwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAg
ICAvLyB0aGUgcmV0dXJuIHZhbHVlIGlzIGEgcGFpciBvZiBhbiBpdGVyYXRvciB0byB0aGUgbmV3
IHZhbHVlJ3MgbG9jYXRpb24sIAogICAgICAgICAvLyBhbmQgYSBib29sIHRoYXQgaXMgdHJ1ZSBp
ZiBhbiBuZXcgZW50cnkgd2FzIGFkZGVkCi0gICAgICAgIHBhaXI8aXRlcmF0b3IsIGJvb2w+IGFk
ZChjb25zdCBWYWx1ZVR5cGUmKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlwZT4g
cGFpcjxpdGVyYXRvciwgYm9vbD4gYWRkKGNvbnN0IEFyZ1R5cGUmKTsKIAogICAgICAgICBwYWly
PGl0ZXJhdG9yLCBib29sPiBpbnNlcnRCZWZvcmUoY29uc3QgVmFsdWVUeXBlJiBiZWZvcmVWYWx1
ZSwgY29uc3QgVmFsdWVUeXBlJiBuZXdWYWx1ZSk7CiAgICAgICAgIHBhaXI8aXRlcmF0b3IsIGJv
b2w+IGluc2VydEJlZm9yZShpdGVyYXRvciBpdCwgY29uc3QgVmFsdWVUeXBlJik7CiAKLSAgICAg
ICAgdm9pZCByZW1vdmUoY29uc3QgVmFsdWVUeXBlJik7CisgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEFyZ1R5cGU+IHZvaWQgcmVtb3ZlKGNvbnN0IEFyZ1R5cGUmKTsKICAgICAgICAgdm9pZCBy
ZW1vdmUoaXRlcmF0b3IpOwogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKQEAgLTIwOCw3ICsyMDgs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFyZywgc2l6
ZV90IGlubGluZUNhcGFjaXR5PiBzdHJ1Y3QgTGlzdEhhc2hTZXROb2RlIHsKICAgICAgICAgdHlw
ZWRlZiBMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I8VmFsdWVBcmcsIGlubGluZUNhcGFjaXR5PiBO
b2RlQWxsb2NhdG9yOwogCi0gICAgICAgIExpc3RIYXNoU2V0Tm9kZShWYWx1ZUFyZyB2YWx1ZSkK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlwZT4gTGlzdEhhc2hTZXROb2RlKEFyZ1R5
cGUgdmFsdWUpCiAgICAgICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAgICAgICAgICAgICAsIG1f
cHJldigwKQogICAgICAgICAgICAgLCBtX25leHQoMCkKQEAgLTM1OCwxNSArMzU4LDE1IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIH07CiAKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlw
ZSwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zPgorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgQXJnVHlwZSwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zPgogICAgIHN0cnVjdCBMaXN0SGFzaFNl
dFRyYW5zbGF0b3IgewogICAgIHByaXZhdGU6CiAgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRO
b2RlPFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNpdHk+IE5vZGU7CiAgICAgICAgIHR5cGVkZWYgTGlz
dEhhc2hTZXROb2RlQWxsb2NhdG9yPFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNpdHk+IE5vZGVBbGxv
Y2F0b3I7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBW
YWx1ZVR5cGUmIGtleSkgeyByZXR1cm4gSGFzaEZ1bmN0aW9uczo6aGFzaChrZXkpOyB9Ci0gICAg
ICAgIHN0YXRpYyBib29sIGVxdWFsKE5vZGUqIGNvbnN0JiBhLCBjb25zdCBWYWx1ZVR5cGUmIGIp
IHsgcmV0dXJuIEhhc2hGdW5jdGlvbnM6OmVxdWFsKGEtPm1fdmFsdWUsIGIpOyB9Ci0gICAgICAg
IHN0YXRpYyB2b2lkIHRyYW5zbGF0ZShOb2RlKiYgbG9jYXRpb24sIGNvbnN0IFZhbHVlVHlwZSYg
a2V5LCBOb2RlQWxsb2NhdG9yKiBhbGxvY2F0b3IpCisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IEFyZ1R5cGUmIGtleSkgeyByZXR1cm4gSGFzaEZ1bmN0aW9uczo6aGFzaChrZXkp
OyB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKE5vZGUqIGNvbnN0JiBhLCBjb25zdCBBcmdU
eXBlJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLT5tX3ZhbHVlLCBiKTsgfQor
ICAgICAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoTm9kZSomIGxvY2F0aW9uLCBjb25zdCBBcmdU
eXBlJiBrZXksIE5vZGVBbGxvY2F0b3IqIGFsbG9jYXRvcikKICAgICAgICAgewogICAgICAgICAg
ICAgbG9jYXRpb24gPSBuZXcgKGFsbG9jYXRvcikgTm9kZShrZXkpOwogICAgICAgICB9CkBAIC00
OTMsMjAgKzQ5MywyMiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5l
IHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IgTGlz
dEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpmaW5kKGNvbnN0IFZhbHVlVHlwZSYgdmFs
dWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlwZT4KKyAgICBpbmxpbmUgdHlwZW5hbWUg
TGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjppdGVyYXRvciBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46OmZpbmQoY29uc3QgQXJnVHlwZSYgdmFsdWUpCiAgICAgewot
ICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0VHJhbnNsYXRvcjxWYWx1ZVR5cGUsIGlubGluZUNh
cGFjaXR5LCBIYXNoRnVuY3Rpb25zPiBUcmFuc2xhdG9yOwotICAgICAgICBJbXBsVHlwZUl0ZXJh
dG9yIGl0ID0gbV9pbXBsLnRlbXBsYXRlIGZpbmQ8VmFsdWVUeXBlLCBUcmFuc2xhdG9yPih2YWx1
ZSk7CisgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFQsIEFyZ1R5cGUsIGlu
bGluZUNhcGFjaXR5LCBIYXNoRnVuY3Rpb25zPiBUcmFuc2xhdG9yOworICAgICAgICBJbXBsVHlw
ZUl0ZXJhdG9yIGl0ID0gbV9pbXBsLnRlbXBsYXRlIGZpbmQ8QXJnVHlwZSwgVHJhbnNsYXRvcj4o
dmFsdWUpOwogICAgICAgICBpZiAoaXQgPT0gbV9pbXBsLmVuZCgpKQogICAgICAgICAgICAgcmV0
dXJuIGVuZCgpOwogICAgICAgICByZXR1cm4gbWFrZUl0ZXJhdG9yKCppdCk7IAogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUg
VT4KLSAgICBpbmxpbmUgdHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+
Ojpjb25zdF9pdGVyYXRvciBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmZpbmQo
Y29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmdU
eXBlPgorICAgIGlubGluZSB0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwg
VT46OmNvbnN0X2l0ZXJhdG9yIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6Zmlu
ZChjb25zdCBBcmdUeXBlJiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlz
dEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNpdHksIEhhc2hGdW5jdGlv
bnM+IFRyYW5zbGF0b3I7Ci0gICAgICAgIEltcGxUeXBlQ29uc3RJdGVyYXRvciBpdCA9IG1faW1w
bC50ZW1wbGF0ZSBmaW5kPFZhbHVlVHlwZSwgVHJhbnNsYXRvcj4odmFsdWUpOworICAgICAgICB0
eXBlZGVmIExpc3RIYXNoU2V0VHJhbnNsYXRvcjxULCBBcmdUeXBlLCBpbmxpbmVDYXBhY2l0eSwg
SGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKKyAgICAgICAgSW1wbFR5cGVDb25zdEl0ZXJhdG9y
IGl0ID0gbV9pbXBsLnRlbXBsYXRlIGZpbmQ8QXJnVHlwZSwgVHJhbnNsYXRvcj4odmFsdWUpOwog
ICAgICAgICBpZiAoaXQgPT0gbV9pbXBsLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuIGVuZCgp
OwogICAgICAgICByZXR1cm4gbWFrZUNvbnN0SXRlcmF0b3IoKml0KTsKQEAgLTU1MiwxNyArNTU0
LDE5IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KLSAgICBpbmxpbmUgYm9vbCBMaXN0
SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmNvbnRhaW5zKGNvbnN0IFZhbHVlVHlwZSYg
dmFsdWUpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlwZT4KKyAgICBpbmxpbmUg
Ym9vbCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmNvbnRhaW5zKGNvbnN0IEFy
Z1R5cGUmIHZhbHVlKSBjb25zdAogICAgIHsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRy
YW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNs
YXRvcjsKLSAgICAgICAgcmV0dXJuIG1faW1wbC50ZW1wbGF0ZSBjb250YWluczxWYWx1ZVR5cGUs
IFRyYW5zbGF0b3I+KHZhbHVlKTsKKyAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0
b3I8VCwgQXJnVHlwZSwgaW5saW5lQ2FwYWNpdHksIEhhc2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7
CisgICAgICAgIHJldHVybiBtX2ltcGwudGVtcGxhdGUgY29udGFpbnM8QXJnVHlwZSwgVHJhbnNs
YXRvcj4odmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KLSAgICBwYWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0
PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IsIGJvb2w+IExpc3RIYXNoU2V0PFQsIGlu
bGluZUNhcGFjaXR5LCBVPjo6YWRkKGNvbnN0IFZhbHVlVHlwZSAmdmFsdWUpCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQWRkVHlwZT4KKyAgICBwYWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlu
bGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IsIGJvb2w+IExpc3RIYXNoU2V0PFQsIGlubGluZUNh
cGFjaXR5LCBVPjo6YWRkKGNvbnN0IEFkZFR5cGUgJnZhbHVlKQogICAgIHsKLSAgICAgICAgdHlw
ZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0eSwgSGFz
aEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKLSAgICAgICAgcGFpcjx0eXBlbmFtZSBJbXBsVHlwZTo6
aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8VmFsdWVUeXBlLCBO
b2RlQWxsb2NhdG9yKiwgVHJhbnNsYXRvcj4odmFsdWUsIG1fYWxsb2NhdG9yLmdldCgpKTsKKyAg
ICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VCwgQWRkVHlwZSwgaW5saW5lQ2Fw
YWNpdHksIEhhc2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7CisgICAgICAgIHBhaXI8dHlwZW5hbWUg
SW1wbFR5cGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX2ltcGwudGVtcGxhdGUgYWRkPEFk
ZFR5cGUsIE5vZGVBbGxvY2F0b3IqLCBUcmFuc2xhdG9yPih2YWx1ZSwgbV9hbGxvY2F0b3IuZ2V0
KCkpOwogICAgICAgICBpZiAocmVzdWx0LnNlY29uZCkKICAgICAgICAgICAgIGFwcGVuZE5vZGUo
KnJlc3VsdC5maXJzdCk7CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihtYWtlSXRlcmF0
b3IoKnJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwpAQCAtNTcxLDcgKzU3NSw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBh
Y2l0eSwgdHlwZW5hbWUgVT4KICAgICBwYWlyPHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGlu
ZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IsIGJvb2w+IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFj
aXR5LCBVPjo6aW5zZXJ0QmVmb3JlKGl0ZXJhdG9yIGl0LCBjb25zdCBWYWx1ZVR5cGUmIG5ld1Zh
bHVlKQogICAgIHsKLSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVU
eXBlLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKKyAgICAgICAg
dHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VCwgVmFsdWVUeXBlLCBpbmxpbmVDYXBhY2l0
eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKICAgICAgICAgcGFpcjx0eXBlbmFtZSBJbXBs
VHlwZTo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1faW1wbC50ZW1wbGF0ZSBhZGQ8VmFsdWVU
eXBlLCBOb2RlQWxsb2NhdG9yKiwgVHJhbnNsYXRvcj4obmV3VmFsdWUsIG1fYWxsb2NhdG9yLmdl
dCgpKTsKICAgICAgICAgaWYgKHJlc3VsdC5zZWNvbmQpCiAgICAgICAgICAgICBpbnNlcnROb2Rl
QmVmb3JlKGl0Lm5vZGUoKSwgKnJlc3VsdC5maXJzdCk7CkBAIC01OTUsNyArNTk5LDggQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgotICAgIGlubGluZSB2b2lkIExpc3RIYXNoU2V0PFQs
IGlubGluZUNhcGFjaXR5LCBVPjo6cmVtb3ZlKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlwZT4KKyAgICBpbmxpbmUgdm9pZCBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46OnJlbW92ZShjb25zdCBBcmdUeXBlJiB2YWx1ZSkKICAgICB7
CiAgICAgICAgIHJlbW92ZShmaW5kKHZhbHVlKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkZWZj
NDZhMzZlYzBiMzQ3ZWY0YzIyMjg4MzQzNGM2ZGYyZTFiYTEuLjEyYjVmYzc3ZjExZmMwYjQ1NmY5
OTExZTFkNWQ3ODA2ODc1NjRkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0w
My0xNSAgQmVuamFtaW4gUG91bGFpbiAgPGlraXBvdUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG1lbW9yeSBvZiBGbG9hdGlu
Z09iamVjdCBzaG91bGQgYmUgaGFuZGxlZCBhdXRvbWF0aWNhbGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTYxMQorCisgICAgICAgIFRoZSBtZXRo
b2Qgd2FzIGFkZGluZyBhIG51bGwgZXZlbnQgaW4gb3JkZXIgdG8gbWFyayB0aGUgZW5kIG9mIGV2
ZW50IHByb2Nlc3NpbmcuIFRoaXMKKyAgICAgICAgY2F1c2VzIHR5cGUgcHJvYmxlbSB3aXRoIHRo
ZSBjaGFuZ2Ugb2YgbGlzdCBoYXNoIHNldCBiZWNhdXNlIDAgaXMgdHlwZWQgYXMgaW50ZWdlciB3
aGVuCisgICAgICAgIHVzZWQgd2l0aG91dCBleHBsaWNpdCB0eXBpbmcuCisKKyAgICAgICAgSW5z
dGVhZCBvZiBpbnNlcnRpbmcgYW4gZWxlbWVudCwgd2UganVzdCBrZWVwIGEgcG9pbnRlciB0byB0
aGUgbGFzdCBldmVudCBiZWZvcmUgc3RhcnRpbmcKKyAgICAgICAgZXZlbnQgZGVsaXZlcnkuCisK
KyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1
ZXVlOjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKToKKwogMjAxMS0wMy0xNSAgS2V2aW4gT2xsaXZp
ZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcAppbmRleCA4ZTU0NGMxM2NjYjY0OTJj
MzQwMGQxODJlZDM4YzQzYjliMzc0N2M2Li45NjNlNTU4ZDNjYmMxMGNkNmU2MTRkNTdiMTE2NDc2
MmU0ZWFkMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwCkBAIC05OSwyMCArOTksMTgg
QEAgdm9pZCBFdmVudFF1ZXVlOjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKCkKIAogICAgIG1fbm9k
ZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLmNsZWFyKCk7CiAKLSAgICAvLyBJbnNlcnQgYSBtYXJr
ZXIgZm9yIHdoZXJlIHdlIHNob3VsZCBzdG9wLgotICAgIEFTU0VSVCghbV9xdWV1ZWRFdmVudHMu
Y29udGFpbnMoMCkpOwotICAgIGJvb2wgd2FzQWRkZWQgPSBtX3F1ZXVlZEV2ZW50cy5hZGQoMCku
c2Vjb25kOwotICAgIEFTU0VSVF9VTlVTRUQod2FzQWRkZWQsIHdhc0FkZGVkKTsgLy8gSXQgc2hv
dWxkIG5vdCBoYXZlIGFscmVhZHkgYmVlbiBpbiB0aGUgbGlzdC4KLQotICAgIFJlZlB0cjxFdmVu
dFF1ZXVlPiBwcm90ZWN0b3IodGhpcyk7Ci0KLSAgICB3aGlsZSAoIW1fcXVldWVkRXZlbnRzLmlz
RW1wdHkoKSkgewotICAgICAgICBMaXN0SGFzaFNldDxSZWZQdHI8RXZlbnQ+ID46Oml0ZXJhdG9y
IGl0ZXIgPSBtX3F1ZXVlZEV2ZW50cy5iZWdpbigpOwotICAgICAgICBSZWZQdHI8RXZlbnQ+IGV2
ZW50ID0gKml0ZXI7Ci0gICAgICAgIG1fcXVldWVkRXZlbnRzLnJlbW92ZShpdGVyKTsKLSAgICAg
ICAgaWYgKCFldmVudCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkaXNwYXRjaEV2ZW50
KGV2ZW50LmdldCgpKTsKKyAgICBpZiAoIW1fcXVldWVkRXZlbnRzLmlzRW1wdHkoKSkgeworICAg
ICAgICBSZWZQdHI8RXZlbnRRdWV1ZT4gcHJvdGVjdG9yKHRoaXMpOworCisgICAgICAgIFJlZlB0
cjxFdmVudD4gbGFzdFBlbmRpbmdFdmVudCA9IG1fcXVldWVkRXZlbnRzLmxhc3QoKTsKKyAgICAg
ICAgZG8geworICAgICAgICAgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEV2ZW50PiA+OjppdGVyYXRv
ciBpdGVyID0gbV9xdWV1ZWRFdmVudHMuYmVnaW4oKTsKKyAgICAgICAgICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQgPSAqaXRlcjsKKyAgICAgICAgICAgIG1fcXVldWVkRXZlbnRzLnJlbW92ZShpdGVy
KTsKKyAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOworICAgICAgICAgICAg
aWYgKGV2ZW50ID09IGxhc3RQZW5kaW5nRXZlbnQpCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0gd2hpbGUgKCFtX3F1ZXVlZEV2ZW50cy5pc0VtcHR5KCkpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85839</attachid>
            <date>2011-03-15 12:07:46 -0700</date>
            <delta_ts>2011-03-15 15:48:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55611-20110315200743.patch</filename>
            <type>text/plain</type>
            <size>12312</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODExMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJh
NDRhMzAwYjA1NzZhZWNlNWU5MDBjNzNhYjA2MDIyYWMwZGEyZjAuLjg1M2Q3ODdmMjMwZTc1NWU5
Zjk2MDYwMTg1YjBhMTQwMjE4YTE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDExLTAzLTE1ICBCZW5qYW1pbiBQb3VsYWluICA8aWtpcG91QGdtYWlsLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
bWVtb3J5IG9mIEZsb2F0aW5nT2JqZWN0IHNob3VsZCBiZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NjExCisK
KyAgICAgICAgTW9kaWZ5IExpc3RIYXNoU2V0IHRvIGJlIGFibGUgdG8gaGFuZGxlIGRpZmZlcmVu
dCB0eXBlcyBmb3IKKyAgICAgICAgaW50ZXJuYWwgc3RvcmFnZSBhbmQgZm9yIHRoZSBtZXRob2Rz
LgorICAgICAgICBUaGlzIGFsbG93IHRoZSB1c2Ugb2YgaW50ZXJuYWwgdHlwZSB3aXRob3V0IGNv
cHkgY29uc3RydWN0b3IsIG9yIGZvcgorICAgICAgICB3aGljaCB0aGUgY29weSBjb25zdHJ1Y3Rv
ciBzaG91bGQgYmUgYXZvaWRlZCB3aGVuIHBhc3NpbmcgdGhlIHZhbHVlLgorCisgICAgICAgIFRo
ZSBoYXNoIHRyYWl0IG9mIFJlZlB0ciBpcyBtb2RpZmllZCB0byBhbGxvdyBwYXNzaW5nIGEgUGFz
c1JlZlB0ci4KKyAgICAgICAgVGhpcyBtZWFuIHRoZSBMaXN0SGFzaFNldCBjYW4gaGF2ZSBhIFJl
ZlB0ciBpbnRlcm5hbGx5LCBhbmQgdXNlIFBhc3NSZWZQdHIgZm9yCisgICAgICAgIGl0cyBtZXRo
b2RzLgorCisgICAgICAgICogd3RmL0hhc2hGdW5jdGlvbnMuaDoKKyAgICAgICAgKiB3dGYvTGlz
dEhhc2hTZXQuaDoKKyAgICAgICAgKFdURjo6TGlzdEhhc2hTZXROb2RlOjpMaXN0SGFzaFNldE5v
ZGUpOgorICAgICAgICAoV1RGOjpMaXN0SGFzaFNldFRyYW5zbGF0b3I6Omhhc2gpOgorICAgICAg
ICAoV1RGOjpMaXN0SGFzaFNldFRyYW5zbGF0b3I6OmVxdWFsKToKKyAgICAgICAgKFdURjo6TGlz
dEhhc2hTZXRUcmFuc2xhdG9yOjp0cmFuc2xhdGUpOgorICAgICAgICAoV1RGOjo6OmZpbmQpOgor
ICAgICAgICAoV1RGOjo6OmNvbnRhaW5zKToKKyAgICAgICAgKFdURjo6OjphZGQpOgorICAgICAg
ICAoV1RGOjo6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChXVEY6Ojo6cmVtb3ZlKToKKwogMjAx
MS0wMy0xNSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvSGFzaEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9I
YXNoRnVuY3Rpb25zLmgKaW5kZXggMmM2NmEyZDlmYmYzY2UwZjc3MTkzNjhmNTdjYmIxNTU3YjAx
ZmM3OC4uMWNhNDUyMzk0OTNlYzU3MWU4MzRiZTVhN2JmNGNjYzRhNmU0NjdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoRnVuY3Rpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoRnVuY3Rpb25zLmgKQEAgLTEyNiwxMCArMTI2LDEyIEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBQdHJIYXNo
PFJlZlB0cjxQPiA+IDogUHRySGFzaDxQKj4gewogICAgICAgICB1c2luZyBQdHJIYXNoPFAqPjo6
aGFzaDsKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUmVmUHRyPFA+JiBrZXkp
IHsgcmV0dXJuIGhhc2goa2V5LmdldCgpKTsgfQorICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBQYXNzUmVmUHRyPFA+JiBrZXkpIHsgcmV0dXJuIGhhc2goa2V5LmdldCgpKTsgfQog
ICAgICAgICB1c2luZyBQdHJIYXNoPFAqPjo6ZXF1YWw7CiAgICAgICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IFJlZlB0cjxQPiYgYSwgY29uc3QgUmVmUHRyPFA+JiBiKSB7IHJldHVybiBhID09
IGI7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoUCogYSwgY29uc3QgUmVmUHRyPFA+JiBi
KSB7IHJldHVybiBhID09IGI7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVm
UHRyPFA+JiBhLCBQKiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICAgICAgc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgUmVmUHRyPFA+JiBhLCBjb25zdCBQYXNzUmVmUHRyPFA+JiBiKSB7IHJldHVy
biBhID09IGI7IH0KICAgICB9OwogCiAgICAgLy8gZGVmYXVsdCBoYXNoIGZ1bmN0aW9uIGZvciBl
YWNoIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTGlzdEhhc2hT
ZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTGlzdEhhc2hTZXQuaAppbmRleCBiMGQw
ZTQzZDU1ZWJkODI2NWVhOTllNDY0ZjIyOWZlMjk5MTkzOTk0Li41ZmE1NGU5MDlkMDhkMTBiNDlh
ODRiMWNlMmQxZTk2YmMyMGQ3NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0xpc3RIYXNoU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFz
aFNldC5oCkBAIC05OCw5ICs5OCw5IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBjb25zdCBW
YWx1ZVR5cGUmIGxhc3QoKSBjb25zdDsKICAgICAgICAgdm9pZCByZW1vdmVMYXN0KCk7CiAKLSAg
ICAgICAgaXRlcmF0b3IgZmluZChjb25zdCBWYWx1ZVR5cGUmKTsKLSAgICAgICAgY29uc3RfaXRl
cmF0b3IgZmluZChjb25zdCBWYWx1ZVR5cGUmKSBjb25zdDsKLSAgICAgICAgYm9vbCBjb250YWlu
cyhjb25zdCBWYWx1ZVR5cGUmKSBjb25zdDsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJn
VHlwZT4gaXRlcmF0b3IgZmluZChjb25zdCBBcmdUeXBlJik7CisgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEFyZ1R5cGU+IGNvbnN0X2l0ZXJhdG9yIGZpbmQoY29uc3QgQXJnVHlwZSYpIGNvbnN0
OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmdUeXBlPiBib29sIGNvbnRhaW5zKGNvbnN0
IEFyZ1R5cGUmKSBjb25zdDsKIAogICAgICAgICAvLyBBbiBhbHRlcm5hdGUgdmVyc2lvbiBvZiBm
aW5kKCkgdGhhdCBmaW5kcyB0aGUgb2JqZWN0IGJ5IGhhc2hpbmcgYW5kIGNvbXBhcmluZwogICAg
ICAgICAvLyB3aXRoIHNvbWUgb3RoZXIgdHlwZSwgdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdHlwZSBj
b252ZXJzaW9uLgpAQCAtMTExLDEyICsxMTEsMTIgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICAg
ICAgLy8gdGhlIHJldHVybiB2YWx1ZSBpcyBhIHBhaXIgb2YgYW4gaXRlcmF0b3IgdG8gdGhlIG5l
dyB2YWx1ZSdzIGxvY2F0aW9uLCAKICAgICAgICAgLy8gYW5kIGEgYm9vbCB0aGF0IGlzIHRydWUg
aWYgYW4gbmV3IGVudHJ5IHdhcyBhZGRlZAotICAgICAgICBwYWlyPGl0ZXJhdG9yLCBib29sPiBh
ZGQoY29uc3QgVmFsdWVUeXBlJik7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+
IHBhaXI8aXRlcmF0b3IsIGJvb2w+IGFkZChjb25zdCBBcmdUeXBlJik7CiAKICAgICAgICAgcGFp
cjxpdGVyYXRvciwgYm9vbD4gaW5zZXJ0QmVmb3JlKGNvbnN0IFZhbHVlVHlwZSYgYmVmb3JlVmFs
dWUsIGNvbnN0IFZhbHVlVHlwZSYgbmV3VmFsdWUpOwogICAgICAgICBwYWlyPGl0ZXJhdG9yLCBi
b29sPiBpbnNlcnRCZWZvcmUoaXRlcmF0b3IgaXQsIGNvbnN0IFZhbHVlVHlwZSYpOwogCi0gICAg
ICAgIHZvaWQgcmVtb3ZlKGNvbnN0IFZhbHVlVHlwZSYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBBcmdUeXBlPiB2b2lkIHJlbW92ZShjb25zdCBBcmdUeXBlJik7CiAgICAgICAgIHZvaWQg
cmVtb3ZlKGl0ZXJhdG9yKTsKICAgICAgICAgdm9pZCBjbGVhcigpOwogCkBAIC0yMDgsNyArMjA4
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmcsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eT4gc3RydWN0IExpc3RIYXNoU2V0Tm9kZSB7CiAgICAgICAgIHR5
cGVkZWYgTGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eT4g
Tm9kZUFsbG9jYXRvcjsKIAotICAgICAgICBMaXN0SGFzaFNldE5vZGUoVmFsdWVBcmcgdmFsdWUp
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+IExpc3RIYXNoU2V0Tm9kZShBcmdU
eXBlIHZhbHVlKQogICAgICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAgICAgLCBt
X3ByZXYoMCkKICAgICAgICAgICAgICwgbV9uZXh0KDApCkBAIC0zNTgsMTUgKzM1OCwxNSBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICB9OwogCiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5
cGUsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucz4KKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEFyZ1R5cGUsIHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucz4KICAgICBzdHJ1Y3QgTGlzdEhhc2hT
ZXRUcmFuc2xhdG9yIHsKICAgICBwcml2YXRlOgogICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0
Tm9kZTxWYWx1ZVR5cGUsIGlubGluZUNhcGFjaXR5PiBOb2RlOwogICAgICAgICB0eXBlZGVmIExp
c3RIYXNoU2V0Tm9kZUFsbG9jYXRvcjxWYWx1ZVR5cGUsIGlubGluZUNhcGFjaXR5PiBOb2RlQWxs
b2NhdG9yOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
VmFsdWVUeXBlJiBrZXkpIHsgcmV0dXJuIEhhc2hGdW5jdGlvbnM6Omhhc2goa2V5KTsgfQotICAg
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChOb2RlKiBjb25zdCYgYSwgY29uc3QgVmFsdWVUeXBlJiBi
KSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLT5tX3ZhbHVlLCBiKTsgfQotICAgICAg
ICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoTm9kZSomIGxvY2F0aW9uLCBjb25zdCBWYWx1ZVR5cGUm
IGtleSwgTm9kZUFsbG9jYXRvciogYWxsb2NhdG9yKQorICAgICAgICBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBBcmdUeXBlJiBrZXkpIHsgcmV0dXJuIEhhc2hGdW5jdGlvbnM6Omhhc2goa2V5
KTsgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChOb2RlKiBjb25zdCYgYSwgY29uc3QgQXJn
VHlwZSYgYikgeyByZXR1cm4gSGFzaEZ1bmN0aW9uczo6ZXF1YWwoYS0+bV92YWx1ZSwgYik7IH0K
KyAgICAgICAgc3RhdGljIHZvaWQgdHJhbnNsYXRlKE5vZGUqJiBsb2NhdGlvbiwgY29uc3QgQXJn
VHlwZSYga2V5LCBOb2RlQWxsb2NhdG9yKiBhbGxvY2F0b3IpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGxvY2F0aW9uID0gbmV3IChhbGxvY2F0b3IpIE5vZGUoa2V5KTsKICAgICAgICAgfQpAQCAt
NDkzLDIwICs0OTMsMjIgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgotICAgIGlubGlu
ZSB0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yIExp
c3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6ZmluZChjb25zdCBWYWx1ZVR5cGUmIHZh
bHVlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+CisgICAgaW5saW5lIHR5cGVuYW1l
IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IgTGlzdEhhc2hTZXQ8
VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpmaW5kKGNvbnN0IEFyZ1R5cGUmIHZhbHVlKQogICAgIHsK
LSAgICAgICAgdHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VmFsdWVUeXBlLCBpbmxpbmVD
YXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKLSAgICAgICAgSW1wbFR5cGVJdGVy
YXRvciBpdCA9IG1faW1wbC50ZW1wbGF0ZSBmaW5kPFZhbHVlVHlwZSwgVHJhbnNsYXRvcj4odmFs
dWUpOworICAgICAgICB0eXBlZGVmIExpc3RIYXNoU2V0VHJhbnNsYXRvcjxULCBBcmdUeXBlLCBp
bmxpbmVDYXBhY2l0eSwgSGFzaEZ1bmN0aW9ucz4gVHJhbnNsYXRvcjsKKyAgICAgICAgSW1wbFR5
cGVJdGVyYXRvciBpdCA9IG1faW1wbC50ZW1wbGF0ZSBmaW5kPEFyZ1R5cGUsIFRyYW5zbGF0b3I+
KHZhbHVlKTsKICAgICAgICAgaWYgKGl0ID09IG1faW1wbC5lbmQoKSkKICAgICAgICAgICAgIHJl
dHVybiBlbmQoKTsKICAgICAgICAgcmV0dXJuIG1ha2VJdGVyYXRvcigqaXQpOyAKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1l
IFU+Ci0gICAgaW5saW5lIHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBV
Pjo6Y29uc3RfaXRlcmF0b3IgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpmaW5k
KGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJn
VHlwZT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHks
IFU+Ojpjb25zdF9pdGVyYXRvciBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmZp
bmQoY29uc3QgQXJnVHlwZSYgdmFsdWUpIGNvbnN0CiAgICAgewotICAgICAgICB0eXBlZGVmIExp
c3RIYXNoU2V0VHJhbnNsYXRvcjxWYWx1ZVR5cGUsIGlubGluZUNhcGFjaXR5LCBIYXNoRnVuY3Rp
b25zPiBUcmFuc2xhdG9yOwotICAgICAgICBJbXBsVHlwZUNvbnN0SXRlcmF0b3IgaXQgPSBtX2lt
cGwudGVtcGxhdGUgZmluZDxWYWx1ZVR5cGUsIFRyYW5zbGF0b3I+KHZhbHVlKTsKKyAgICAgICAg
dHlwZWRlZiBMaXN0SGFzaFNldFRyYW5zbGF0b3I8VCwgQXJnVHlwZSwgaW5saW5lQ2FwYWNpdHks
IEhhc2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7CisgICAgICAgIEltcGxUeXBlQ29uc3RJdGVyYXRv
ciBpdCA9IG1faW1wbC50ZW1wbGF0ZSBmaW5kPEFyZ1R5cGUsIFRyYW5zbGF0b3I+KHZhbHVlKTsK
ICAgICAgICAgaWYgKGl0ID09IG1faW1wbC5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBlbmQo
KTsKICAgICAgICAgcmV0dXJuIG1ha2VDb25zdEl0ZXJhdG9yKCppdCk7CkBAIC01NTIsMTcgKzU1
NCwxOSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+Ci0gICAgaW5saW5lIGJvb2wgTGlz
dEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojpjb250YWlucyhjb25zdCBWYWx1ZVR5cGUm
IHZhbHVlKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+CisgICAgaW5saW5l
IGJvb2wgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+Ojpjb250YWlucyhjb25zdCBB
cmdUeXBlJiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRU
cmFuc2xhdG9yPFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNpdHksIEhhc2hGdW5jdGlvbnM+IFRyYW5z
bGF0b3I7Ci0gICAgICAgIHJldHVybiBtX2ltcGwudGVtcGxhdGUgY29udGFpbnM8VmFsdWVUeXBl
LCBUcmFuc2xhdG9yPih2YWx1ZSk7CisgICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xh
dG9yPFQsIEFyZ1R5cGUsIGlubGluZUNhcGFjaXR5LCBIYXNoRnVuY3Rpb25zPiBUcmFuc2xhdG9y
OworICAgICAgICByZXR1cm4gbV9pbXBsLnRlbXBsYXRlIGNvbnRhaW5zPEFyZ1R5cGUsIFRyYW5z
bGF0b3I+KHZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3Qg
aW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+Ci0gICAgcGFpcjx0eXBlbmFtZSBMaXN0SGFzaFNl
dDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yLCBib29sPiBMaXN0SGFzaFNldDxULCBp
bmxpbmVDYXBhY2l0eSwgVT46OmFkZChjb25zdCBWYWx1ZVR5cGUgJnZhbHVlKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEFkZFR5cGU+CisgICAgcGFpcjx0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBp
bmxpbmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yLCBib29sPiBMaXN0SGFzaFNldDxULCBpbmxpbmVD
YXBhY2l0eSwgVT46OmFkZChjb25zdCBBZGRUeXBlICZ2YWx1ZSkKICAgICB7Ci0gICAgICAgIHR5
cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNpdHksIEhh
c2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7Ci0gICAgICAgIHBhaXI8dHlwZW5hbWUgSW1wbFR5cGU6
Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX2ltcGwudGVtcGxhdGUgYWRkPFZhbHVlVHlwZSwg
Tm9kZUFsbG9jYXRvciosIFRyYW5zbGF0b3I+KHZhbHVlLCBtX2FsbG9jYXRvci5nZXQoKSk7Cisg
ICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFQsIEFkZFR5cGUsIGlubGluZUNh
cGFjaXR5LCBIYXNoRnVuY3Rpb25zPiBUcmFuc2xhdG9yOworICAgICAgICBwYWlyPHR5cGVuYW1l
IEltcGxUeXBlOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxB
ZGRUeXBlLCBOb2RlQWxsb2NhdG9yKiwgVHJhbnNsYXRvcj4odmFsdWUsIG1fYWxsb2NhdG9yLmdl
dCgpKTsKICAgICAgICAgaWYgKHJlc3VsdC5zZWNvbmQpCiAgICAgICAgICAgICBhcHBlbmROb2Rl
KCpyZXN1bHQuZmlyc3QpOwogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobWFrZUl0ZXJh
dG9yKCpyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKQEAgLTU3MSw3ICs1NzUsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIFU+CiAgICAgcGFpcjx0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxp
bmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yLCBib29sPiBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBh
Y2l0eSwgVT46Omluc2VydEJlZm9yZShpdGVyYXRvciBpdCwgY29uc3QgVmFsdWVUeXBlJiBuZXdW
YWx1ZSkKICAgICB7Ci0gICAgICAgIHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFZhbHVl
VHlwZSwgaW5saW5lQ2FwYWNpdHksIEhhc2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7CisgICAgICAg
IHR5cGVkZWYgTGlzdEhhc2hTZXRUcmFuc2xhdG9yPFQsIFZhbHVlVHlwZSwgaW5saW5lQ2FwYWNp
dHksIEhhc2hGdW5jdGlvbnM+IFRyYW5zbGF0b3I7CiAgICAgICAgIHBhaXI8dHlwZW5hbWUgSW1w
bFR5cGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX2ltcGwudGVtcGxhdGUgYWRkPFZhbHVl
VHlwZSwgTm9kZUFsbG9jYXRvciosIFRyYW5zbGF0b3I+KG5ld1ZhbHVlLCBtX2FsbG9jYXRvci5n
ZXQoKSk7CiAgICAgICAgIGlmIChyZXN1bHQuc2Vjb25kKQogICAgICAgICAgICAgaW5zZXJ0Tm9k
ZUJlZm9yZShpdC5ub2RlKCksICpyZXN1bHQuZmlyc3QpOwpAQCAtNTk1LDcgKzU5OSw4IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KLSAgICBpbmxpbmUgdm9pZCBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46OnJlbW92ZShjb25zdCBWYWx1ZVR5cGUmIHZhbHVlKQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+CisgICAgaW5saW5lIHZvaWQgTGlzdEhhc2hTZXQ8
VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpyZW1vdmUoY29uc3QgQXJnVHlwZSYgdmFsdWUpCiAgICAg
ewogICAgICAgICByZW1vdmUoZmluZCh2YWx1ZSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZGVm
YzQ2YTM2ZWMwYjM0N2VmNGMyMjI4ODM0MzRjNmRmMmUxYmExLi4xMmI1ZmM3N2YxMWZjMGI0NTZm
OTkxMWUxZDVkNzgwNjg3NTY0ZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEt
MDMtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxpa2lwb3VAZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtZW1vcnkgb2YgRmxvYXRp
bmdPYmplY3Qgc2hvdWxkIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU2MTEKKworICAgICAgICBUaGUgbWV0
aG9kIHdhcyBhZGRpbmcgYSBudWxsIGV2ZW50IGluIG9yZGVyIHRvIG1hcmsgdGhlIGVuZCBvZiBl
dmVudCBwcm9jZXNzaW5nLiBUaGlzCisgICAgICAgIGNhdXNlcyB0eXBlIHByb2JsZW0gd2l0aCB0
aGUgY2hhbmdlIG9mIGxpc3QgaGFzaCBzZXQgYmVjYXVzZSAwIGlzIHR5cGVkIGFzIGludGVnZXIg
d2hlbgorICAgICAgICB1c2VkIHdpdGhvdXQgZXhwbGljaXQgdHlwaW5nLgorCisgICAgICAgIElu
c3RlYWQgb2YgaW5zZXJ0aW5nIGFuIGVsZW1lbnQsIHdlIGp1c3Qga2VlcCBhIHBvaW50ZXIgdG8g
dGhlIGxhc3QgZXZlbnQgYmVmb3JlIHN0YXJ0aW5nCisgICAgICAgIGV2ZW50IGRlbGl2ZXJ5Lgor
CisgICAgICAgICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRR
dWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCk6CisKIDIwMTEtMDMtMTUgIEtldmluIE9sbGl2
aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAKaW5kZXggOGU1NDRjMTNjY2I2NDky
YzM0MDBkMTgyZWQzOGM0M2I5YjM3NDdjNi4uOTYzZTU1OGQzY2JjMTBjZDZlNjE0ZDU3YjExNjQ3
NjJlNGVhZDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcApAQCAtOTksMjAgKzk5LDE4
IEBAIHZvaWQgRXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCgpCiAKICAgICBtX25v
ZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5jbGVhcigpOwogCi0gICAgLy8gSW5zZXJ0IGEgbWFy
a2VyIGZvciB3aGVyZSB3ZSBzaG91bGQgc3RvcC4KLSAgICBBU1NFUlQoIW1fcXVldWVkRXZlbnRz
LmNvbnRhaW5zKDApKTsKLSAgICBib29sIHdhc0FkZGVkID0gbV9xdWV1ZWRFdmVudHMuYWRkKDAp
LnNlY29uZDsKLSAgICBBU1NFUlRfVU5VU0VEKHdhc0FkZGVkLCB3YXNBZGRlZCk7IC8vIEl0IHNo
b3VsZCBub3QgaGF2ZSBhbHJlYWR5IGJlZW4gaW4gdGhlIGxpc3QuCi0KLSAgICBSZWZQdHI8RXZl
bnRRdWV1ZT4gcHJvdGVjdG9yKHRoaXMpOwotCi0gICAgd2hpbGUgKCFtX3F1ZXVlZEV2ZW50cy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEV2ZW50PiA+OjppdGVyYXRv
ciBpdGVyID0gbV9xdWV1ZWRFdmVudHMuYmVnaW4oKTsKLSAgICAgICAgUmVmUHRyPEV2ZW50PiBl
dmVudCA9ICppdGVyOwotICAgICAgICBtX3F1ZXVlZEV2ZW50cy5yZW1vdmUoaXRlcik7Ci0gICAg
ICAgIGlmICghZXZlbnQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGlzcGF0Y2hFdmVu
dChldmVudC5nZXQoKSk7CisgICAgaWYgKCFtX3F1ZXVlZEV2ZW50cy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgUmVmUHRyPEV2ZW50UXVldWU+IHByb3RlY3Rvcih0aGlzKTsKKworICAgICAgICBSZWZQ
dHI8RXZlbnQ+IGxhc3RQZW5kaW5nRXZlbnQgPSBtX3F1ZXVlZEV2ZW50cy5sYXN0KCk7CisgICAg
ICAgIGRvIHsKKyAgICAgICAgICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFdmVudD4gPjo6aXRlcmF0
b3IgaXRlciA9IG1fcXVldWVkRXZlbnRzLmJlZ2luKCk7CisgICAgICAgICAgICBSZWZQdHI8RXZl
bnQ+IGV2ZW50ID0gKml0ZXI7CisgICAgICAgICAgICBtX3F1ZXVlZEV2ZW50cy5yZW1vdmUoaXRl
cik7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKKyAgICAgICAgICAg
IGlmIChldmVudCA9PSBsYXN0UGVuZGluZ0V2ZW50KQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9IHdoaWxlICghbV9xdWV1ZWRFdmVudHMuaXNFbXB0eSgpKTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="78026"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="78027"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>