<?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>15807</bug_id>
          
          <creation_ts>2007-11-02 15:10:19 -0700</creation_ts>
          <short_desc>HashMap needs a take() function that combines get and remove</short_desc>
          <delta_ts>2007-11-02 17:42:18 -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>Web Template Framework</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60095</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-02 15:10:19 -0700</bug_when>
    <thetext>Hyatt pointed out that it&apos;s awkward to use iterators to find something and then get the value and remove it. Instead he&apos;d like a take() function built into map that does the job. I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60110</commentid>
    <comment_count>1</comment_count>
      <attachid>17004</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-02 17:13:42 -0700</bug_when>
    <thetext>Created attachment 17004
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60112</commentid>
    <comment_count>2</comment_count>
      <attachid>17004</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-02 17:20:25 -0700</bug_when>
    <thetext>Comment on attachment 17004
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60118</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-02 17:42:18 -0700</bug_when>
    <thetext>Committed revision 27385.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17004</attachid>
            <date>2007-11-02 17:13:42 -0700</date>
            <delta_ts>2007-11-02 17:20:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>TakePatch.txt</filename>
            <type>text/plain</type>
            <size>12842</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzgxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDctMTEtMDIgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4MDcKKyAgICAgICAgICBIYXNoTWFwIG5lZWRzIGEgdGFrZSgpIGZ1bmN0aW9uIHRoYXQgY29t
YmluZXMgZ2V0IGFuZCByZW1vdmUKKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6IEFkZGVkIHRh
a2UgZnVuY3Rpb24uIFNpbXBsaXN0aWMgaW1wbGVtZW50YXRpb24gZm9yIG5vdywKKyAgICAgICAg
YnV0IHN0aWxsIGRvZXMgb25seSBvbmUgaGFzaCB0YWJsZSBsb29rdXAuCisKKyAgICAgICAgKiBr
anMvYXJyYXlfaW5zdGFuY2UuY3BwOiAoS0pTOjpBcnJheUluc3RhbmNlOjpwdXQpOiBVc2UgdGFr
ZSByYXRoZXIgdGhhbgorICAgICAgICBhIGZpbmQgZm9sbG93ZWQgYnkgYSByZW1vdmUuCisKIDIw
MDctMTEtMDIgIERhdmlkIENhcnNvbiAgPGRhY2Fyc29uQGdtYWlsLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9pbnN0YW5j
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2FycmF5X2luc3RhbmNlLmNw
cAkocmV2aXNpb24gMjczNzcpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfaW5zdGFuY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsMTUgKzI4MSw4IEBAIHZvaWQgQXJyYXlJbnN0YW5j
ZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgICAgIHN0b3JhZ2UtPm1fdmVjdG9yW2pd
ID0gMDsKICAgICAgICAgbWFwLT5yZW1vdmUoaSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBqID0gdmVjdG9yTGVuZ3RoOyBqIDwgbmV3VmVjdG9yTGVuZ3RoOyArK2opIHsK
LSAgICAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5k
KGopOwotICAgICAgICAgICAgaWYgKGl0ID09IG1hcC0+ZW5kKCkpCi0gICAgICAgICAgICAgICAg
c3RvcmFnZS0+bV92ZWN0b3Jbal0gPSAwOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgc3RvcmFnZS0+bV92ZWN0b3Jbal0gPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAgICAg
IG1hcC0+cmVtb3ZlKGl0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBmb3Ig
KHVuc2lnbmVkIGogPSB2ZWN0b3JMZW5ndGg7IGogPCBuZXdWZWN0b3JMZW5ndGg7ICsraikKKyAg
ICAgICAgICAgIHN0b3JhZ2UtPm1fdmVjdG9yW2pdID0gbWFwLT50YWtlKGopOwogICAgIH0KIAog
ICAgIHN0b3JhZ2UtPm1fdmVjdG9yW2ldID0gdmFsdWU7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93
dGYvSGFzaE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9IYXNoTWFwLmgJ
KHJldmlzaW9uIDI3Mzc3KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hNYXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIC8vIC0qLSBtb2RlOiBjKys7IGMtYmFzaWMtb2Zmc2V0
OiA0IC0qLQogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCi0g
KgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05Nyw5ICs5NSwxMSBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICAgICAgcGFpcjxpdGVyYXRvciwgYm9vbD4gYWRkKGNvbnN0IEtleVR5cGUmLCBjb25z
dCBNYXBwZWRUeXBlJik7IAogCiAgICAgICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEtleVR5cGUmKTsK
LSAgICAgICAgdm9pZCByZW1vdmUoaXRlcmF0b3IgaXQpOworICAgICAgICB2b2lkIHJlbW92ZShp
dGVyYXRvcik7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorICAgICAgICBNYXBwZWRUeXBlIHRh
a2UoY29uc3QgS2V5VHlwZSYpOyAvLyBlZmZpY2llbnQgY29tYmluYXRpb24gb2YgZ2V0IHdpdGgg
cmVtb3ZlCisKICAgICBwcml2YXRlOgogICAgICAgICBwYWlyPGl0ZXJhdG9yLCBib29sPiBpbmxp
bmVBZGQoY29uc3QgS2V5VHlwZSYsIGNvbnN0IE1hcHBlZFR5cGUmKTsKICAgICAgICAgdm9pZCBy
ZWZBbGwoKTsKQEAgLTMyNCw2ICszMjQsMTkgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIG1f
aW1wbC5jbGVhcigpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KKyAgICB0
eXBlbmFtZSBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46Ok1hcHBlZFR5cGUKKyAg
ICBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OnRha2UoY29uc3QgS2V5VHlwZSYg
a2V5KQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBjYW4gcHJvYmFibHkgYmUgbWFkZSBtb3JlIGVm
ZmljaWVudCB0byBhdm9pZCByZWYvZGVyZWYgY2h1cm4uCisgICAgICAgIGl0ZXJhdG9yIGl0ID0g
ZmluZChrZXkpOworICAgICAgICBpZiAoaXQgPT0gZW5kKCkpCisgICAgICAgICAgICByZXR1cm4g
TWFwcGVkVHJhaXRzOjplbXB0eVZhbHVlKCk7CisgICAgICAgIHR5cGVuYW1lIEhhc2hNYXA8VCwg
VSwgViwgVywgTWFwcGVkVHJhaXRzPjo6TWFwcGVkVHlwZSByZXN1bHQgPSBpdC0+c2Vjb25kOwor
ICAgICAgICByZW1vdmUoaXQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcs
IHR5cGVuYW1lIFg+CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwg
VywgWD4mIGEsIGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGIpCiAgICAgewpJbmRleDog
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI3MzgxKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyOSBAQAorMjAwNy0xMS0wMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSB1c2UgdGhlIG5l
dyBIYXNoTWFwOjp0YWtlIGZ1bmN0aW9uIHdoZXJlIGFwcHJvcHJpYXRlCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHA6CisgICAgICAgIChLSlM6OmFkZFdyYXBwZXIpOiBN
YWRlIGFuIGlubGluZSByYXRoZXIgdGhhbiBhIG1hY3JvOyBpbmxpbmVzIGdvb2QsIG1hY3JvcyBi
YWQuCisgICAgICAgIChLSlM6OnJlbW92ZVdyYXBwZXIpOiBEaXR0by4KKyAgICAgICAgKEtKUzo6
cmVtb3ZlV3JhcHBlcnMpOiBEaXR0by4KKyAgICAgICAgKEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU9iamVjdCk6IFVzZSB0aGUgaW5saW5lIGluc3RlYWQgb2YgdGhlIG1hY3JvLgorICAg
ICAgICAoS0pTOjpTY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KTogRGl0dG8uIFRo
aXMgaW52b2x2ZXMgdXNpbmcgdGFrZSBpbnN0ZWFkCisgICAgICAgIG9mIHJlbW92ZSAtLSBpbiB0
aGVvcnkgZXZlciBzbyBzbGlnaHRseSBsZXNzIGVmZmljaWVudCwgYnV0IEkgdGhpbmsgaXQncyBm
aW5lLgorICAgICAgICAoS0pTOjpTY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KTogRGl0dG8uCisgICAgICAgIChLSlM6OlNjcmlwdEludGVycHJldGVyOjpwdXRET01O
b2RlRm9yRG9jdW1lbnQpOiBVc2UgdGhlIGlubGluZSBpbnN0ZWFkIG9mIHRoZSBtYWNyby4KKyAg
ICAgICAgKEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1l
bnQpOiBVc2UgdGFrZSBpbnN0ZWFkIG9mIGZpbmQvcmVtb3ZlLgorICAgICAgICAoS0pTOjpTY3Jp
cHRJbnRlcnByZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KTogVXNlIHRoZSBpbmxpbmVzIGlu
c3RlYWQgb2YgdGhlIG1hY3Jvcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cu
Y3BwOiAoS0pTOjpXaW5kb3c6OmNsZWFyVGltZW91dCk6IFVzZSB0YWtlIGluc3RlYWQgb2YgZmlu
ZC9yZW1vdmUuCisgICAgICAgICogYnJpZGdlL21hYy9BWE9iamVjdENhY2hlTWFjLm1tOiAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cmVtb3ZlKTogRGl0dG8uCisgICAgICAgICogcGFnZS9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcDogKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
OjpjbGVhcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6flJlbmRlckJsb2NrKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0RGVzaXJlZENvbHVtbkNvdW50QW5kV2lkdGgp
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6IERpdHRvLihX
ZWJDb3JlOjpSb290SW5saW5lQm94OjpkZXRhY2hFbGxpcHNpc0JveCk6IERpdHRvLgorCiAyMDA3
LTExLTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNaXR6LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAJKHJldmlzaW9u
IDI3Mzc3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw0IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgbGlicmFyaWVzCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KQEAgLTY2LDE3ICs2NSwyNSBAQCB0eXBlZGVm
IEhhc2hNYXA8RG9jdW1lbnQqLCBOb2RlTWFwKj4gTm9kCiAvLyBhbGwgYXJlIHVucmVnaXN0ZXJl
ZCBiZWZvcmUgdGhleSBhcmUgZGVzdHJveWVkLiBUaGlzIGhhcyBoZWxwZWQgdXMgZml4IGF0CiAv
LyBsZWFzdCBvbmUgYnVnLgogCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKERPTU9iamVjdCogd3Jh
cHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKERPTU9iamVjdCogd3JhcHBlcik7Citz
dGF0aWMgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBOb2RlTWFwJiB3cmFwcGVycyk7CisKICNp
ZmRlZiBOREVCVUcKIAotI2RlZmluZSBBRERfV1JBUFBFUih3cmFwcGVyKQotI2RlZmluZSBSRU1P
VkVfV1JBUFBFUih3cmFwcGVyKQotI2RlZmluZSBSRU1PVkVfV1JBUFBFUlMod3JhcHBlcnMpCitz
dGF0aWMgaW5saW5lIHZvaWQgYWRkV3JhcHBlcihET01PYmplY3QqKQoreworfQogCi0jZWxzZQor
c3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXIoRE9NT2JqZWN0KikKK3sKK30KIAotI2Rl
ZmluZSBBRERfV1JBUFBFUih3cmFwcGVyKSBhZGRXcmFwcGVyKHdyYXBwZXIpCi0jZGVmaW5lIFJF
TU9WRV9XUkFQUEVSKHdyYXBwZXIpIHJlbW92ZVdyYXBwZXIod3JhcHBlcikKLSNkZWZpbmUgUkVN
T1ZFX1dSQVBQRVJTKHdyYXBwZXJzKSByZW1vdmVXcmFwcGVycyh3cmFwcGVycykKK3N0YXRpYyBp
bmxpbmUgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBOb2RlTWFwJikKK3sKK30KKworI2Vsc2UK
IAogc3RhdGljIEhhc2hTZXQ8RE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQogewpAQCAtMTQ4LDE0
ICsxNTUsMTMgQEAgRE9NT2JqZWN0KiBTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZQogCiB2
b2lkIFNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBE
T01PYmplY3QqIHdyYXBwZXIpIAogewotICAgIEFERF9XUkFQUEVSKHdyYXBwZXIpOworICAgIGFk
ZFdyYXBwZXIod3JhcHBlcik7CiAgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIHdy
YXBwZXIpOwogfQogCiB2b2lkIFNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9p
ZCogb2JqZWN0SGFuZGxlKQogewotICAgIFJFTU9WRV9XUkFQUEVSKGRvbU9iamVjdHMoKS5nZXQo
b2JqZWN0SGFuZGxlKSk7Ci0gICAgZG9tT2JqZWN0cygpLnJlbW92ZShvYmplY3RIYW5kbGUpOwor
ICAgIHJlbW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7CiB9CiAK
IEpTTm9kZSogU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVu
dCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCkBAIC0xNzAsMTkgKzE3NiwxOCBAQCBKU05vZGUqIFNj
cmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yCiAKIHZvaWQgU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUp
CiB7Ci0gICAgUkVNT1ZFX1dSQVBQRVIoZ2V0RE9NTm9kZUZvckRvY3VtZW50KGRvY3VtZW50LCBu
b2RlKSk7CiAgICAgaWYgKCFkb2N1bWVudCkgewotICAgICAgICBkb21PYmplY3RzKCkucmVtb3Zl
KG5vZGUpOworICAgICAgICByZW1vdmVXcmFwcGVyKGRvbU9iamVjdHMoKS50YWtlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBOb2RlTWFwKiBkb2N1bWVudERpY3QgPSBkb21O
b2Rlc1BlckRvY3VtZW50KCkuZ2V0KGRvY3VtZW50KTsKICAgICBpZiAoZG9jdW1lbnREaWN0KQot
ICAgICAgICBkb2N1bWVudERpY3QtPnJlbW92ZShub2RlKTsKKyAgICAgICAgcmVtb3ZlV3JhcHBl
cihkb2N1bWVudERpY3QtPnRha2Uobm9kZSkpOwogfQogCiB2b2lkIFNjcmlwdEludGVycHJldGVy
OjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlLCBK
U05vZGUqIHdyYXBwZXIpCiB7Ci0gICAgQUREX1dSQVBQRVIod3JhcHBlcik7CisgICAgYWRkV3Jh
cHBlcih3cmFwcGVyKTsKICAgICBpZiAoIWRvY3VtZW50KSB7CiAgICAgICAgIGRvbU9iamVjdHMo
KS5zZXQobm9kZSwgd3JhcHBlcik7CiAgICAgICAgIHJldHVybjsKQEAgLTE5OCwxMiArMjAzLDEx
IEBAIHZvaWQgU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2MKIHZvaWQgU2NyaXB0
SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewogICAgIEFTU0VSVChkb2N1bWVudCk7Ci0gICAgTm9kZVBlckRvY01hcDo6aXRlcmF0
b3IgaXQgPSBkb21Ob2Rlc1BlckRvY3VtZW50KCkuZmluZChkb2N1bWVudCk7Ci0gICAgaWYgKGl0
ICE9IGRvbU5vZGVzUGVyRG9jdW1lbnQoKS5lbmQoKSkgewotICAgICAgICBSRU1PVkVfV1JBUFBF
UlMoKml0LT5zZWNvbmQpOwotICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKLSAgICAgICAgZG9t
Tm9kZXNQZXJEb2N1bWVudCgpLnJlbW92ZShpdCk7Ci0gICAgfQorICAgIE5vZGVNYXAqIG1hcCA9
IGRvbU5vZGVzUGVyRG9jdW1lbnQoKS50YWtlKGRvY3VtZW50KTsKKyAgICBpZiAoIW1hcCkKKyAg
ICAgICAgcmV0dXJuOworICAgIHJlbW92ZVdyYXBwZXJzKCptYXApOworICAgIGRlbGV0ZSBtYXA7
CiB9CiAKIHZvaWQgU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERv
Y3VtZW50KiBkb2MpCkBAIC0yNDEsMTAgKzI0NSwxMCBAQCB2b2lkIFNjcmlwdEludGVycHJldGVy
Ojp1cGRhdGVET01Ob2RlRG9jCiAgICAgQVNTRVJUKG9sZERvYyAhPSBuZXdEb2MpOwogICAgIEpT
Tm9kZSogd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2MsIG5vZGUpOwogICAg
IGlmICh3cmFwcGVyKSB7Ci0gICAgICAgIFJFTU9WRV9XUkFQUEVSKHdyYXBwZXIpOworICAgICAg
ICByZW1vdmVXcmFwcGVyKHdyYXBwZXIpOwogICAgICAgICBwdXRET01Ob2RlRm9yRG9jdW1lbnQo
bmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKICAgICAgICAgZm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50
KG9sZERvYywgbm9kZSk7Ci0gICAgICAgIEFERF9XUkFQUEVSKHdyYXBwZXIpOworICAgICAgICBh
ZGRXcmFwcGVyKHdyYXBwZXIpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193
aW5kb3cuY3BwCShyZXZpc2lvbiAyNzM3NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dp
bmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MjUsMTIgKzE2MjUsNyBAQCB2b2lkIFdpbmRv
dzo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQsCiAgICAgaWYgKHRpbWVvdXRJZCA8PSAwKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBXaW5kb3dQcml2YXRlOjpUaW1lb3V0c01hcDo6aXRlcmF0
b3IgaXQgPSBkLT5tX3RpbWVvdXRzLmZpbmQodGltZW91dElkKTsKLSAgICBpZiAoaXQgPT0gZC0+
bV90aW1lb3V0cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIERPTVdpbmRvd1RpbWVyKiB0
aW1lciA9IGl0LT5zZWNvbmQ7Ci0gICAgZC0+bV90aW1lb3V0cy5yZW1vdmUoaXQpOwotICAgIGRl
bGV0ZSB0aW1lcjsKKyAgICBkZWxldGUgZC0+bV90aW1lb3V0cy50YWtlKHRpbWVvdXRJZCk7CiB9
CiAKIHZvaWQgV2luZG93Ojp0aW1lckZpcmVkKERPTVdpbmRvd1RpbWVyKiB0aW1lcikKSW5kZXg6
IFdlYkNvcmUvYnJpZGdlL21hYy9BWE9iamVjdENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYnJpZGdlL21hYy9BWE9iamVjdENhY2hlTWFjLm1tCShyZXZpc2lvbiAyNzM3NykKKysr
IFdlYkNvcmUvYnJpZGdlL21hYy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02OSwxMyArNjksMTEgQEAgV2ViQ29yZUFYT2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoUmVu
ZAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ewotICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgV2ViQ29yZUFYT2JqZWN0Kj46Oml0ZXJhdG9y
IGl0ID0gbV9vYmplY3RzLmZpbmQocmVuZGVyZXIpOwotICAgIGlmIChpdCA9PSBtX29iamVjdHMu
ZW5kKCkpCisgICAgV2ViQ29yZUFYT2JqZWN0KiBvYmogPSBtX29iamVjdHMudGFrZShyZW5kZXJl
cik7CisgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKLSAgICBXZWJDb3JlQVhPYmplY3Qq
IG9iaiA9ICgqaXQpLnNlY29uZDsKICAgICBbb2JqIGRldGFjaF07CiAgICAgSGFyZFJlbGVhc2Uo
b2JqKTsKLSAgICBtX29iamVjdHMucmVtb3ZlKGl0KTsKIAogICAgIEFTU0VSVChtX29iamVjdHMu
c2l6ZSgpID49IG1faWRzSW5Vc2Uuc2l6ZSgpKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI3Mzc3KQorKysgV2ViQ29yZS9wYWdlL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTMsMTYgKzQ5MywxMiBAQCBDb21w
b3NpdGVJbXBsaWNpdEFuaW1hdGlvbiogQW5pbWF0aW9uQ29uCiAKIGJvb2wgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmNsZWFyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgQ29t
cG9zaXRlSW1wbGljaXRBbmltYXRpb24qIGFuaW1hdGlvbiA9IDA7Ci0gICAgSGFzaE1hcDxSZW5k
ZXJPYmplY3QqLCBDb21wb3NpdGVJbXBsaWNpdEFuaW1hdGlvbio+OjppdGVyYXRvciBpdCA9IG1f
YW5pbWF0aW9ucy5maW5kKHJlbmRlcmVyKTsKLSAgICBpZiAoaXQgIT0gbV9hbmltYXRpb25zLmVu
ZCgpKSB7Ci0gICAgICAgIGFuaW1hdGlvbiA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgIG1fYW5pbWF0
aW9ucy5yZW1vdmUoaXQpOwotICAgICAgICBhbmltYXRpb24tPnJlc2V0KHJlbmRlcmVyKTsKLSAg
ICAgICAgZGVsZXRlIGFuaW1hdGlvbjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKKyAgICBDb21wb3NpdGVJbXBsaWNpdEFuaW1hdGlvbiogYW5pbWF0aW9u
ID0gbV9hbmltYXRpb25zLnRha2UocmVuZGVyZXIpOworICAgIGlmICghYW5pbWF0aW9uKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgYW5pbWF0aW9uLT5yZXNldChyZW5kZXJlcik7CisgICAg
ZGVsZXRlIGFuaW1hdGlvbjsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlVGltZXIoKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAkocmV2aXNpb24gMjczNzcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNiwxMSArMTE2LDggQEAgUmVuZGVyQmxvY2s6On5S
ZW5kZXJCbG9jaygpCiAgICAgZGVsZXRlIG1fcG9zaXRpb25lZE9iamVjdHM7CiAgICAgZGVsZXRl
IG1fbWF4TWFyZ2luOwogICAgIAotICAgIGlmIChtX2hhc0NvbHVtbnMpIHsKLSAgICAgICAgQ29s
dW1uSW5mb01hcDo6aXRlcmF0b3IgaXQgPSBnQ29sdW1uSW5mb01hcC0+ZmluZCh0aGlzKTsKLSAg
ICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7Ci0gICAgICAgIGdDb2x1bW5JbmZvTWFwLT5yZW1vdmUo
aXQpOwotICAgIH0KKyAgICBpZiAobV9oYXNDb2x1bW5zKQorICAgICAgICBkZWxldGUgZ0NvbHVt
bkluZm9NYXAtPnRha2UodGhpcyk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnNldFN0eWxlKFJl
bmRlclN0eWxlKiBfc3R5bGUpCkBAIC0zMTYwLDkgKzMxNTcsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpzZXREZXNpcmVkQ29sdW1uQ291bnRBCiB7CiAgICAgaWYgKGNvdW50ID09IDEpIHsKICAgICAg
ICAgaWYgKG1faGFzQ29sdW1ucykgewotICAgICAgICAgICAgQ29sdW1uSW5mb01hcDo6aXRlcmF0
b3IgaXQgPSBnQ29sdW1uSW5mb01hcC0+ZmluZCh0aGlzKTsKLSAgICAgICAgICAgIGRlbGV0ZSBp
dC0+c2Vjb25kOwotICAgICAgICAgICAgZ0NvbHVtbkluZm9NYXAtPnJlbW92ZShpdCk7CisgICAg
ICAgICAgICBkZWxldGUgZ0NvbHVtbkluZm9NYXAtPnRha2UodGhpcyk7CiAgICAgICAgICAgICBt
X2hhc0NvbHVtbnMgPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkocmV2aXNpb24gMjczNzcpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsMTAgKzY3LDkg
QEAgdm9pZCBSb290SW5saW5lQm94OjpkZXN0cm95KFJlbmRlckFyZW5hKgogdm9pZCBSb290SW5s
aW5lQm94OjpkZXRhY2hFbGxpcHNpc0JveChSZW5kZXJBcmVuYSogYXJlbmEpCiB7CiAgICAgaWYg
KG1faGFzRWxsaXBzaXNCb3gpIHsKLSAgICAgICAgRWxsaXBzaXNCb3hNYXA6Oml0ZXJhdG9yIGl0
ID0gZ0VsbGlwc2lzQm94TWFwLT5maW5kKHRoaXMpOwotICAgICAgICBpdC0+c2Vjb25kLT5zZXRQ
YXJlbnQoMCk7Ci0gICAgICAgIGl0LT5zZWNvbmQtPmRlc3Ryb3koYXJlbmEpOwotICAgICAgICBn
RWxsaXBzaXNCb3hNYXAtPnJlbW92ZShpdCk7CisgICAgICAgIEVsbGlwc2lzQm94KiBib3ggPSBn
RWxsaXBzaXNCb3hNYXAtPnRha2UodGhpcyk7CisgICAgICAgIGJveC0+c2V0UGFyZW50KDApOwor
ICAgICAgICBib3gtPmRlc3Ryb3koYXJlbmEpOwogICAgICAgICBtX2hhc0VsbGlwc2lzQm94ID0g
ZmFsc2U7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="7217"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>