<?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>90932</bug_id>
          
          <creation_ts>2012-07-10 21:04:09 -0700</creation_ts>
          <short_desc>HTMLFormCollection::item and HTMLPropertiesCollection::item should share code</short_desc>
          <delta_ts>2012-07-11 11:13:16 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89919</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>arko</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>666305</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-10 21:04:09 -0700</bug_when>
    <thetext>Now that HTMLPropertiesCollection use the same caching mechanism as the rest of HTMLCollections, HTMLFormCollection and HTMLPropertiesCollection can share more code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666313</commentid>
    <comment_count>1</comment_count>
      <attachid>151588</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-10 21:25:11 -0700</bug_when>
    <thetext>Created attachment 151588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666887</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-11 11:13:16 -0700</bug_when>
    <thetext>Committed r122345: &lt;http://trac.webkit.org/changeset/122345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151588</attachid>
            <date>2012-07-10 21:25:11 -0700</date>
            <delta_ts>2012-07-11 10:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90932-20120710212852.patch</filename>
            <type>text/plain</type>
            <size>19185</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA3LTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxGb3JtQ29sbGVjdGlvbjo6
aXRlbSBhbmQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjppdGVtIHNob3VsZCBzaGFyZSBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDkzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lcmdlZCBI
VE1MRm9ybUNvbGxlY3Rpb246Oml0ZW0gYW5kIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRl
bSBhcyBIVE1MQ29sbGVjdGlvbldpdGhBcnJheVN0b3JhZ2U6Oml0ZW0sCisgICAgICAgIHdoaWNo
IGNhbiBiZSBtZXJnZWQgaW50byBIVE1MQ29sbGVjdGlvbjo6aXRlbSBpbiBhIGZvbGxvdyB1cCBw
YXRjaC4KKworICAgICAgICBBbHNvIG1vdmVkIHRoZSBjYWxsIHRvIGludmFsaWRhdGVDYWNoZUlm
TmVlZGVkIGludG8gSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVDYWNoZSgpIGFzIGRvbmUgaW4K
KyAgICAgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLgorCisgICAgICAgIEluIGFkZGl0aW9u
LCBtb3ZlZCB0aGUgZWFybHkgYmFpbCBvdXQgZm9yIHdoZW4gdGhlIGJhc2UgZWxlbWVudCBkb2Vz
bid0IGhhdmUgaXRlbXNjb3BlIGF0dHJpYnV0ZSBmcm9tIGluZGl2aWR1YWwKKyAgICAgICAgZnVu
Y3Rpb25zIHRvIHVwZGF0ZVJlZkVsZW1lbnRzIHNvIHRoYXQgSFRNTENvbGxlY3Rpb25XaXRoQXJy
YXlTdG9yYWdlOjppdGVtIGRvZXNuJ3QgbmVlZCB0byBoYXZlIHRoaXMgY2hlY2suCisKKyAgICAg
ICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xs
ZWN0aW9uV2l0aEFycmF5U3RvcmFnZTo6aXRlbSk6IEFkZGVkLiBJdCdzIGJhc2VkIG9uIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbSBidXQgaXQgb25seQorICAgICAgICBoYXMgdGhlIHNp
bmdsZSBsb29wIChhcyBzdXBwb3NlZCB0byBuZXN0ZWQgbG9vcHMpIGFzIEhUTUxGb3JtQ29sbGVj
dGlvbiBkb2Vzbid0IGhhdmUgbXVsdGlwbGUgaXRlbXMgcGVyIGVsZW1lbnQKKyAgICAgICAgaW4g
dGhlIGFycmF5IHVubGlrZSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uIEluIGFkZGl0aW9uLCBv
ZmZzZXRJbkFycmF5ICh3YXMgaSBpbiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW0pIGlz
CisgICAgICAgIGluY3JlbWVudGVkIGluIGVhY2ggaXRlbUFmdGVyIGR1ZSB0byB0aGlzIHNlbWFu
dGljIGRpZmZlcmVuY2UgaW4gZWFjaCBpdGVtQWZ0ZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29sbGVjdGlvbjo6dXBkYXRlTmFtZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xs
ZWN0aW9uOjpoYXNOYW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246
Om5hbWVkSXRlbXMpOgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rpb24uaDoKKyAgICAgICAg
KEhUTUxDb2xsZWN0aW9uV2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29sbGVjdGlvbldpdGhBcnJheVN0b3JhZ2U6OkhUTUxDb2xsZWN0aW9uV2l0aEFycmF5U3RvcmFn
ZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db2xsZWN0aW9uOjpIVE1MRm9ybUNvbGxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEZvcm1Db2xsZWN0aW9uOjpjYWxjTGVuZ3RoKTogTWVyZ2VkIG51bWJlck9m
Rm9ybUNvbnRyb2xFbGVtZW50cyBzaW5jZSBpdCB3YXMgb25seSBjYWxsZWQgaGVyZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29sbGVjdGlvbjo6aXRlbUFmdGVyKTogQWRkZWQuIEhUTUxG
b3JtQ29sbGVjdGlvbiBoYXMgZXhhY3RseSBvbmUgaXRlbSBwZXIgZWxlbWVudCBpbiB0aGUgYXJy
YXkKKyAgICAgICAgc28gd2UgaW5jcmVtZW50IHRoZSBvZmZzZXQgaW4gZWFjaCBpdGVyYXRpb24u
IE5vdGUgdGhhdCB3aGVuIHdlJ3JlIGNvbnRpbnVpbmcgYSBzZWFyY2gsIHdlIG5lZWQgdG8gaW5j
cmVtZW50CisgICAgICAgIHRoZSBvZmZzZXQgaW4gb3JkZXIgdG8gYXZvaWQgcmV0dXJuaW5nIHRo
ZSBzYW1lIGl0ZW0uCisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246OnVwZGF0
ZU5hbWVDYWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uaDoKKyAgICAg
ICAgKEhUTUxGb3JtQ29sbGVjdGlvbik6CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
OjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVSZWZFbGVtZW50cyk6IFNldCBtX2hhc0l0ZW1SZWZFbGVt
ZW50cyB0cnVlIHVwZnJvbnQgc2luY2Ugd2UgbmV2ZXIgZmFpbCB0bworICAgICAgICB1cGRhdGUg
cmVmIGVsZW1lbnRzLiBCYWlsIG91dCBhcyBzb29uIGFzIHdlIGNsZWFyZWQgdGhlIG1faXRlbVJl
ZkVsZW1lbnRzIHdoZW4gdGhlIGJhc2UgZWxlbWVudCBkb2Vzbid0IGhhdmUgaXRlbXNjb3BlCisg
ICAgICAgIGNvbnRlbnQgYXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjppdGVtQWZ0ZXIpOiBBZGRlZC4gV2UgcmVzZXQgcHJldmlvdXNJdGVtIHRv
IG51bGwgYmVjYXVzZSB0aGUgZXhpc3RpbmcgaXRlbUFmdGVyCisgICAgICAgIHJlcXVpcmVzIHBy
ZXZpb3VzSXRlbSBiZSBudWxsIHdoZW4gd2UncmUgbW92aW5nIHRvIGEgbmV3IGVudHJ5IGluIG1f
aXRlbVJlZkVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjpjYWxjTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbjo6Y2FjaGVGaXJzdEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOjp1cGRhdGVOYW1lQ2FjaGUpOiBNZXJnZWQgZmluZFByb3BlcnRpZXMgc2luY2Ug
dGhpcyB3YXMgdGhlIG9ubHkgY2FsbGVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjpuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb246Om5hbWVkSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb246Omhhc05hbWVkSXRlbSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uaDoKKyAgICAgICAgKEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6IE1hZGUgdXBk
YXRlUmVmRWxlbWVudHMgcHVibGljIGFzIGl0J3MgY2FsbGVkIGluIEhUTUxDb2xsZWN0aW9uV2l0
aEFycmF5U3RvcmFnZTo6aXRlbS4KKwogMjAxMi0wNy0xMCAgSnVsaWVuIENoYWZmcmFpeCAgPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxMTIxMTMpOiBhYnNv
bHV0ZWx5IHBvc2l0aW9uZWQgSU5QVVQgYm94ZXMgd2l0aCBhIHRhYmxlIGNlbGwgY29udGFpbmlu
ZyBibG9jayBoYXZlIGEgMHB4IGhlaWdodApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29s
bGVjdGlvbi5jcHAJKHJldmlzaW9uIDEyMjI2NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzYsNiArMjM2LDQ3IEBAIE5vZGUq
IEhUTUxDb2xsZWN0aW9uOjppdGVtKHVuc2lnbmVkIGluZGUKICAgICByZXR1cm4gY2FjaGVkSXRl
bSgpOwogfQogCitOb2RlKiBIVE1MQ29sbGVjdGlvbldpdGhBcnJheVN0b3JhZ2U6Oml0ZW0odW5z
aWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKKyAg
ICBpZiAoaXNJdGVtQ2FjaGVWYWxpZCgpICYmIGNhY2hlZEl0ZW1PZmZzZXQoKSA9PSBpbmRleCkK
KyAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0oKTsKKworICAgIGlmIChpc0xlbmd0aENhY2hlVmFs
aWQoKSAmJiBjYWNoZWRMZW5ndGgoKSA8PSBpbmRleCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIGlmICh0eXBlKCkgPT0gSXRlbVByb3BlcnRpZXMpCisg
ICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbio+KHRoaXMp
LT51cGRhdGVSZWZFbGVtZW50cygpOworI2VuZGlmCisKKyAgICBpZiAoIWlzSXRlbUNhY2hlVmFs
aWQoKSB8fCBjYWNoZWRJdGVtT2Zmc2V0KCkgPiBpbmRleCkgeworICAgICAgICB1bnNpZ25lZCBv
ZmZzZXRJbkFycmF5ID0gMDsKKyAgICAgICAgc2V0SXRlbUNhY2hlKGl0ZW1BZnRlcihvZmZzZXRJ
bkFycmF5LCAwKSwgMCwgMCk7CisgICAgICAgIEFTU0VSVChpc0l0ZW1DYWNoZVZhbGlkKCkpOwor
ICAgICAgICBpZiAoIWNhY2hlZEl0ZW0oKSB8fCBjYWNoZWRJdGVtT2Zmc2V0KCkgPT0gaW5kZXgp
CisgICAgICAgICAgICByZXR1cm4gY2FjaGVkSXRlbSgpOworICAgIH0KKworICAgIHVuc2lnbmVk
IGN1cnJlbnRJbmRleCA9IGNhY2hlZEl0ZW1PZmZzZXQoKTsKKyAgICBBU1NFUlQoY2FjaGVkSXRl
bSgpLT5pc0hUTUxFbGVtZW50KCkpOworICAgIEhUTUxFbGVtZW50KiBjdXJyZW50SXRlbSA9IHRv
SFRNTEVsZW1lbnQoY2FjaGVkSXRlbSgpKTsKKyAgICBBU1NFUlQoY3VycmVudEluZGV4IDwgaW5k
ZXgpOworCisgICAgdW5zaWduZWQgb2Zmc2V0SW5BcnJheSA9IGNhY2hlZEVsZW1lbnRzQXJyYXlP
ZmZzZXQoKTsKKyAgICB3aGlsZSAoKGN1cnJlbnRJdGVtID0gaXRlbUFmdGVyKG9mZnNldEluQXJy
YXksIGN1cnJlbnRJdGVtKSkpIHsKKyAgICAgICAgY3VycmVudEluZGV4Kys7CisgICAgICAgIGlm
IChjdXJyZW50SW5kZXggPT0gaW5kZXgpIHsKKyAgICAgICAgICAgIHNldEl0ZW1DYWNoZShjdXJy
ZW50SXRlbSwgY3VycmVudEluZGV4LCBvZmZzZXRJbkFycmF5KTsKKyAgICAgICAgICAgIHJldHVy
biBjYWNoZWRJdGVtKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZXRMZW5ndGhDYWNoZShj
dXJyZW50SW5kZXgpOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBu
YW1lU2hvdWxkQmVWaXNpYmxlSW5Eb2N1bWVudEFsbChIVE1MRWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICAvLyBUaGUgZG9jdW1lbnQuYWxsIGNvbGxlY3Rpb24gcmV0dXJucyBvbmx5IGNlcnRhaW4g
dHlwZXMgb2YgZWxlbWVudHMgYnkgbmFtZSwKQEAgLTI5Niw2ICszMzcsNyBAQCBOb2RlKiBIVE1M
Q29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IEF0CiAKIHZvaWQgSFRNTENvbGxlY3Rpb246OnVw
ZGF0ZU5hbWVDYWNoZSgpIGNvbnN0CiB7CisgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsK
ICAgICBpZiAoaGFzTmFtZUNhY2hlKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzE5LDcgKzM2
MSw2IEBAIGJvb2wgSFRNTENvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCAKICAgICBpZiAo
bmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGludmFsaWRhdGVD
YWNoZUlmTmVlZGVkKCk7CiAgICAgdXBkYXRlTmFtZUNhY2hlKCk7CiAKICAgICBpZiAoVmVjdG9y
PEVsZW1lbnQqPiogY2FjaGUgPSBpZENhY2hlKG5hbWUpKSB7CkBAIC0zNDEsNyArMzgyLDYgQEAg
dm9pZCBIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtcyhjb25zdCBBdAogICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQo
KTsKICAgICB1cGRhdGVOYW1lQ2FjaGUoKTsKIAogICAgIFZlY3RvcjxFbGVtZW50Kj4qIGlkUmVz
dWx0cyA9IGlkQ2FjaGUobmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlv
bi5oCShyZXZpc2lvbiAxMjIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw2ICsxNTUsMTggQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8Tm9kZT4gbV9iYXNlOwogfTsKIAorY2xhc3MgSFRNTENvbGxlY3Rpb25XaXRoQXJyYXlT
dG9yYWdlIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBIVE1MQ29sbGVj
dGlvbldpdGhBcnJheVN0b3JhZ2UoTm9kZSogYmFzZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKKyAg
ICAgICAgOiBIVE1MQ29sbGVjdGlvbihiYXNlLCB0eXBlKQorICAgIHsgfQorCisgICAgdmlydHVh
bCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBPVkVSUklERTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpdGVtQWZ0ZXIodW5zaWduZWQmIG9mZnNldEluQXJy
YXksIEhUTUxFbGVtZW50KiBwcmV2aW91c0l0ZW0pIGNvbnN0ID0gMDsKK307CisKIH0gLy8gbmFt
ZXNwYWNlCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxl
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xs
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTIyMjY3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAvLyBjYWxjdWxhdGlvbiBldmVyeSB0aW1lIGlmIGFueXRo
aW5nIGhhcyBjaGFuZ2VkLgogCiBIVE1MRm9ybUNvbGxlY3Rpb246OkhUTUxGb3JtQ29sbGVjdGlv
bihFbGVtZW50KiBiYXNlKQotICAgIDogSFRNTENvbGxlY3Rpb24oYmFzZSwgRm9ybUNvbnRyb2xz
KQorICAgIDogSFRNTENvbGxlY3Rpb25XaXRoQXJyYXlTdG9yYWdlKGJhc2UsIEZvcm1Db250cm9s
cykKIHsKICAgICBBU1NFUlQoYmFzZS0+aGFzVGFnTmFtZShmb3JtVGFnKSB8fCBiYXNlLT5oYXNU
YWdOYW1lKGZpZWxkc2V0VGFnKSk7CiB9CkBAIC02Nyw0OCArNjcsMjUgQEAgY29uc3QgVmVjdG9y
PEhUTUxJbWFnZUVsZW1lbnQqPiYgSFRNTEZvcgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1M
Rm9ybUVsZW1lbnQqPihiYXNlKCkpLT5pbWFnZUVsZW1lbnRzKCk7CiB9CiAKLXVuc2lnbmVkIEhU
TUxGb3JtQ29sbGVjdGlvbjo6bnVtYmVyT2ZGb3JtQ29udHJvbEVsZW1lbnRzKCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxGb3JtQ29sbGVjdGlvbjo6Y2FsY0xlbmd0aCgpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKGJhc2UoKSk7CiAgICAgQVNTRVJUKGJhc2UoKS0+aGFzVGFnTmFtZShmb3JtVGFnKSB8fCBi
YXNlKCktPmhhc1RhZ05hbWUoZmllbGRzZXRUYWcpKTsKICAgICBpZiAoYmFzZSgpLT5oYXNUYWdO
YW1lKGZvcm1UYWcpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50
Kj4oYmFzZSgpKS0+bGVuZ3RoKCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxGaWVsZFNl
dEVsZW1lbnQqPihiYXNlKCkpLT5sZW5ndGgoKTsKIH0KIAotdW5zaWduZWQgSFRNTEZvcm1Db2xs
ZWN0aW9uOjpjYWxjTGVuZ3RoKCkgY29uc3QKK0hUTUxFbGVtZW50KiBIVE1MRm9ybUNvbGxlY3Rp
b246Oml0ZW1BZnRlcih1bnNpZ25lZCYgb2Zmc2V0LCBIVE1MRWxlbWVudCogcHJldmlvdXNJdGVt
KSBjb25zdAogewotICAgIHJldHVybiBudW1iZXJPZkZvcm1Db250cm9sRWxlbWVudHMoKTsKLX0K
LQotTm9kZSogSFRNTEZvcm1Db2xsZWN0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAot
ewotICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7Ci0KLSAgICBpZiAoaXNJdGVtQ2FjaGVW
YWxpZCgpICYmIGNhY2hlZEl0ZW1PZmZzZXQoKSA9PSBpbmRleCkKLSAgICAgICAgcmV0dXJuIGNh
Y2hlZEl0ZW0oKTsKLQotICAgIGlmIChpc0xlbmd0aENhY2hlVmFsaWQoKSAmJiBjYWNoZWRMZW5n
dGgoKSA8PSBpbmRleCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIWlzSXRlbUNhY2hl
VmFsaWQoKSB8fCBjYWNoZWRJdGVtT2Zmc2V0KCkgPiBpbmRleCkKLSAgICAgICAgc2V0SXRlbUNh
Y2hlKDAsIDAsIDApOwotCiAgICAgY29uc3QgVmVjdG9yPEZvcm1Bc3NvY2lhdGVkRWxlbWVudCo+
JiBlbGVtZW50c0FycmF5ID0gZm9ybUNvbnRyb2xFbGVtZW50cygpOwotICAgIHVuc2lnbmVkIGN1
cnJlbnRJbmRleCA9IGNhY2hlZEl0ZW1PZmZzZXQoKTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9
IGNhY2hlZEVsZW1lbnRzQXJyYXlPZmZzZXQoKTsgaSA8IGVsZW1lbnRzQXJyYXkuc2l6ZSgpOyBp
KyspIHsKLSAgICAgICAgaWYgKGVsZW1lbnRzQXJyYXlbaV0tPmlzRW51bWVyYXRhYmxlKCkpIHsK
LSAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChlbGVtZW50
c0FycmF5W2ldKTsKLSAgICAgICAgICAgIGlmIChpbmRleCA9PSBjdXJyZW50SW5kZXgpIHsKLSAg
ICAgICAgICAgICAgICBzZXRJdGVtQ2FjaGUoZWxlbWVudCwgaW5kZXgsIGkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjdXJy
ZW50SW5kZXgrKzsKLSAgICAgICAgfQorICAgIGlmIChwcmV2aW91c0l0ZW0pCisgICAgICAgIG9m
ZnNldCsrOworICAgIHdoaWxlIChvZmZzZXQgPCBlbGVtZW50c0FycmF5LnNpemUoKSkgeworICAg
ICAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50c0FycmF5W29mZnNl
dF07CisgICAgICAgIGlmIChlbGVtZW50LT5pc0VudW1lcmF0YWJsZSgpKQorICAgICAgICAgICAg
cmV0dXJuIHRvSFRNTEVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIG9mZnNldCsrOwogICAgIH0K
LQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNTIsNiArMTI5LDcgQEAgTm9kZSogSFRNTEZvcm1D
b2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29ucwogCiB2b2lkIEhUTUxGb3JtQ29sbGVjdGlvbjo6dXBk
YXRlTmFtZUNhY2hlKCkgY29uc3QKIHsKKyAgICBpbnZhbGlkYXRlQ2FjaGVJZk5lZWRlZCgpOwog
ICAgIGlmIChoYXNOYW1lQ2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMjI2NykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDEzICszNCwxMiBAQCBjbGFzcyBRdWFsaWZpZWROYW1lOwogLy8gVGhpcyBjbGFzcyBpcyBq
dXN0IGEgYmlnIGhhY2sgdG8gZmluZCBmb3JtIGVsZW1lbnRzIGV2ZW4gaW4gbWFsZm9ybWVkIEhU
TUwgZWxlbWVudHMuCiAvLyBUaGUgZmFtb3VzIDx0YWJsZT48dHI+PGZvcm0+PHRkPiBwcm9ibGVt
LgogCi1jbGFzcyBIVE1MRm9ybUNvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewor
Y2xhc3MgSFRNTEZvcm1Db2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uV2l0aEFycmF5
U3RvcmFnZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEZvcm1Db2xsZWN0
aW9uPiBjcmVhdGUoRWxlbWVudCopOwogCiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db2xsZWN0aW9u
KCk7CiAKLSAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAg
IHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7
CiAKIHByaXZhdGU6CkBAIC01MSw3ICs1MCw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBWZWN0
b3I8Rm9ybUFzc29jaWF0ZWRFbGVtZW50Kj4mIGZvcm1Db250cm9sRWxlbWVudHMoKSBjb25zdDsK
ICAgICBjb25zdCBWZWN0b3I8SFRNTEltYWdlRWxlbWVudCo+JiBmb3JtSW1hZ2VFbGVtZW50cygp
IGNvbnN0OwotICAgIHVuc2lnbmVkIG51bWJlck9mRm9ybUNvbnRyb2xFbGVtZW50cygpIGNvbnN0
OworICAgIEhUTUxFbGVtZW50KiBpdGVtQWZ0ZXIodW5zaWduZWQmIG9mZnNldCwgSFRNTEVsZW1l
bnQqIHByZXZpb3VzSXRlbSkgY29uc3QgT1ZFUlJJREU7CiB9OwogCiB9IC8vbmFtZXNwYWNlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwCShyZXZpc2lvbiAxMjIyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgUGFzc1Jl
ZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IEhUTQogfQogCiBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihOb2RlKiBpdGVtTm9kZSkKLSAgICA6
IEhUTUxDb2xsZWN0aW9uKGl0ZW1Ob2RlLCBJdGVtUHJvcGVydGllcykKKyAgICA6IEhUTUxDb2xs
ZWN0aW9uV2l0aEFycmF5U3RvcmFnZShpdGVtTm9kZSwgSXRlbVByb3BlcnRpZXMpCiAgICAgLCBt
X2hhc1Byb3BlcnR5TmFtZUNhY2hlKGZhbHNlKQogICAgICwgbV9oYXNJdGVtUmVmRWxlbWVudHMo
ZmFsc2UpCiB7CkBAIC02OSwxMCArNjksMTMgQEAgdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246OnVwZGF0ZVJlZgogICAgIEhUTUxFbGVtZW50KiBiYXNlRWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQoYmFzZSgpKTsKIAogICAgIG1faXRlbVJlZkVsZW1lbnRzLmNsZWFyKCk7CisgICAgbV9oYXNJ
dGVtUmVmRWxlbWVudHMgPSB0cnVlOworCisgICAgaWYgKCFiYXNlRWxlbWVudC0+ZmFzdEhhc0F0
dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFiYXNl
RWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVmQXR0cikpIHsKICAgICAgICAgbV9pdGVt
UmVmRWxlbWVudHMuYXBwZW5kKGJhc2VFbGVtZW50KTsKLSAgICAgICAgbV9oYXNJdGVtUmVmRWxl
bWVudHMgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05Nyw3ICsxMDAsNiBA
QCB2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlUmVmCiAgICAgICAgICAgICAg
ICAgbV9pdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgICAgICB9CiAgICAgfQot
ICAgIG1faGFzSXRlbVJlZkVsZW1lbnRzID0gdHJ1ZTsKIH0KIAogc3RhdGljIE5vZGUqIG5leHRO
b2RlV2l0aFByb3BlcnR5KE5vZGUqIGJhc2UsIE5vZGUqIG5vZGUpCkBAIC0xMTAsNyArMTEyLDE4
IEBAIHN0YXRpYyBOb2RlKiBuZXh0Tm9kZVdpdGhQcm9wZXJ0eShOb2RlKiAKICAgICAgICAgICAg
ID8gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShiYXNlKSA6IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxp
bmcoYmFzZSk7CiB9CiAKLUVsZW1lbnQqIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbUFm
dGVyKEVsZW1lbnQqIGJhc2UsIE5vZGUqIHByZXZpb3VzKSBjb25zdAorSFRNTEVsZW1lbnQqIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbUFmdGVyKHVuc2lnbmVkJiBvZmZzZXRJbkFycmF5
LCBIVE1MRWxlbWVudCogcHJldmlvdXNJdGVtKSBjb25zdAoreworICAgIHdoaWxlIChvZmZzZXRJ
bkFycmF5IDwgbV9pdGVtUmVmRWxlbWVudHMuc2l6ZSgpKSB7CisgICAgICAgIGlmIChIVE1MRWxl
bWVudCogbmV4dCA9IGl0ZW1BZnRlcihtX2l0ZW1SZWZFbGVtZW50c1tvZmZzZXRJbkFycmF5XSwg
cHJldmlvdXNJdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBuZXh0OworICAgICAgICBvZmZzZXRJ
bkFycmF5Kys7CisgICAgICAgIHByZXZpb3VzSXRlbSA9IDA7CisgICAgfQorICAgIHJldHVybiAw
OworfQorCitIVE1MRWxlbWVudCogSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjppdGVtQWZ0ZXIo
SFRNTEVsZW1lbnQqIGJhc2UsIEhUTUxFbGVtZW50KiBwcmV2aW91cykgY29uc3QKIHsKICAgICBO
b2RlKiBjdXJyZW50OwogICAgIGN1cnJlbnQgPSBwcmV2aW91cyA/IG5leHROb2RlV2l0aFByb3Bl
cnR5KGJhc2UsIHByZXZpb3VzKSA6IGJhc2U7CkBAIC0xMjksMTQgKzE0MiwxMSBAQCBFbGVtZW50
KiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW1BCiAKIHVuc2lnbmVkIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6Y2FsY0xlbmd0aCgpIGNvbnN0CiB7Ci0gICAgaWYgKCF0b0hUTUxFbGVt
ZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCi0gICAgICAgIHJl
dHVybiAwOwotCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gMDsKICAgICB1cGRhdGVSZWZFbGVtZW50
cygpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRlbVJlZkVsZW1lbnRzLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IGl0ZW1BZnRlciht
X2l0ZW1SZWZFbGVtZW50c1tpXSwgMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBpdGVtQWZ0ZXIobV9p
dGVtUmVmRWxlbWVudHNbaV0sIGVsZW1lbnQpKQorICAgICAgICBmb3IgKEhUTUxFbGVtZW50KiBl
bGVtZW50ID0gaXRlbUFmdGVyKG1faXRlbVJlZkVsZW1lbnRzW2ldLCAwKTsgZWxlbWVudDsgZWxl
bWVudCA9IGl0ZW1BZnRlcihtX2l0ZW1SZWZFbGVtZW50c1tpXSwgZWxlbWVudCkpCiAgICAgICAg
ICAgICArK2xlbmd0aDsKICAgICB9CiAKQEAgLTE0Niw2NCArMTU2LDEyIEBAIHVuc2lnbmVkIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y2FsY0wKIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjpjYWNoZUZpcnN0SXRlbSgpIGNvbnN0CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1faXRlbVJlZkVsZW1lbnRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChFbGVtZW50
KiBlbGVtZW50ID0gaXRlbUFmdGVyKG1faXRlbVJlZkVsZW1lbnRzW2ldLCAwKSkKKyAgICAgICAg
aWYgKEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbUFmdGVyKG1faXRlbVJlZkVsZW1lbnRzW2ld
LCAwKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJdGVtQ2FjaGUoZWxlbWVudCwgMCwgaSk7CiAg
ICAgfQogICAgIHNldEl0ZW1DYWNoZSgwLCAwLCAwKTsKIH0KIAotTm9kZSogSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlmICghdG9I
VE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQotICAg
ICAgICByZXR1cm4gMDsKLQotICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7Ci0gICAgaWYg
KGlzSXRlbUNhY2hlVmFsaWQoKSAmJiBjYWNoZWRJdGVtT2Zmc2V0KCkgPT0gaW5kZXgpCi0gICAg
ICAgIHJldHVybiBjYWNoZWRJdGVtKCk7Ci0KLSAgICBpZiAoaXNMZW5ndGhDYWNoZVZhbGlkKCkg
JiYgY2FjaGVkTGVuZ3RoKCkgPD0gaW5kZXgpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgdXBk
YXRlUmVmRWxlbWVudHMoKTsKLSAgICBpZiAoIWlzSXRlbUNhY2hlVmFsaWQoKSB8fCBjYWNoZWRJ
dGVtT2Zmc2V0KCkgPiBpbmRleCkgewotICAgICAgICBjYWNoZUZpcnN0SXRlbSgpOwotICAgICAg
ICBBU1NFUlQoaXNJdGVtQ2FjaGVWYWxpZCgpKTsKLSAgICAgICAgaWYgKCFjYWNoZWRJdGVtKCkg
fHwgY2FjaGVkSXRlbU9mZnNldCgpID09IGluZGV4KQotICAgICAgICAgICAgcmV0dXJuIGNhY2hl
ZEl0ZW0oKTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjdXJyZW50UG9zaXRpb24gPSBjYWNoZWRJ
dGVtT2Zmc2V0KCk7Ci0gICAgTm9kZSogZWxlbWVudCA9IGNhY2hlZEl0ZW0oKTsKLSAgICBBU1NF
UlQoY3VycmVudFBvc2l0aW9uICE9IGluZGV4KTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IGNh
Y2hlZEVsZW1lbnRzQXJyYXlPZmZzZXQoKTsgaSA8IG1faXRlbVJlZkVsZW1lbnRzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIHdoaWxlIChjdXJyZW50UG9zaXRpb24gPCBpbmRleCkgewotICAgICAg
ICAgICAgZWxlbWVudCA9IGl0ZW1BZnRlcihtX2l0ZW1SZWZFbGVtZW50c1tpXSwgZWxlbWVudCk7
Ci0gICAgICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjdXJyZW50UG9zaXRpb24rKzsKLQotICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3Np
dGlvbiA9PSBpbmRleCkgewotICAgICAgICAgICAgICAgIHNldEl0ZW1DYWNoZShlbGVtZW50LCBj
dXJyZW50UG9zaXRpb24sIGkpOwotICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZWRJdGVtKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzZXRMZW5ndGhDYWNoZShj
dXJyZW50UG9zaXRpb24pOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGVydGllcyhFbGVtZW50KiBiYXNlKSBjb25zdAotewotICAg
IGZvciAoRWxlbWVudCogZWxlbWVudCA9IGl0ZW1BZnRlcihiYXNlLCAwKTsgZWxlbWVudDsgZWxl
bWVudCA9IGl0ZW1BZnRlcihiYXNlLCBlbGVtZW50KSkgewotICAgICAgICBET01TZXR0YWJsZVRv
a2VuTGlzdCogaXRlbVByb3BlcnR5ID0gZWxlbWVudC0+aXRlbVByb3AoKTsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1Qcm9wZXJ0eS0+bGVuZ3RoKCk7ICsraSkKLSAgICAg
ICAgICAgIHVwZGF0ZVByb3BlcnR5Q2FjaGUoZWxlbWVudCwgaXRlbVByb3BlcnR5LT5pdGVtKGkp
KTsKLSAgICB9Ci19Ci0KIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVOYW1l
Q2FjaGUoKSBjb25zdAogewogICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7CkBAIC0yMTIs
MzEgKzE3MCwzMSBAQCB2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlTmFtCiAK
ICAgICB1cGRhdGVSZWZFbGVtZW50cygpOwogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1faXRlbVJlZkVsZW1lbnRzLnNpemUoKTsgKytpKQotICAgICAgICBmaW5kUHJvcGVydGllcyht
X2l0ZW1SZWZFbGVtZW50c1tpXSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRl
bVJlZkVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhUTUxFbGVtZW50KiByZWZFbGVt
ZW50ID0gbV9pdGVtUmVmRWxlbWVudHNbaV07CisgICAgICAgIGZvciAoSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSBpdGVtQWZ0ZXIocmVmRWxlbWVudCwgMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBpdGVt
QWZ0ZXIocmVmRWxlbWVudCwgZWxlbWVudCkpIHsKKyAgICAgICAgICAgIERPTVNldHRhYmxlVG9r
ZW5MaXN0KiBpdGVtUHJvcGVydHkgPSBlbGVtZW50LT5pdGVtUHJvcCgpOworICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBwcm9wZXJ0eUluZGV4ID0gMDsgcHJvcGVydHlJbmRleCA8IGl0ZW1Qcm9w
ZXJ0eS0+bGVuZ3RoKCk7ICsrcHJvcGVydHlJbmRleCkKKyAgICAgICAgICAgICAgICB1cGRhdGVQ
cm9wZXJ0eUNhY2hlKGVsZW1lbnQsIGl0ZW1Qcm9wZXJ0eS0+aXRlbShwcm9wZXJ0eUluZGV4KSk7
CisgICAgICAgIH0KKyAgICB9CiAKICAgICBtX2hhc1Byb3BlcnR5TmFtZUNhY2hlID0gdHJ1ZTsK
IH0KIAogUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
Om5hbWVzKCkgY29uc3QKIHsKLSAgICBpZiAoIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhh
c0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKLSAgICAgICAgcmV0dXJuIERPTVN0cmluZ0xpc3Q6
OmNyZWF0ZSgpOwotCiAgICAgdXBkYXRlTmFtZUNhY2hlKCk7Ci0KKyAgICBpZiAoIW1fcHJvcGVy
dHlOYW1lcykKKyAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRl
KCk7CiAgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lczsKIH0KIAogUGFzc1JlZlB0cjxOb2RlTGlz
dD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1l
KSBjb25zdAogewotICAgIGlmICghdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmli
dXRlKGl0ZW1zY29wZUF0dHIpKQotICAgICAgcmV0dXJuIDA7Ci0KLSAgICBWZWN0b3I8UmVmUHRy
PE5vZGU+ID4gbmFtZWRJdGVtczsKLQogICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwogCisgICAgVmVj
dG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CiAgICAgVmVjdG9yPEVsZW1lbnQqPiogcHJv
cGVydHlSZXN1bHRzID0gbV9wcm9wZXJ0eUNhY2hlLmdldChBdG9taWNTdHJpbmcobmFtZSkuaW1w
bCgpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBwcm9wZXJ0eVJlc3VsdHMgJiYgaSA8IHBy
b3BlcnR5UmVzdWx0cy0+c2l6ZSgpOyArK2kpCiAgICAgICAgIG5hbWVkSXRlbXMuYXBwZW5kKHBy
b3BlcnR5UmVzdWx0cy0+YXQoaSkpOwpAQCAtMjQ3LDkgKzIwNSw2IEBAIFBhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGUKIAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAg
aWYgKCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0
cikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwogCiAg
ICAgaWYgKFZlY3RvcjxFbGVtZW50Kj4qIHByb3BlcnR5Q2FjaGUgPSBtX3Byb3BlcnR5Q2FjaGUu
Z2V0KG5hbWUuaW1wbCgpKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAxMjIyNjcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwx
NSArNDAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01TdHJpbmdMaXN0Owog
Ci1jbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24g
eworY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9u
V2l0aEFycmF5U3RvcmFnZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uPiBjcmVhdGUoTm9kZSopOwogICAgIHZpcnR1YWwgfkhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbigpOwogCi0gICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkKSBj
b25zdCBPVkVSUklERTsKKyAgICB2b2lkIHVwZGF0ZVJlZkVsZW1lbnRzKCkgY29uc3Q7CiAKICAg
ICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5hbWVzKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwogCkBAIC02NSwxNSArNjQsMTQgQEAgcHJpdmF0ZToKICAgICBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24oTm9kZSopOwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBjYWxj
TGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdm9pZCBmaW5kUHJvcGVydGllcyhFbGVtZW50
KiBiYXNlKSBjb25zdDsKIAogICAgIE5vZGUqIGZpbmRSZWZFbGVtZW50cyhOb2RlKiBwcmV2aW91
cykgY29uc3Q7CiAKICAgICB2b2lkIGNhY2hlRmlyc3RJdGVtKCkgY29uc3Q7Ci0gICAgRWxlbWVu
dCogaXRlbUFmdGVyKEVsZW1lbnQqIGJhc2UsIE5vZGUqIHByZXZpb3VzKSBjb25zdDsKKyAgICB2
aXJ0dWFsIEhUTUxFbGVtZW50KiBpdGVtQWZ0ZXIodW5zaWduZWQmIG9mZnNldEluQXJyYXksIEhU
TUxFbGVtZW50KiBwcmV2aW91c0l0ZW1JblNhbWVBcnJheUVsZW1lbnQpIGNvbnN0IE9WRVJSSURF
OworICAgIEhUTUxFbGVtZW50KiBpdGVtQWZ0ZXIoSFRNTEVsZW1lbnQqIGJhc2UsIEhUTUxFbGVt
ZW50KiBwcmV2aW91cykgY29uc3Q7CiAKICAgICB2b2lkIHVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0
OwotICAgIHZvaWQgdXBkYXRlUmVmRWxlbWVudHMoKSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRl
UHJvcGVydHlDYWNoZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHByb3Bl
cnR5TmFtZSkgY29uc3QKICAgICB7CkBAIC04OCw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBhcHBlbmQobV9wcm9wZXJ0eUNhY2hlLCBwcm9wZXJ0eU5hbWUsIGVsZW1lbnQpOwogICAg
IH0KIAotICAgIG11dGFibGUgVmVjdG9yPEVsZW1lbnQqPiBtX2l0ZW1SZWZFbGVtZW50czsKKyAg
ICBtdXRhYmxlIFZlY3RvcjxIVE1MRWxlbWVudCo+IG1faXRlbVJlZkVsZW1lbnRzOwogICAgIG11
dGFibGUgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG1fcHJvcGVydHlOYW1lczsKICAgICBtdXRhYmxl
IE5vZGVDYWNoZU1hcCBtX3Byb3BlcnR5Q2FjaGU7CiAK
</data>
<flag name="review"
          id="160087"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>