<?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>69621</bug_id>
          
          <creation_ts>2011-10-07 06:29:06 -0700</creation_ts>
          <short_desc>Remove some static functions of HTMLSelectElement</short_desc>
          <delta_ts>2011-10-08 07:16:41 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>69518</dependson>
          <blocked>69701</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>479963</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-07 06:29:06 -0700</bug_when>
    <thetext>Remove some static functions of HTMLSelectElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479964</commentid>
    <comment_count>1</comment_count>
      <attachid>110134</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-07 06:37:28 -0700</bug_when>
    <thetext>Created attachment 110134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480012</commentid>
    <comment_count>2</comment_count>
      <attachid>110134</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-07 08:20:22 -0700</bug_when>
    <thetext>Comment on attachment 110134
Patch

Another important refactoring here is to eliminate the SelectElement and OptionElement classes entirely. I was working on that yesterday (bad timing, I guess) but might not get back to it, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480092</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 10:03:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 110134 [details])
&gt; Another important refactoring here is to eliminate the SelectElement and OptionElement classes entirely. I was working on that yesterday (bad timing, I guess) but might not get back to it, though.

SelectElement has been removed in http://trac.webkit.org/changeset/96907. So I guess we just need to get rid of OptionElement now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480533</commentid>
    <comment_count>4</comment_count>
      <attachid>110134</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 02:04:25 -0700</bug_when>
    <thetext>Comment on attachment 110134
Patch

Clearing flags on attachment: 110134

Committed r97007: &lt;http://trac.webkit.org/changeset/97007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480534</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 02:04:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110134</attachid>
            <date>2011-10-07 06:37:28 -0700</date>
            <delta_ts>2011-10-08 02:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69621-20111007223726.patch</filename>
            <type>text/plain</type>
            <size>18547</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYzU3OTRlMTdlN2M3ZWVi
OGY3Mzc2NmI5MzA0YzViYTkwOWZmMmVkLi5jM2U0ZmVmNWEzNmE0NmY2NzQ5YWJhYjYxZjk0MmQy
M2E5MDQ3OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMTAtMDcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBzb21lIHN0YXRp
YyBmdW5jdGlvbnMgb2YgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgYSBzdGF0aWMgZnVuY3Rpb24gYW5kIHRoZSBj
b3JyZXNwb25kaW5nIG5vbi1zdGF0aWMgbWVtYmVyIGZ1bmN0aW9uCisgICAgICAgIGludG8gb25l
IGZ1bmN0aW9uIGlmIHRoZXJlIGFyZSBubyBvdGhlciBjYWxsZXJzIG9mIHRoZSBzdGF0aWMgZnVu
Y3Rpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgTWFrZSBmb3Jt
Q29udHJvbE5hbWUoKSBwcm90ZWN0ZWQgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbQorICAgICAg
ICBIVE1MU2VsZWN0RWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6CisgICAgICAgIFJlbW92ZSB0d28gYXJndW1lbnQgb2YgcGFyc2VNdWx0aXBsZUF0dHJp
YnV0ZSgpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCk6
CisgICAgICAgIE1lcmdlZCB0aGUgc3RhdGljIGZ1bmN0aW9uIGFuZCB0aGUgbWVtYmVyIGZ1bmN0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNF
dmVudCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3Bh
dGNoQmx1ckV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNdWx0aXBsZUF0dHJpYnV0ZSk6CisgICAgICAgICAt
IE1ha2UgdGhpcyBub24tc3RhdGljIG1lbWJlciBmdW5jdGlvbi4KKyAgICAgICAgIC0gVXNlIHJl
YXR0YWNoSWZBdHRhY2hlZCgpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
OmFwcGVuZEZvcm1EYXRhKTogTWVyZ2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnJlc2V0KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvVHJlZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OmFjY2Vzc0tleVNldFNlbGVjdGVkSW5kZXgpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsZW5ndGgpOiBNZXJnZWQgd2l0aCBvcHRpb25Db3Vu
dCgpLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKwogMjAxMS0xMC0wNyAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBhZGQgRWxlbWVudHMgYW5kIE5ldHdvcmsgcGFuZWxzIHRvIHRoZSBjb21waWxhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCAz
NzUyMTYxYzg1NTJkOWI2OTk2YTFhMjU0Y2Y1NzJkYjczYThmYjI0Li5mZDUyY2NhMDg5OTEyNjZi
Y2QyZWI1YTBkZDQ2MmJiOWU2MGIxZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
TW92ZVRvTmV3T3duZXJEb2N1bWVudCgpOwogCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGZvcm1Db250cm9sTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Zv
Y3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9h
cmRFdmVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29u
c3Q7CkBAIC0xMzQsNyArMTM1LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCByZWNh
bGNXaWxsVmFsaWRhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSB7IHJlZigpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGE1MmQyNmQ2YjMzMzliZGZlNzA4YmY1
MTA4MjQ4ZDBkYzM4NTYyZWMuLjk3NmM1NWZkODk3YmMwOGJiNjkyMTllNDU3MjEwODRjNThmYmQw
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xOTcs
MTEgKzE5Nyw2IEBAIGludCBIVE1MU2VsZWN0RWxlbWVudDo6YWN0aXZlU2VsZWN0aW9uRW5kTGlz
dEluZGV4KCkgY29uc3QKICAgICByZXR1cm4gbGFzdFNlbGVjdGVkTGlzdEluZGV4KG1fZGF0YSwg
dGhpcyk7CiB9CiAKLXVuc2lnbmVkIEhUTUxTZWxlY3RFbGVtZW50OjpsZW5ndGgoKSBjb25zdAot
ewotICAgIHJldHVybiBvcHRpb25Db3VudChtX2RhdGEsIHRoaXMpOwotfQotCiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVtZW50KiBiZWZv
cmUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gcHJvdGVj
dE5ld0NoaWxkKGVsZW1lbnQpOyAvLyBtYWtlIHN1cmUgdGhlIGVsZW1lbnQgaXMgcmVmJ2QgYW5k
IGRlcmVmJ2Qgc28gd2UgZG9uJ3QgbGVhayBpdApAQCAtMjYxLDE3ICsyNTYsNiBAQCB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcgJnZhbHVlKQogICAgIH0KIH0K
IAotYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2
YWx1ZSkgY29uc3QKLXsKLSAgICByZXR1cm4gc2F2ZUZvcm1Db250cm9sU3RhdGUobV9kYXRhLCB0
aGlzLCB2YWx1ZSk7Ci19Ci0KLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpCi17Ci0gICAgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUobV9kYXRhLCB0aGlzLCBzdGF0ZSk7Ci0gICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7
Ci19Ci0KIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IHNpemVBdHRyKSB7CkBAIC0y
OTUsNyArMjc5LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICAgICAgc2V0UmVjYWxjTGlzdEl0ZW1zKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIpCi0g
ICAgICAgIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUobV9kYXRhLCB0aGlzLCBhdHRyKTsKKyAgICAg
ICAgcGFyc2VNdWx0aXBsZUF0dHJpYnV0ZShhdHRyKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gYWNjZXNza2V5QXR0cikgewogICAgICAgICAvLyBGSVhNRTogaWdub3JlIGZvciB0aGUg
bW9tZW50CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWxpZ25BdHRyKSB7CkBAIC0z
MjYsMTIgKzMxMCw2IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNv
bnN0CiAgICAgcmV0dXJuICFtX2RhdGEudXNlc01lbnVMaXN0KCk7IAogfQogCi12b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoKQotewotICAgIHNlbGVjdEFsbChtX2RhdGEsIHRoaXMp
OwotICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwotfQotCiBSZW5kZXJPYmplY3QqIEhUTUxT
ZWxlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKikKIHsKICAgICBpZiAobV9kYXRhLnVzZXNNZW51TGlzdCgpKQpAQCAtMzM5LDExICszMTcs
NiBAQCBSZW5kZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKgogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJMaXN0Qm94KHRoaXMpOwogfQogCi1ib29sIEhUTUxTZWxlY3RFbGVtZW50OjphcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmIGxpc3QsIGJvb2wpCi17Ci0gICAgcmV0dXJuIGFwcGVuZEZvcm1E
YXRhKG1fZGF0YSwgdGhpcywgbGlzdCk7Ci19Ci0KIGludCBIVE1MU2VsZWN0RWxlbWVudDo6b3B0
aW9uVG9MaXN0SW5kZXgoaW50IG9wdGlvbkluZGV4KSBjb25zdAogewogICAgIHJldHVybiBvcHRp
b25Ub0xpc3RJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4KTsKQEAgLTM4OCwyNCArMzYx
LDYgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKCkKICAgICAg
ICAgbV9jb2xsZWN0aW9uSW5mby5yZXNldCgpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50
OjpyZXNldCgpCi17Ci0gICAgcmVzZXQobV9kYXRhLCB0aGlzKTsKLSAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKLX0KLQotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2
ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCi17Ci0gICAgZGlzcGF0Y2hGb2N1
c0V2ZW50KG1fZGF0YSwgdGhpcyk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlKTsKLX0KLQotdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2Vk
Tm9kZSkKLXsKLSAgICBkaXNwYXRjaEJsdXJFdmVudChtX2RhdGEsIHRoaXMpOwotICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoQmx1ckV2ZW50KG5ld0ZvY3VzZWRO
b2RlKTsKLX0KLQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCiB7CiAgICAgZGVmYXVsdEV2ZW50SGFuZGxlcihtX2RhdGEsIHRoaXMsIGV2
ZW50LCBmb3JtKCkpOwpAQCAtNDUxLDExICs0MDYsNiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KQogICAgIGRpc3BhdGNoU2lt
dWxhdGVkQ2xpY2soMCwgc2VuZFRvQW55RWxlbWVudCk7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmFjY2Vzc0tleVNldFNlbGVjdGVkSW5kZXgoaW50IGluZGV4KQotewotICAgIGFjY2Vz
c0tleVNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBpbmRleCk7Ci19Ci0gICAgCiB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRNdWx0aXBsZShib29sIG11bHRpcGxlKQogewogICAgIGJv
b2wgb2xkTXVsdGlwbGUgPSB0aGlzLT5tdWx0aXBsZSgpOwpAQCAtNTUxLDEyICs1MDEsNiBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbigpCiAgICAgc2Nyb2xsVG9T
ZWxlY3Rpb24obV9kYXRhLCB0aGlzKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCi17Ci0gICAgaW5zZXJ0ZWRJbnRvVHJlZShtX2RhdGEs
IHRoaXMpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydGVkSW50
b1RyZWUoZGVlcCk7Ci19Ci0KIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3Jt
Q29udHJvbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlcXVpcmVkKCk7CkBAIC02MjUsMjIgKzU2
OSwyMyBAQCBzdGF0aWMgaW50IG5leHRTZWxlY3RhYmxlTGlzdEluZGV4UGFnZUF3YXkoU2VsZWN0
RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZQogICAgIHJldHVybiBuZXh0VmFsaWRJbmRl
eChpdGVtcywgZWRnZUluZGV4LCBkaXJlY3Rpb24sIHNraXBBbW91bnQpOwogfQogCi12b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoU2VsZWN0RWxlbWVudERhdGEmIGRhdGEsIEVsZW1l
bnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoKQogewotICAg
IEFTU0VSVCghZGF0YS51c2VzTWVudUxpc3QoKSk7Ci0gICAgaWYgKCFlbGVtZW50LT5yZW5kZXJl
cigpIHx8ICFkYXRhLm11bHRpcGxlKCkpCisgICAgQVNTRVJUKCFtX2RhdGEudXNlc01lbnVMaXN0
KCkpOworICAgIGlmICghcmVuZGVyZXIoKSB8fCAhbV9kYXRhLm11bHRpcGxlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIFNhdmUgdGhlIHNlbGVjdGlvbiBzbyBpdCBjYW4gYmUgY29tcGFy
ZWQgdG8gdGhlIG5ldyBzZWxlY3RBbGwgc2VsZWN0aW9uCiAgICAgLy8gd2hlbiBkaXNwYXRjaGlu
ZyBjaGFuZ2UgZXZlbnRzCi0gICAgc2F2ZUxhc3RTZWxlY3Rpb24oZGF0YSwgZWxlbWVudCk7Cisg
ICAgc2F2ZUxhc3RTZWxlY3Rpb24obV9kYXRhLCB0aGlzKTsKIAotICAgIGRhdGEuc2V0QWN0aXZl
U2VsZWN0aW9uU3RhdGUodHJ1ZSk7Ci0gICAgc2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgo
ZGF0YSwgZWxlbWVudCwgbmV4dFNlbGVjdGFibGVMaXN0SW5kZXgoZGF0YSwgZWxlbWVudCwgLTEp
KTsKLSAgICBzZXRBY3RpdmVTZWxlY3Rpb25FbmRJbmRleChkYXRhLCBwcmV2aW91c1NlbGVjdGFi
bGVMaXN0SW5kZXgoZGF0YSwgZWxlbWVudCwgLTEpKTsKKyAgICBtX2RhdGEuc2V0QWN0aXZlU2Vs
ZWN0aW9uU3RhdGUodHJ1ZSk7CisgICAgc2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgobV9k
YXRhLCB0aGlzLCBuZXh0U2VsZWN0YWJsZUxpc3RJbmRleChtX2RhdGEsIHRoaXMsIC0xKSk7Cisg
ICAgc2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgobV9kYXRhLCBwcmV2aW91c1NlbGVjdGFibGVM
aXN0SW5kZXgobV9kYXRhLCB0aGlzLCAtMSkpOwogCi0gICAgdXBkYXRlTGlzdEJveFNlbGVjdGlv
bihkYXRhLCBlbGVtZW50LCBmYWxzZSk7Ci0gICAgbGlzdEJveE9uQ2hhbmdlKGRhdGEsIGVsZW1l
bnQpOworICAgIHVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24obV9kYXRhLCB0aGlzLCBmYWxzZSk7Cisg
ICAgbGlzdEJveE9uQ2hhbmdlKG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVMYXN0U2VsZWN0aW9uKFNl
bGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQpAQCAtOTMwLDIxICs4NzUs
MjMgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0VG9PcHRpb25JbmRleChjb25zdCBTZWxl
Y3RFbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWwKICAgICByZXR1cm4gb3B0aW9uSW5kZXg7CiB9
CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChTZWxlY3RFbGVt
ZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQogewog
ICAgIC8vIFNhdmUgdGhlIHNlbGVjdGlvbiBzbyBpdCBjYW4gYmUgY29tcGFyZWQgdG8gdGhlIG5l
dyBzZWxlY3Rpb24gd2hlbgogICAgIC8vIGRpc3BhdGNoaW5nIGNoYW5nZSBldmVudHMgZHVyaW5n
IGJsdXIgZXZlbnQgZGlzcGF0Y2hhbAotICAgIGlmIChkYXRhLnVzZXNNZW51TGlzdCgpKQotICAg
ICAgICBzYXZlTGFzdFNlbGVjdGlvbihkYXRhLCBlbGVtZW50KTsKKyAgICBpZiAobV9kYXRhLnVz
ZXNNZW51TGlzdCgpKQorICAgICAgICBzYXZlTGFzdFNlbGVjdGlvbihtX2RhdGEsIHRoaXMpOwor
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChv
bGRGb2N1c2VkTm9kZSk7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoQmx1
ckV2ZW50KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQordm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdG
b2N1c2VkTm9kZSkKIHsKICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZmlyZSBjaGFuZ2UgZXZlbnRz
IGhlcmUgZm9yIG1lbnUgbGlzdHMsIGJlY2F1c2Ugd2UgZmlyZQogICAgIC8vIGNoYW5nZSBldmVu
dHMgZm9yIGxpc3QgYm94ZXMgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2UgaXMgYWN0dWFs
bHkgbWFkZS4KICAgICAvLyBUaGlzIG1hdGNoZXMgb3RoZXIgYnJvd3NlcnMnIGJlaGF2aW9yLgot
ICAgIGlmIChkYXRhLnVzZXNNZW51TGlzdCgpKQotICAgICAgICBtZW51TGlzdE9uQ2hhbmdlKGRh
dGEsIGVsZW1lbnQpOworICAgIGlmIChtX2RhdGEudXNlc01lbnVMaXN0KCkpCisgICAgICAgIG1l
bnVMaXN0T25DaGFuZ2UobV9kYXRhLCB0aGlzKTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlOjpkaXNwYXRjaEJsdXJFdmVudChuZXdGb2N1c2VkTm9kZSk7CiB9CiAKIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMoU2VsZWN0RWxlbWVudERhdGEmIGRhdGEs
IEVsZW1lbnQqIGVsZW1lbnQsIEVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQpAQCAtOTU5LDkgKzkw
Niw5IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMoU2VsZWN0RWxlbWVu
dERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQsCiAgICAgfQogfQogCi1ib29sIEhUTUxTZWxl
Y3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTZWxlY3RFbGVtZW50RGF0YSYg
ZGF0YSwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgU3RyaW5nJiB2YWx1ZSkKK2Jvb2wgSFRNTFNl
bGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0CiB7
Ci0gICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBkYXRhLmxpc3RJdGVtcyhlbGVt
ZW50KTsKKyAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9IG1fZGF0YS5saXN0SXRl
bXModGhpcyk7CiAgICAgaW50IGxlbmd0aCA9IGl0ZW1zLnNpemUoKTsKIAogICAgIC8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyBjb2RlIHRvIHVzZSB0aGUgbmV3IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5p
dGlhbGl6ZWQgY29kZSBwYXRoLgpAQCAtOTc2LDExICs5MjMsMTEgQEAgYm9vbCBIVE1MU2VsZWN0
RWxlbWVudDo6c2F2ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU2VsZWN0RWxlbWVudERhdGEmIGRh
dGEsIGNvbnMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoU2VsZWN0RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQq
IGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RhdGUpCit2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewotICAgIHJlY2Fs
Y0xpc3RJdGVtcyhkYXRhLCBlbGVtZW50KTsKKyAgICByZWNhbGNMaXN0SXRlbXMobV9kYXRhLCB0
aGlzKTsKIAotICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGl0ZW1zID0gZGF0YS5saXN0SXRl
bXMoZWxlbWVudCk7CisgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBtX2RhdGEu
bGlzdEl0ZW1zKHRoaXMpOwogICAgIGludCBsZW5ndGggPSBpdGVtcy5zaXplKCk7CiAKICAgICBm
b3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CkBAIC05ODgsMjggKzkzNSwyNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShTZWxlY3RFbGVt
ZW50RGF0YSYgZGF0YSwgRWxlbWVudAogICAgICAgICAgICAgb3B0aW9uRWxlbWVudC0+c2V0U2Vs
ZWN0ZWRTdGF0ZShzdGF0ZVtpXSA9PSAnWCcpOwogICAgIH0KIAotICAgIHNldE9wdGlvbnNDaGFu
Z2VkT25SZW5kZXJlcihkYXRhLCBlbGVtZW50KTsKKyAgICBzZXRPcHRpb25zQ2hhbmdlZE9uUmVu
ZGVyZXIobV9kYXRhLCB0aGlzKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAot
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNdWx0aXBsZUF0dHJpYnV0ZShTZWxlY3RFbGVt
ZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVudCwgQXR0cmlidXRlKiBhdHRyaWJ1dGUpCit2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU11bHRpcGxlQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSogYXR0cmlidXRlKQogewotICAgIGJvb2wgb2xkVXNlc01lbnVMaXN0ID0gZGF0YS51c2Vz
TWVudUxpc3QoKTsKLSAgICBkYXRhLnNldE11bHRpcGxlKCFhdHRyaWJ1dGUtPmlzTnVsbCgpKTsK
LSAgICB0b1NlbGVjdEVsZW1lbnQoZWxlbWVudCktPnVwZGF0ZVZhbGlkaXR5KCk7Ci0gICAgaWYg
KG9sZFVzZXNNZW51TGlzdCAhPSBkYXRhLnVzZXNNZW51TGlzdCgpICYmIGVsZW1lbnQtPmF0dGFj
aGVkKCkpIHsKLSAgICAgICAgZWxlbWVudC0+ZGV0YWNoKCk7Ci0gICAgICAgIGVsZW1lbnQtPmF0
dGFjaCgpOwotICAgIH0KKyAgICBib29sIG9sZFVzZXNNZW51TGlzdCA9IG1fZGF0YS51c2VzTWVu
dUxpc3QoKTsKKyAgICBtX2RhdGEuc2V0TXVsdGlwbGUoIWF0dHJpYnV0ZS0+aXNOdWxsKCkpOwor
ICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgaWYgKG9sZFVzZXNNZW51TGlzdCAhPSBtX2RhdGEu
dXNlc01lbnVMaXN0KCkpCisgICAgICAgIHJlYXR0YWNoSWZBdHRhY2hlZCgpOwogfQogCi1ib29s
IEhUTUxTZWxlY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShTZWxlY3RFbGVtZW50RGF0YSYgZGF0
YSwgRWxlbWVudCogZWxlbWVudCwgRm9ybURhdGFMaXN0JiBsaXN0KQorYm9vbCBIVE1MU2VsZWN0
RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBsaXN0LCBib29sKQogewotICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGVsZW1lbnQtPmZvcm1Db250cm9sTmFtZSgpOwor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGZvcm1Db250cm9sTmFtZSgpOwogICAgIGlm
IChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBzdWNj
ZXNzZnVsID0gZmFsc2U7Ci0gICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBkYXRh
Lmxpc3RJdGVtcyhlbGVtZW50KTsKKyAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9
IG1fZGF0YS5saXN0SXRlbXModGhpcyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
aXRlbXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVu
dCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSk7CkBAIC0xMDI1LDE5ICs5NzEsMTkgQEAgYm9v
bCBIVE1MU2VsZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoU2VsZWN0RWxlbWVudERhdGEmIGRh
dGEsIEVsZW1lbnQqIGVsZW1lbnQKICAgICByZXR1cm4gc3VjY2Vzc2Z1bDsKIH0gCiAKLXZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50
KiBlbGVtZW50KQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogewogICAgIE9wdGlv
bkVsZW1lbnQqIGZpcnN0T3B0aW9uID0gMDsKICAgICBPcHRpb25FbGVtZW50KiBzZWxlY3RlZE9w
dGlvbiA9IDA7CiAKLSAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9IGRhdGEubGlz
dEl0ZW1zKGVsZW1lbnQpOworICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGl0ZW1zID0gbV9k
YXRhLmxpc3RJdGVtcyh0aGlzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRv
T3B0aW9uRWxlbWVudChpdGVtc1tpXSk7CiAgICAgICAgIGlmICghb3B0aW9uRWxlbWVudCkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChpdGVtc1tpXS0+ZmFzdEhhc0F0dHJp
YnV0ZShIVE1MTmFtZXM6OnNlbGVjdGVkQXR0cikpIHsKLSAgICAgICAgICAgIGlmIChzZWxlY3Rl
ZE9wdGlvbiAmJiAhZGF0YS5tdWx0aXBsZSgpKQorICAgICAgICBpZiAoaXRlbXNbaV0tPmZhc3RI
YXNBdHRyaWJ1dGUoc2VsZWN0ZWRBdHRyKSkgeworICAgICAgICAgICAgaWYgKHNlbGVjdGVkT3B0
aW9uICYmICFtX2RhdGEubXVsdGlwbGUoKSkKICAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlv
bi0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CiAgICAgICAgICAgICBvcHRpb25FbGVtZW50LT5z
ZXRTZWxlY3RlZFN0YXRlKHRydWUpOwogICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24gPSBvcHRp
b25FbGVtZW50OwpAQCAtMTA0OCwxMSArOTk0LDEyIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnJlc2V0KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQogICAgICAg
ICAgICAgZmlyc3RPcHRpb24gPSBvcHRpb25FbGVtZW50OwogICAgIH0KIAotICAgIGlmICghc2Vs
ZWN0ZWRPcHRpb24gJiYgZmlyc3RPcHRpb24gJiYgIWRhdGEubXVsdGlwbGUoKSAmJiBkYXRhLnNp
emUoKSA8PSAxKQorICAgIGlmICghc2VsZWN0ZWRPcHRpb24gJiYgZmlyc3RPcHRpb24gJiYgIW1f
ZGF0YS5tdWx0aXBsZSgpICYmIG1fZGF0YS5zaXplKCkgPD0gMSkKICAgICAgICAgZmlyc3RPcHRp
b24tPnNldFNlbGVjdGVkU3RhdGUodHJ1ZSk7CiAKLSAgICBzZXRPcHRpb25zQ2hhbmdlZE9uUmVu
ZGVyZXIoZGF0YSwgZWxlbWVudCk7Ci0gICAgZWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYygp
OworICAgIHNldE9wdGlvbnNDaGFuZ2VkT25SZW5kZXJlcihtX2RhdGEsIHRoaXMpOworICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
I2lmICFQTEFURk9STShXSU4pIHx8IE9TKFdJTkNFKQpAQCAtMTUyMyw0MyArMTQ3MCw0NCBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKFNlbGVjdEVsZW1lbnREYXRhJiBk
YXRhLCBFbGVtZW50KiBlbGVtZW50LAogICAgIH0KIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvVHJlZShTZWxlY3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxl
bWVudCkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVw
KQogewogICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaXMgY3JlYXRlZCBkdXJpbmcgZG9jdW1lbnQg
cGFyc2luZywgaXQgd29uJ3QgaGF2ZSBhbnkKICAgICAvLyBpdGVtcyB5ZXQgLSBidXQgZm9yIGlu
bmVySFRNTCBhbmQgcmVsYXRlZCBtZXRob2RzLCB0aGlzIG1ldGhvZCBpcyBjYWxsZWQKICAgICAv
LyBhZnRlciB0aGUgd2hvbGUgc3VidHJlZSBpcyBjb25zdHJ1Y3RlZC4KLSAgICByZWNhbGNMaXN0
SXRlbXMoZGF0YSwgZWxlbWVudCwgdHJ1ZSk7CisgICAgcmVjYWxjTGlzdEl0ZW1zKG1fZGF0YSwg
dGhpcywgdHJ1ZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0
ZWRJbnRvVHJlZShkZWVwKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5
U2V0U2VsZWN0ZWRJbmRleChTZWxlY3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVu
dCwgaW50IGluZGV4KQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5U2V0U2VsZWN0
ZWRJbmRleChpbnQgaW5kZXgpCiB7ICAgIAotICAgIC8vIGZpcnN0IGJyaW5nIGludG8gZm9jdXMg
dGhlIGxpc3QgYm94Ci0gICAgaWYgKCFlbGVtZW50LT5mb2N1c2VkKCkpCi0gICAgICAgIGVsZW1l
bnQtPmFjY2Vzc0tleUFjdGlvbihmYWxzZSk7CisgICAgLy8gRmlyc3QgYnJpbmcgaW50byBmb2N1
cyB0aGUgbGlzdCBib3guCisgICAgaWYgKCFmb2N1c2VkKCkpCisgICAgICAgIGFjY2Vzc0tleUFj
dGlvbihmYWxzZSk7CiAgICAgCiAgICAgLy8gaWYgdGhpcyBpbmRleCBpcyBhbHJlYWR5IHNlbGVj
dGVkLCB1bnNlbGVjdC4gb3RoZXJ3aXNlIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgaW5kZXgKLSAgICBj
b25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9IGRhdGEubGlzdEl0ZW1zKGVsZW1lbnQpOwot
ICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChkYXRhLCBlbGVtZW50LCBpbmRl
eCk7CisgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBtX2RhdGEubGlzdEl0ZW1z
KHRoaXMpOworICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChtX2RhdGEsIHRo
aXMsIGluZGV4KTsKICAgICBpZiAoT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IChsaXN0
SW5kZXggPj0gMCA/IHRvT3B0aW9uRWxlbWVudChpdGVtc1tsaXN0SW5kZXhdKSA6IDApKSB7CiAg
ICAgICAgIGlmIChvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKQogICAgICAgICAgICAgb3B0aW9u
RWxlbWVudC0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHNldFNlbGVjdGVkSW5kZXgoZGF0YSwgZWxlbWVudCwgaW5kZXgsIGZhbHNlLCB0cnVlKTsK
KyAgICAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBpbmRleCwgZmFsc2Us
IHRydWUpOwogICAgIH0KIAotICAgIGlmIChkYXRhLnVzZXNNZW51TGlzdCgpKQotICAgICAgICBt
ZW51TGlzdE9uQ2hhbmdlKGRhdGEsIGVsZW1lbnQpOworICAgIGlmIChtX2RhdGEudXNlc01lbnVM
aXN0KCkpCisgICAgICAgIG1lbnVMaXN0T25DaGFuZ2UobV9kYXRhLCB0aGlzKTsKICAgICBlbHNl
Ci0gICAgICAgIGxpc3RCb3hPbkNoYW5nZShkYXRhLCBlbGVtZW50KTsKKyAgICAgICAgbGlzdEJv
eE9uQ2hhbmdlKG1fZGF0YSwgdGhpcyk7CiAKLSAgICBzY3JvbGxUb1NlbGVjdGlvbihkYXRhLCBl
bGVtZW50KTsKKyAgICBzY3JvbGxUb1NlbGVjdGlvbihtX2RhdGEsIHRoaXMpOwogfQogCi11bnNp
Z25lZCBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQ291bnQoY29uc3QgU2VsZWN0RWxlbWVudERh
dGEmIGRhdGEsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit1bnNpZ25lZCBIVE1MU2VsZWN0RWxl
bWVudDo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBvcHRpb25zID0gMDsKIAotICAg
IGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGl0ZW1zID0gZGF0YS5saXN0SXRlbXMoZWxlbWVudCk7
CisgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBtX2RhdGEubGlzdEl0ZW1zKHRo
aXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgewog
ICAgICAgICBpZiAoaXNPcHRpb25FbGVtZW50KGl0ZW1zW2ldKSkKICAgICAgICAgICAgICsrb3B0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCA2YzMxNjE0
ODhmOWU5NjA4YTkzYTkyOGZlYTc0MTVlNjE4YThmNmJkLi4yNTA0YjY3ZDNhZTE3MTg0OWFmYzk1
MzRlMTE1Mjg3YjJmZTQxOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oCkBAIC0xNDQsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1BsYWNlaG9sZGVy
TGFiZWxPcHRpb24oKSBjb25zdDsKIAogICAgIC8vIEZJWE1FOiBGb2xkIHNvbWUgb2YgdGhlIGZv
bGxvd2luZyBmdW5jdGlvbnMuCi0gICAgc3RhdGljIHZvaWQgc2VsZWN0QWxsKFNlbGVjdEVsZW1l
bnREYXRhJiwgRWxlbWVudCopOwogICAgIHN0YXRpYyB2b2lkIHNhdmVMYXN0U2VsZWN0aW9uKFNl
bGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCopOwogICAgIHN0YXRpYyB2b2lkIHNldEFjdGl2ZVNl
bGVjdGlvbkFuY2hvckluZGV4KFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCosIGludCBpbmRl
eCk7CiAgICAgc3RhdGljIHZvaWQgc2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoU2VsZWN0RWxl
bWVudERhdGEmLCBpbnQgaW5kZXgpOwpAQCAtMTU4LDIwICsxNTcsMTIgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RlZEluZGV4KFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVu
dCosIGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCA9IHRydWUsIGJvb2wgZmlyZU9uQ2hh
bmdlTm93ID0gZmFsc2UsIGJvb2wgdXNlckRyaXZlbkNoYW5nZSA9IHRydWUpOwogICAgIHN0YXRp
YyBpbnQgb3B0aW9uVG9MaXN0SW5kZXgoY29uc3QgU2VsZWN0RWxlbWVudERhdGEmLCBjb25zdCBF
bGVtZW50KiwgaW50IG9wdGlvbkluZGV4KTsKICAgICBzdGF0aWMgaW50IGxpc3RUb09wdGlvbklu
ZGV4KGNvbnN0IFNlbGVjdEVsZW1lbnREYXRhJiwgY29uc3QgRWxlbWVudCosIGludCBsaXN0SW5k
ZXgpOwotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChTZWxlY3RFbGVtZW50RGF0
YSYsIEVsZW1lbnQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEJsdXJFdmVudChTZWxlY3RF
bGVtZW50RGF0YSYsIEVsZW1lbnQqKTsKICAgICBzdGF0aWMgdm9pZCBkZXNlbGVjdEl0ZW1zKFNl
bGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCosIEVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50ID0gMCk7
Ci0gICAgc3RhdGljIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU2VsZWN0RWxlbWVu
dERhdGEmLCBjb25zdCBFbGVtZW50KiwgU3RyaW5nJiBzdGF0ZSk7Ci0gICAgc3RhdGljIHZvaWQg
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50KiwgY29u
c3QgU3RyaW5nJiBzdGF0ZSk7Ci0gICAgc3RhdGljIHZvaWQgcGFyc2VNdWx0aXBsZUF0dHJpYnV0
ZShTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQqLCBBdHRyaWJ1dGUqKTsKLSAgICBzdGF0aWMg
Ym9vbCBhcHBlbmRGb3JtRGF0YShTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQqLCBGb3JtRGF0
YUxpc3QmKTsKLSAgICBzdGF0aWMgdm9pZCByZXNldChTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1l
bnQqKTsKKyAgICB2b2lkIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlKik7
CiAgICAgc3RhdGljIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihTZWxlY3RFbGVtZW50RGF0YSYs
IEVsZW1lbnQqLCBFdmVudCosIEhUTUxGb3JtRWxlbWVudCopOwogICAgIHN0YXRpYyBpbnQgbGFz
dFNlbGVjdGVkTGlzdEluZGV4KGNvbnN0IFNlbGVjdEVsZW1lbnREYXRhJiwgY29uc3QgRWxlbWVu
dCopOwogICAgIHN0YXRpYyB2b2lkIHR5cGVBaGVhZEZpbmQoU2VsZWN0RWxlbWVudERhdGEmLCBF
bGVtZW50KiwgS2V5Ym9hcmRFdmVudCopOwogICAgIHN0YXRpYyB2b2lkIGluc2VydGVkSW50b1Ry
ZWUoU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50Kik7Ci0gICAgc3RhdGljIHZvaWQgYWNjZXNz
S2V5U2V0U2VsZWN0ZWRJbmRleChTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQqLCBpbnQgaW5k
ZXgpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBvcHRpb25Db3VudChjb25zdCBTZWxlY3RFbGVtZW50
RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKIAogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGVk
U3RhdGUoU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50KiwgaW50IGxpc3RJbmRleCwgYm9vbCBt
dWx0aSwgYm9vbCBzaGlmdCk7CiAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>