<?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>23434</bug_id>
          
          <creation_ts>2009-01-20 09:59:24 -0800</creation_ts>
          <short_desc>Add WML &lt;input&gt; element support</short_desc>
          <delta_ts>2009-01-23 15:06:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>23433</dependson>
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106337</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 09:59:24 -0800</bug_when>
    <thetext>Add WMLInputElement, as first step don&apos;t handle any WML specific attributes (format/emptyok/etc..) only make them work. Follow-up patches will add the necessary WML specific logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106382</commentid>
    <comment_count>1</comment_count>
      <attachid>26871</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 13:55:45 -0800</bug_when>
    <thetext>Created attachment 26871
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106385</commentid>
    <comment_count>2</comment_count>
      <attachid>26871</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-01-20 14:13:12 -0800</bug_when>
    <thetext>Comment on attachment 26871
Initial patch

Copyright should be 2009, and those bools don&apos;t need to be bitfields right now. otherwise R+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106387</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 14:18:56 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 26871 [review])
&gt; Copyright should be 2009, and those bools don&apos;t need to be bitfields right now.
&gt; otherwise R+
&gt; 
Thanks for the r+, I&apos;ll change the copyright to list 2008 &amp; 2009.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106388</commentid>
    <comment_count>4</comment_count>
      <attachid>26871</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-20 14:20:50 -0800</bug_when>
    <thetext>Comment on attachment 26871
Initial patch

Looks sane.  r=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106389</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 14:29:39 -0800</bug_when>
    <thetext>Thanks Eric, you&apos;re not mentioned in the ChangeLog, as I commited before I saw your message.
Landed in r40071.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26871</attachid>
            <date>2009-01-20 13:55:45 -0800</date>
            <delta_ts>2009-01-20 14:13:12 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddWMLInputElement.diff</filename>
            <type>text/plain</type>
            <size>33895</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzUgQEAKKzIwMDktMDEtMjAgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQzNAorCisgICAgICAgIEFkZCBXTUwgPGlucHV0PiBlbGVtZW50IHN1cHBv
cnQgLSBpdCByZXF1aXJlZCBhIGxvdCBvZiBjaGFuZ2VzIHRvIHRoZSBSZW5kZXJUZXh0Ki9IVE1M
SW5wdXQqIGNvZGUuCisgICAgICAgIE5vdyBhbnkgbGFuZ3VhZ2UgY2FuIHByb3ZpZGUgPGlucHV0
Pi1zdHlsZSBlbGVtZW50cywgd2l0aG91dCBoYXZpbmcgdG8gaW5oZXJpdCBmcm9tIEhUTUwqIGNs
YXNzZXMuCisKKyAgICAgICAgTm8gV01MIHNwZWNpZmljIGZlYXR1cmVzL2F0dHJpYnV0ZXMgYXJl
IGhhbmRsZWQgc28gZmFyLiBBIGZvbGxvdy11cCBwYXRjaCB3aWxsIHByb3ZpZGUgdGhvc2UgYml0
cy4KKyAgICAgICAgQWRkZWQgdmVyeSBzaW1wbGUgZmFzdC93bWwvaW5wdXQud21sLCBqdXN0IGNo
ZWNraW5nIHRoYXQgaW5wdXQgZWxlbWVudHMgY2FuIGJlIHJlbmRlcmVkIHByb3Blcmx5IG5vdy4K
KyAgICAgICAgRGV0YWlsZWQgdGVzdGNhc2VzIHdpbGwgZm9sbG93IGluIGNvbmp1bmN0aW9uIHdp
dGggdGhlIFdNTCBzcGVjaWZpYyBhdHRyaWJ1dGUgc3VwcG9ydC4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphZGp1c3RSZW5kZXJTdHlsZSk6CisgICAgICAgICog
ZG9tL0Zvcm1Db250cm9sRWxlbWVudC5jcHA6IEFjdGl2YXRlIGRpc2FibGVkIGNvZGUgZnJvbSBw
cmV2aW91cyBjaGVja2luZy4KKyAgICAgICAgKFdlYkNvcmU6OmZvcm1Db250cm9sRWxlbWVudEZv
ckVsZW1lbnQpOgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmlucHV0RWxlbWVudEZvckVsZW1lbnQpOgorICAgICAgICAqIHdtbC9XTUxJ
bnB1dEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVu
dDo6V01MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6
fldNTElucHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc0lucHV0Rm9jdXNhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZUZvY3VzQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmFib3V0VG9VbmxvYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OldNTElucHV0RWxlbWVudDo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1l
bnQ6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6c2V0VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OnNhdmVTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OnJlc3RvcmVTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJ
bnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1
dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTElu
cHV0RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6V01MSW5wdXRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpX
TUxJbnB1dEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1l
bnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmFwcGVuZEZv
cm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6Y2FjaGVTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50Ojpjb25zdHJhaW5WYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmRvY3VtZW50RGlkQmVjb21lQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6cGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50Ojp3aWxsTW92ZVRvTmV3T3duZXJE
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmRpZE1vdmVUb05l
d093bmVyRG9jdW1lbnQpOgorICAgICAgICAqIHdtbC9XTUxJbnB1dEVsZW1lbnQuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OnZhbHVlTWF0Y2hlc1JlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTElucHV0RWxlbWVudDo6c2V0VmFsdWVNYXRjaGVzUmVu
ZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1
dE1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmlzQ2hlY2tlZCk6
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmlzSW5kZXRlcm1pbmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmlzVGV4dENvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50Ojppc1JhZGlvQnV0dG9uKToKKyAgICAgICAgKFdl
YkNvcmU6OldNTElucHV0RWxlbWVudDo6aXNUZXh0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6
V01MSW5wdXRFbGVtZW50Ojppc1NlYXJjaEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OldNTElu
cHV0RWxlbWVudDo6aXNJbnB1dFR5cGVIaWRkZW4pOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5w
dXRFbGVtZW50Ojppc1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRF
bGVtZW50OjpzZWFyY2hFdmVudHNTaG91bGRCZURpc3BhdGNoZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6V01MSW5wdXRFbGVtZW50OjpwbGFjZWhvbGRlclZhbHVlKToKKyAgICAgICAgKiB3bWwvV01M
VGFnTmFtZXMuaW46CisKIDIwMDktMDEtMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNv
cmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQko
cmV2aXNpb24gNDAwNjcpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjEzLDYgKzIyMTMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvd21s
L1dNTEdvRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvd21sL1dNTEltYWdlRWxlbWVudC5jcHAgXAog
CVdlYkNvcmUvd21sL1dNTEltYWdlTG9hZGVyLmNwcCBcCisJV2ViQ29yZS93bWwvV01MSW5wdXRF
bGVtZW50LmNwcCBcCiAJV2ViQ29yZS93bWwvV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCBc
CiAJV2ViQ29yZS93bWwvV01MSW50cmluc2ljRXZlbnQuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxJ
bnRyaW5zaWNFdmVudEhhbmRsZXIuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNDAwNjcpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNDE2LDYgKzE0MTYsNyBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfV01MPTEpIHsKICAgICAgICAgd21sL1dNTEdvRWxlbWVudC5j
cHAgXAogICAgICAgICB3bWwvV01MSW1hZ2VFbGVtZW50LmNwcCBcCiAgICAgICAgIHdtbC9XTUxJ
bWFnZUxvYWRlci5jcHAgXAorICAgICAgICB3bWwvV01MSW5wdXRFbGVtZW50LmNwcCBcCiAgICAg
ICAgIHdtbC9XTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwIFwKICAgICAgICAgd21sL1dNTElu
dHJpbnNpY0V2ZW50LmNwcCBcCiAgICAgICAgIHdtbC9XTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIu
Y3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24g
NDAwNjcpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjcyMiw2ICsxNjcyMiwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MSW5wdXRFbGVtZW50LmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHdtbFxX
TUxJbnB1dEVsZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHdtbFxXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwIg0KIAkJCQk+
DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA0MDA2OCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw4IEBACiAJCTA4ODA3Qjgx
MEVENzA5QUIwMDNGNjk3NSAvKiBXTUxTZXR2YXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODgwN0I3NTBFRDcwOUFCMDAzRjY5NzUgLyog
V01MU2V0dmFyRWxlbWVudC5oICovOyB9OwogCQkwODgyMEJERTBFRjVEMzgxMDA5MDk5QTggLyog
V01MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4ODIwQkRDMEVGNUQzODEwMDkwOTlBOCAvKiBXTUxUYWJsZUVsZW1lbnQuY3Bw
ICovOyB9OwogCQkwODgyMEJERjBFRjVEMzgxMDA5MDk5QTggLyogV01MVGFibGVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODgyMEJERDBF
RjVEMzgxMDA5MDk5QTggLyogV01MVGFibGVFbGVtZW50LmggKi87IH07CisJCTA4ODQ1MTE1MEYy
NjdCNjMwMDdGMTM5RSAvKiBXTUxJbnB1dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg4NDUxMTMwRjI2N0I2MjAwN0YxMzlFIC8qIFdN
TElucHV0RWxlbWVudC5jcHAgKi87IH07CisJCTA4ODQ1MTE2MEYyNjdCNjMwMDdGMTM5RSAvKiBX
TUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA4ODQ1MTE0MEYyNjdCNjMwMDdGMTM5RSAvKiBXTUxJbnB1dEVsZW1lbnQuaCAqLzsg
fTsKIAkJMDg4Qzk3MTIwRUNCNkQ5MjAwMDUzNEJBIC8qIFdNTE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRDQTNBQjQ5MEU1NTZGMjQwMEU5
QzBDMCAvKiBXTUxOYW1lcy5jcHAgKi87IH07CiAJCTA4OEM5NzEzMEVDQjZEOUQwMDA1MzRCQSAv
KiBXTUxOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNENBM0FCNDgwRTU1NkYyNDAwRTlDMEMwIC8qIFdNTE5hbWVzLmggKi87IH07CiAJCTA4OEM5
NzUxMEVDQjZFMjgwMDA1MzRCQSAvKiBXTUxBRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QzZCOTkxODBFNTJFMzczMDA0ODdCQjcgLyog
V01MQUVsZW1lbnQuY3BwICovOyB9OwpAQCAtNDkwOCw2ICs0OTEwLDggQEAKIAkJMDg4MDdCNzUw
RUQ3MDlBQjAwM0Y2OTc1IC8qIFdNTFNldHZhckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV01MU2V0dmFyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODgyMEJEQzBFRjVEMzgxMDA5MDk5QTggLyogV01MVGFibGVFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTFRhYmxlRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4ODIwQkREMEVGNUQzODEwMDkwOTlBOCAv
KiBXTUxUYWJsZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01M
VGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4ODQ1MTEzMEYy
NjdCNjIwMDdGMTM5RSAvKiBXTUxJbnB1dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV01MSW5wdXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDg4NDUxMTQwRjI2N0I2MzAwN0YxMzlFIC8qIFdNTElucHV0RWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxJbnB1dEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg5M0U0NjUwRUNCNjhGNDAwQTI4NTYzIC8qIFdN
TFBhZ2VTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxQ
YWdlU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODkzRTQ2NjBFQ0I2
OEY0MDBBMjg1NjMgLyogV01MUGFnZVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdNTFBhZ2VTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODk1
ODI1MzBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTY4NSw2ICs5Njg5LDggQEAKIAkJCQkwOEM0QzUxNTBFRjE5QTQwMDBFNDg0
MEYgLyogV01MSW1hZ2VFbGVtZW50LmggKi8sCiAJCQkJMDhDNEM1MTYwRUYxOUE0MDAwRTQ4NDBG
IC8qIFdNTEltYWdlTG9hZGVyLmNwcCAqLywKIAkJCQkwOEM0QzUxNzBFRjE5QTQwMDBFNDg0MEYg
LyogV01MSW1hZ2VMb2FkZXIuaCAqLywKKwkJCQkwODg0NTExMzBGMjY3QjYyMDA3RjEzOUUgLyog
V01MSW5wdXRFbGVtZW50LmNwcCAqLywKKwkJCQkwODg0NTExNDBGMjY3QjYzMDA3RjEzOUUgLyog
V01MSW5wdXRFbGVtZW50LmggKi8sCiAJCQkJMDg3RkZBMEQwRUZGM0VEMzAwOURCRDg4IC8qIFdN
TEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHAgKi8sCiAJCQkJMDg3RkZBMEUwRUZGM0VEMzAwOURC
RDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVudC5oICovLAogCQkJCTA4MEFFQzdEMEVEODcw
OEEwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5jcHAgKi8sCkBAIC0xNjQ0OSw2ICsxNjQ1
NSw3IEBACiAJCQkJMDg4MDdCNzcwRUQ3MDlBQjAwM0Y2OTc1IC8qIFdNTEdvRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDhDNEM1MTkwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhDNEM1MUIwRUYxOUE0MDAwRTQ4NDBGIC8qIFdN
TEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODg0NTExNjBGMjY3QjYzMDA3RjEz
OUUgLyogV01MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODdGRkExMDBFRkYz
RUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODBBRUM4MjBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4MEFFQzg0MEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNF
dmVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTg0MjEsNiArMTg0MjgsNyBAQAogCQkJ
CTA4ODA3Qjc2MEVENzA5QUIwMDNGNjk3NSAvKiBXTUxHb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDhDNEM1MTgwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwOEM0QzUxQTBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDg4NDUxMTUwRjI2N0I2MzAwN0YxMzlFIC8q
IFdNTElucHV0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODdGRkEwRjBFRkYzRUQz
MDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA4MEFFQzgxMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwODBBRUM4MzBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2lj
RXZlbnRIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHJldmlzaW9uIDQwMDY4KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NzQsNiArMTQ3NCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YWRqdXN0UmVuZGVyU3R5bGUKICAgICAgICAgICAgICAgZS0+aGFzVGFnTmFtZShzZWxl
Y3RUYWcpIHx8IGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpCiAjaWYgRU5BQkxFKFdNTCkKICAg
ICAgICAgICAgICAgfHwgZS0+aGFzVGFnTmFtZShXTUxOYW1lczo6aW5zZXJ0ZWRMZWdlbmRUYWcp
CisgICAgICAgICAgICAgIHx8IGUtPmhhc1RhZ05hbWUoV01MTmFtZXM6OmlucHV0VGFnKQogI2Vu
ZGlmCiAgICAgICAgKSkgewogICAgICAgICBpZiAoc3R5bGUtPndpZHRoKCkuaXNBdXRvKCkpCklu
ZGV4OiBXZWJDb3JlL2RvbS9Gb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0Zvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDQwMDY4KQorKysgV2Vi
Q29yZS9kb20vRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOCAr
MzksNyBAQCBGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudEZvCiAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KGVsZW1lbnQp
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBFbmFibGUgdGhpcyBjb2RlLCBvbmNlIHRoZSBmb2xs
b3ctdXAgV01MSW5wdXRFbGVtZW50IGFkZGl0aW9uIHBhdGNoIGxhbmRzLgotI2lmIEVOQUJMRShX
TUwpICYmIDAKKyNpZiBFTkFCTEUoV01MKQogICAgIGlmIChlbGVtZW50LT5pc1dNTEVsZW1lbnQo
KSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKFdNTE5hbWVzOjppbnB1dFRhZykpCiAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKICNlbmRpZgpJbmRl
eDogV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9JbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MDA2OCkKKysrIFdlYkNvcmUvZG9tL0lucHV0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5Niw4ICsyOTYsNyBAQCBJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudEZvckVsZW1lbnQoRWxlCiAgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSAmJiAoZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgZWxlbWVudC0+aGFz
VGFnTmFtZShpc2luZGV4VGFnKSkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4oZWxlbWVudCk7CiAKLSAgICAvLyBGSVhNRTogRW5hYmxlIHRoaXMgY29kZSwg
b25jZSB0aGUgZm9sbG93LXVwIFdNTElucHV0RWxlbWVudCBhZGRpdGlvbiBwYXRjaCBsYW5kcy4K
LSNpZiBFTkFCTEUoV01MKSAmJiAwCisjaWYgRU5BQkxFKFdNTCkKICAgICBpZiAoZWxlbWVudC0+
aXNXTUxFbGVtZW50KCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShXTUxOYW1lczo6aW5wdXRUYWcp
KQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V01MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7
CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMy
IEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxJbnB1dEVsZW1lbnQu
aCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oIgorI2luY2x1ZGUgIlRleHRFdmVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dNTElucHV0RWxlbWVudDo6V01MSW5wdXRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBXTUxFbGVtZW50KHRh
Z05hbWUsIGRvYykKKyAgICAsIG1fZGF0YSh0aGlzLCB0aGlzKQorICAgICwgbV9pc1Bhc3N3b3Jk
RmllbGQoZmFsc2UpCisgICAgLCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKQoreworfQor
CitXTUxJbnB1dEVsZW1lbnQ6On5XTUxJbnB1dEVsZW1lbnQoKQoreworICAgIGlmIChtX2lzUGFz
c3dvcmRGaWVsZCkKKyAgICAgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3RlckZvckRvY3VtZW50QWN0
aXZhdGlvbkNhbGxiYWNrcyh0aGlzKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzSW5wdXRG
b2N1c2FibGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICBpZiAoIXJlbmRlcmVyKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXJlbmRlcmVyLT53aWR0aCgpIHx8ICFy
ZW5kZXJlci0+aGVpZ2h0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChSZW5k
ZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKSkgeworICAgICAgICBpZiAoc3R5bGUt
PnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdNTElucHV0RWxlbWVudDo6aXNLZXli
b2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKK3sKKyAgICByZXR1cm4gaXNJbnB1
dEZvY3VzYWJsZShyZW5kZXJlcigpKTsKK30KKworYm9vbCBXTUxJbnB1dEVsZW1lbnQ6OmlzTW91
c2VGb2N1c2FibGUoKSBjb25zdAoreworICAgIHJldHVybiBpc0lucHV0Rm9jdXNhYmxlKHJlbmRl
cmVyKCkpOworfQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkK
K3sKKyAgICBJbnB1dEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChtX2RhdGEsIGRvY3VtZW50
KCkpOworICAgIFdNTEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpOworfQorCit2b2lkIFdN
TElucHV0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQoreworICAgIElucHV0RWxlbWVudDo6
ZGlzcGF0Y2hCbHVyRXZlbnQobV9kYXRhLCBkb2N1bWVudCgpKTsKKyAgICBXTUxFbGVtZW50Ojpk
aXNwYXRjaEJsdXJFdmVudCgpOworfQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6dXBkYXRlRm9j
dXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQoreworICAgIElucHV0
RWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKG1fZGF0YSwgZG9jdW1lbnQoKSwgcmVzdG9y
ZVByZXZpb3VzU2VsZWN0aW9uKTsKK30KKwordm9pZCBXTUxJbnB1dEVsZW1lbnQ6OmFib3V0VG9V
bmxvYWQoKQoreworICAgIElucHV0RWxlbWVudDo6YWJvdXRUb1VubG9hZChtX2RhdGEsIGRvY3Vt
ZW50KCkpOworfQorCitpbnQgV01MSW5wdXRFbGVtZW50OjpzaXplKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9kYXRhLnNpemUoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXTUxJbnB1dEVs
ZW1lbnQ6Om5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2RhdGEubmFtZSgpOworfQorCitT
dHJpbmcgV01MSW5wdXRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHZhbHVl
ID0gbV9kYXRhLnZhbHVlKCk7CisgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQorICAgICAgICB2YWx1
ZSA9IGNvbnN0cmFpblZhbHVlKGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnZhbHVlQXR0cikpOwor
CisgICAgcmV0dXJuIHZhbHVlOworfQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6c2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBJbnB1dEVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9s
ZGVyVmlzaWJpbGl0eShtX2RhdGEsIGRvY3VtZW50KCkpOworICAgIHNldFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKGZhbHNlKTsKKyAgICBtX2RhdGEuc2V0VmFsdWUoY29uc3RyYWluVmFsdWUodmFsdWUp
KTsKKyAgICBpZiAoaW5Eb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudCgpLT51cGRhdGVSZW5k
ZXJpbmcoKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRl
RnJvbUVsZW1lbnQoKTsKKyAgICBzZXRDaGFuZ2VkKCk7CisKKyAgICB1bnNpZ25lZCBtYXggPSBt
X2RhdGEudmFsdWUoKS5sZW5ndGgoKTsKKyAgICBpZiAoZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUo
KSA9PSB0aGlzKQorICAgICAgICBJbnB1dEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGlvblJhbmdlKG1f
ZGF0YSwgbWF4LCBtYXgpOworICAgIGVsc2UKKyAgICAgICAgY2FjaGVTZWxlY3Rpb24obWF4LCBt
YXgpOworCisgICAgSW5wdXRFbGVtZW50Ojpub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKG1fZGF0YSwg
ZG9jdW1lbnQoKSk7Cit9CisKK3ZvaWQgV01MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5k
ZXJlcihjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIElucHV0RWxlbWVudDo6c2V0VmFsdWVG
cm9tUmVuZGVyZXIobV9kYXRhLCBkb2N1bWVudCgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgV01MSW5w
dXRFbGVtZW50OjpzYXZlU3RhdGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKG1f
aXNQYXNzd29yZEZpZWxkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXN1bHQgPSB2
YWx1ZSgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6cmVz
dG9yZVN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpCit7CisgICAgQVNTRVJUKCFtX2lzUGFzc3dv
cmRGaWVsZCk7IC8vIHNob3VsZCBuZXZlciBzYXZlL3Jlc3RvcmUgcGFzc3dvcmQgZmllbGRzCisg
ICAgc2V0VmFsdWUoc3RhdGUpOworfQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6c2VsZWN0KCkK
K3sKKyAgICBpZiAoUmVuZGVyVGV4dENvbnRyb2wqIHIgPSBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0
Q29udHJvbCo+KHJlbmRlcmVyKCkpKQorICAgICAgICByLT5zZWxlY3QoKTsKK30KKwordm9pZCBX
TUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQoreworICAgIC8vIHNob3VsZCBu
ZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCisgICAgZm9jdXMoZmFsc2UpOwor
fQorCit2b2lkIFdNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjpuYW1l
QXR0cikKKyAgICAgICAgbV9kYXRhLnNldE5hbWUocGFyc2VWYWx1ZUZvcmJpZGRpbmdWYXJpYWJs
ZVJlZmVyZW5jZXMoYXR0ci0+dmFsdWUoKSkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBIVE1MTmFtZXM6OnR5cGVBdHRyKSB7CisgICAgICAgIFN0cmluZyB0eXBlID0gcGFyc2VWYWx1
ZUZvcmJpZGRpbmdWYXJpYWJsZVJlZmVyZW5jZXMoYXR0ci0+dmFsdWUoKSk7CisgICAgICAgIG1f
aXNQYXNzd29yZEZpZWxkID0gKHR5cGUgPT0gInBhc3N3b3JkIik7CisgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjp2YWx1ZUF0dHIpIHsKKyAgICAgICAgLy8gV2Ugb25s
eSBuZWVkIHRvIHNldENoYW5nZWQgaWYgdGhlIGZvcm0gaXMgbG9va2luZyBhdCB0aGUgZGVmYXVs
dCB2YWx1ZSByaWdodCBub3cuCisgICAgICAgIGlmIChtX2RhdGEudmFsdWUoKS5pc051bGwoKSkK
KyAgICAgICAgICAgIHNldENoYW5nZWQoKTsKKyAgICAgICAgc2V0VmFsdWVNYXRjaGVzUmVuZGVy
ZXIoZmFsc2UpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxOYW1lczo6bWF4
bGVuZ3RoQXR0cikKKyAgICAgICAgSW5wdXRFbGVtZW50OjpwYXJzZU1heExlbmd0aEF0dHJpYnV0
ZShtX2RhdGEsIGF0dHIpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6
OnNpemVBdHRyKQorICAgICAgICBJbnB1dEVsZW1lbnQ6OnBhcnNlU2l6ZUF0dHJpYnV0ZShtX2Rh
dGEsIGF0dHIpOworICAgIGVsc2UKKyAgICAgICAgV01MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoYXR0cik7CisKKyAgICAvLyBGSVhNRTogSGFuZGxlICdhY2Nlc3NrZXknIGF0dHJpYnV0
ZQorICAgIC8vIEZJWE1FOiBIYW5kbGUgJ2Zvcm1hdCcgYXR0cmlidXRlCisgICAgLy8gRklYTUU6
IEhhbmRsZSAnZW1wdHlvaycgYXR0cmlidXRlCisgICAgLy8gRklYTUU6IEhhbmRsZSAndGFiaW5k
ZXgnIGF0dHJpYnV0ZQorICAgIC8vIEZJWE1FOiBIYW5kbGUgJ3RpdGxlJyBhdHRyaWJ1dGUKK30K
Kwordm9pZCBXTUxJbnB1dEVsZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKGNvbnN0
IEVsZW1lbnQqIHNvdXJjZSkKK3sKKyAgICBjb25zdCBXTUxJbnB1dEVsZW1lbnQqIHNvdXJjZUVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBXTUxJbnB1dEVsZW1lbnQqPihzb3VyY2UpOworICAg
IG1fZGF0YS5zZXRWYWx1ZShzb3VyY2VFbGVtZW50LT5tX2RhdGEudmFsdWUoKSk7CisgICAgV01M
RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMoc291cmNlKTsKK30KKworUmVuZGVy
T2JqZWN0KiBXTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bGUqKQoreworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUodGhpcyk7Cit9CisKK3ZvaWQgV01MSW5wdXRFbGVtZW50OjphdHRhY2go
KQoreworICAgIEFTU0VSVCghYXR0YWNoZWQoKSk7CisgICAgV01MRWxlbWVudDo6YXR0YWNoKCk7
CisKKyAgICAvLyBUaGUgY2FsbCB0byB1cGRhdGVGcm9tRWxlbWVudCgpIG5lZWRzIHRvIGdvIGFm
dGVyIHRoZSBjYWxsIHRocm91Z2gKKyAgICAvLyB0byB0aGUgYmFzZSBjbGFzcydzIGF0dGFjaCgp
IGJlY2F1c2UgdGhhdCBjYW4gc29tZXRpbWVzIGRvIGEgY2xvc2UKKyAgICAvLyBvbiB0aGUgcmVu
ZGVyZXIuCisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZy
b21FbGVtZW50KCk7Cit9ICAKKwordm9pZCBXTUxJbnB1dEVsZW1lbnQ6OmRldGFjaCgpCit7Cisg
ICAgV01MRWxlbWVudDo6ZGV0YWNoKCk7CisgICAgc2V0VmFsdWVNYXRjaGVzUmVuZGVyZXIoZmFs
c2UpOworfQorICAgIAorYm9vbCBXTUxJbnB1dEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1E
YXRhTGlzdCYgZW5jb2RpbmcsIGJvb2wpCit7CisgICAgaWYgKG5hbWUoKS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCB2
YWx1ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXTUxJbnB1dEVsZW1lbnQ6OnJl
c2V0KCkKK3sKKyAgICBzZXRWYWx1ZShTdHJpbmcoKSk7Cit9CisKK3ZvaWQgV01MSW5wdXRFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldnQpCit7CisgICAgYm9vbCBjbGlja0Rl
ZmF1bHRGb3JtQnV0dG9uID0gZmFsc2U7CisKKyAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnRleHRJbnB1dEV2ZW50ICYmIGV2dC0+aXNUZXh0RXZlbnQoKSAmJiBzdGF0aWNfY2Fz
dDxUZXh0RXZlbnQqPihldnQpLT5kYXRhKCkgPT0gIlxuIikKKyAgICAgICAgY2xpY2tEZWZhdWx0
Rm9ybUJ1dHRvbiA9IHRydWU7CisKKyAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmtleWRvd25FdmVudCAmJiBldnQtPmlzS2V5Ym9hcmRFdmVudCgpICYmIGZvY3VzZWQoKSAmJiBk
b2N1bWVudCgpLT5mcmFtZSgpCisgICAgICAgICYmIGRvY3VtZW50KCktPmZyYW1lKCktPmRvVGV4
dEZpZWxkQ29tbWFuZEZyb21FdmVudCh0aGlzLCBzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4o
ZXZ0KSkpIHsKKyAgICAgICAgZXZ0LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIAorICAgIC8vIExldCB0aGUga2V5IGhhbmRsaW5nIGRvbmUgaW4gRXZl
bnRUYXJnZXROb2RlIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBldmVudCBoYW5kbGluZyBoZXJl
IGZvciBlZGl0YWJsZSB0ZXh0IGZpZWxkcworICAgIGlmICghY2xpY2tEZWZhdWx0Rm9ybUJ1dHRv
bikgeworICAgICAgICBXTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7CisgICAg
ICAgIGlmIChldnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gVXNlIGtleSBwcmVzcyBldmVudCBoZXJlIHNpbmNlIHNlbmRpbmcgc2ltdWxh
dGVkIG1vdXNlIGV2ZW50cworICAgIC8vIG9uIGtleSBkb3duIGJsb2NrcyB0aGUgcHJvcGVyIHNl
bmRpbmcgb2YgdGhlIGtleSBwcmVzcyBldmVudC4KKyAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLmtleXByZXNzRXZlbnQgJiYgZXZ0LT5pc0tleWJvYXJkRXZlbnQoKSkgeworICAg
ICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBvbiB0aGUgZGVmYXVsdCBmb3JtIGJ1dHRvbiBm
b3IgZW50ZXIgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1lbnRzLgorICAgICAgICBpZiAoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2dCktPmNoYXJDb2RlKCkgPT0gJ1xyJykKKyAgICAgICAg
ICAgIGNsaWNrRGVmYXVsdEZvcm1CdXR0b24gPSB0cnVlOworICAgIH0KKworICAgIGlmIChjbGlj
a0RlZmF1bHRGb3JtQnV0dG9uKSB7CisgICAgICAgIC8vIEZpcmUgb25DaGFuZ2UgZm9yIHRleHQg
ZmllbGRzLgorICAgICAgICBSZW5kZXJPYmplY3QqIHIgPSByZW5kZXJlcigpOworICAgICAgICBp
ZiAociAmJiByLT5pc0VkaXRlZCgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yVHlw
ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgLy8gUmVmZXRjaCB0aGUgcmVuZGVyZXIgc2luY2UgYXJiaXRyYXJ5IEpTIGNv
ZGUgcnVuIGR1cmluZyBvbmNoYW5nZSBjYW4gZG8gYW55dGhpbmcsIGluY2x1ZGluZyBkZXN0cm95
aW5nIGl0LgorICAgICAgICAgICAgciA9IHJlbmRlcmVyKCk7CisgICAgICAgICAgICBpZiAocikK
KyAgICAgICAgICAgICAgICByLT5zZXRFZGl0ZWQoZmFsc2UpOworICAgICAgICB9CisKKyAgICAg
ICAgZXZ0LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGV2dC0+aXNCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCgpKQorICAgICAgICBJbnB1dEVs
ZW1lbnQ6OmhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KG1fZGF0YSwgZG9jdW1lbnQoKSwg
ZXZ0KTsKKworICAgIGlmIChyZW5kZXJlcigpICYmIChldnQtPmlzTW91c2VFdmVudCgpIHx8IGV2
dC0+aXNEcmFnRXZlbnQoKSB8fCBldnQtPmlzV2hlZWxFdmVudCgpIHx8IGV2dC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQgfHwgZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZv
Y3VzRXZlbnQpKQorICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUqPihyZW5kZXJlcigpKS0+Zm9yd2FyZEV2ZW50KGV2dCk7Cit9CisKK3ZvaWQgV01MSW5wdXRF
bGVtZW50OjpjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQpCit7CisgICAgbV9kYXRh
LnNldENhY2hlZFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICBtX2RhdGEuc2V0Q2FjaGVkU2Vs
ZWN0aW9uRW5kKGVuZCk7Cit9CisKK1N0cmluZyBXTUxJbnB1dEVsZW1lbnQ6OmNvbnN0cmFpblZh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gSW5w
dXRFbGVtZW50Ojpjb25zdHJhaW5WYWx1ZShtX2RhdGEsIHByb3Bvc2VkVmFsdWUsIG1fZGF0YS5t
YXhMZW5ndGgoKSk7Cit9CisKK3ZvaWQgV01MSW5wdXRFbGVtZW50Ojpkb2N1bWVudERpZEJlY29t
ZUFjdGl2ZSgpCit7CisgICAgQVNTRVJUKG1faXNQYXNzd29yZEZpZWxkKTsKKyAgICByZXNldCgp
OworfQorCitib29sIFdNTElucHV0RWxlbWVudDo6cGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUo
KSBjb25zdAoreworICAgIHJldHVybiBtX2RhdGEucGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUo
KTsKK30KKwordm9pZCBXTUxJbnB1dEVsZW1lbnQ6OndpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50
KCkKK3sKKyAgICAvLyBBbHdheXMgdW5yZWdpc3RlciBmb3IgY2FjaGUgY2FsbGJhY2tzIHdoZW4g
bGVhdmluZyBhIGRvY3VtZW50LCBldmVuIGlmIHdlIHdvdWxkIG90aGVyd2lzZSBsaWtlIHRvIGJl
IHJlZ2lzdGVyZWQKKyAgICBpZiAobV9pc1Bhc3N3b3JkRmllbGQpCisgICAgICAgIGRvY3VtZW50
KCktPnVucmVnaXN0ZXJGb3JEb2N1bWVudEFjdGl2YXRpb25DYWxsYmFja3ModGhpcyk7CisKKyAg
ICBXTUxFbGVtZW50Ojp3aWxsTW92ZVRvTmV3T3duZXJEb2N1bWVudCgpOworfQorCit2b2lkIFdN
TElucHV0RWxlbWVudDo6ZGlkTW92ZVRvTmV3T3duZXJEb2N1bWVudCgpCit7CisgICAgaWYgKG1f
aXNQYXNzd29yZEZpZWxkKQorICAgICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvckRvY3VtZW50
QWN0aXZhdGlvbkNhbGxiYWNrcyh0aGlzKTsKKworICAgIFdNTEVsZW1lbnQ6OmRpZE1vdmVUb05l
d093bmVyRG9jdW1lbnQoKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvd21sL1dN
TElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTElucHV0RWxlbWVu
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTAxIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqCisgKi8KKworI2lmbmRlZiBXTUxJbnB1dEVsZW1lbnRfaAorI2RlZmluZSBXTUxJbnB1dEVs
ZW1lbnRfaAorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJGb3JtQ29udHJvbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXTUxFbGVtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9ybURhdGFMaXN0OworCitjbGFzcyBXTUxJ
bnB1dEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCwgcHVibGljIEZvcm1Db250cm9sRWxlbWVu
dCwgcHVibGljIElucHV0RWxlbWVudCB7CitwdWJsaWM6CisgICAgV01MSW5wdXRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+V01M
SW5wdXRFbGVtZW50KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNYXRjaGVzUmVuZGVyZXIo
KSBjb25zdCB7IHJldHVybiBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyOyB9CisgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGJvb2wgYiA9IHRydWUpIHsgbV92YWx1ZU1hdGNo
ZXNSZW5kZXJlciA9IGI7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJs
ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
Rm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKKyAgICB2aXJ0
dWFsIHZvaWQgYWJvdXRUb1VubG9hZCgpOworCisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlu
cHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gIW1faXNQYXNzd29yZEZpZWxkOyB9CisgICAgdmly
dHVhbCBib29sIGlzQ2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGlzVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGlzSW5wdXRUeXBlSGlkZGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV9pc1Bhc3N3
b3JkRmllbGQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2VhcmNoRXZlbnRzU2hvdWxkQmVEaXNwYXRj
aGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgaW50IHNpemUoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
KGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgU3RyaW5nIHBsYWNlaG9sZGVyVmFsdWUoKSBj
b25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZyb21S
ZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgYm9vbCBzYXZlU3RhdGUoU3Ry
aW5nJiB2YWx1ZSkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVTdGF0ZShjb25zdCBT
dHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CisgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworCisgICAgdmlydHVhbCB2
b2lkIGNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKGNvbnN0IEVsZW1lbnQqIHNvdXJjZSk7CisK
KyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBS
ZW5kZXJTdHlsZSopOworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoKCk7CisgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOworCisgICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxl
Y3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnN0cmFp
blZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3Q7CisKKyAgICB2aXJ0dWFs
IHZvaWQgZG9jdW1lbnREaWRCZWNvbWVBY3RpdmUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgcGxhY2Vo
b2xkZXJTaG91bGRCZVZpc2libGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92
ZVRvTmV3T3duZXJEb2N1bWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdPd25l
ckRvY3VtZW50KCk7CisKK3ByaXZhdGU6CisgICAgSW5wdXRFbGVtZW50RGF0YSBtX2RhdGE7Cisg
ICAgYm9vbCBtX2lzUGFzc3dvcmRGaWVsZCA6IDE7CisgICAgYm9vbCBtX3ZhbHVlTWF0Y2hlc1Jl
bmRlcmVyIDogMTsKK307CisKK30KKworI2VuZGlmCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvd21s
L1dNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFRhZ05hbWVzLmlu
CShyZXZpc2lvbiA0MDA2OCkKKysrIFdlYkNvcmUvd21sL1dNTFRhZ05hbWVzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0xMiw2ICsxMiw3IEBAIGZpZWxkc2V0IGludGVyZmFjZU5hbWU9V01MRmllbGRT
ZXRFbGVtZW4KIGdvCiBoZWFkIGludGVyZmFjZU5hbWU9V01MRWxlbWVudAogaW1nIGludGVyZmFj
ZU5hbWU9V01MSW1hZ2VFbGVtZW50CitpbnB1dAogIyBOb3RlOiAnaW5zZXJ0ZWRMZWdlbmQnIGlz
IG5vdCBhbiBvZmZpY2lhbCBXTUwgZWxlbWVudCAtIGludGVybmFsIHB1cnBvc2Ugb25seSEKIGlu
c2VydGVkTGVnZW5kIGludGVyZmFjZU5hbWU9V01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50CiBtZXRh
CkBAIC0zMCw1ICszMSw1IEBAIHRyIGludGVyZmFjZU5hbWU9V01MRWxlbWVudAogCiAjaWYgMAog
IyBUaGVzZSBlbGVtZW50cyBoYXZlIGEgY29ycmVzcG9uZGluZyBIVE1MKkVsZW1lbnQgY2xhc3Ms
IHRoYXQgd2Ugd2FudCB0byBzaGFyZSBjb2RlIHdpdGguCi0jIGlucHV0LCBvcHRncm91cCwgb3B0
aW9uLCBzZWxlY3QKKyMgb3B0Z3JvdXAsIG9wdGlvbiwgc2VsZWN0CiAjZW5kaWYKSW5kZXg6IFdl
YktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA0MDA2OCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDEtMjAgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQzNCAoQWRkIFdNTCA8aW5wdXQ+IGVsZW1lbnQgc3VwcG9ydCkKKworICAg
ICAgICBQcm90ZWN0IHRleHQgZmllbGQgcmVsYXRlZCBXZWJFZGl0b3JDbGllbnQubW0gbWV0aG9k
cyBhZ2FpbnN0IG5vbi1IVE1MRWxlbWVudCBjYWxsZXJzLgorICAgICAgICBXZWJFZGl0b3JDbGll
bnQubW0gcmVsaWVzIG9uIEhUTUxJbnB1dEVsZW1lbnQgYXMgaW5wdXQgZWxlbWVudC4gSWdub3Jl
IGNhbGxzIGZyb20gbm9uLUhUTUxFbGVtZW50IGVsZW1lbnRzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0
ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0
RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENo
YW5nZUluVGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRD
b21tYW5kRnJvbUV2ZW50KToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6dGV4dFdpbGxCZURl
bGV0ZWRJblRleHRGaWVsZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnRleHREaWRDaGFu
Z2VJblRleHRBcmVhKToKKwogMjAwOS0wMS0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gNDAw
NjgpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDU0LDYgKzQ1NCw5IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5k
bGVJbnB1dE1ldGhvZEsKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRGaWVsZERpZEJlZ2lu
RWRpdGluZyhFbGVtZW50KiBlbGVtZW50KQogeworICAgIGlmICghZWxlbWVudC0+aXNIVE1MRWxl
bWVudCgpKQorICAgICAgICByZXR1cm47CisKICAgICBET01IVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSBbRE9NSFRNTElucHV0RWxlbWVudCBfd3JhcEhUTUxJbnB1dEVsZW1lbnQ6KEhU
TUxJbnB1dEVsZW1lbnQqKWVsZW1lbnRdOwogICAgIEZvcm1EZWxlZ2F0ZUxvZyhpbnB1dEVsZW1l
bnQpOwogICAgIENhbGxGb3JtRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dEZpZWxk
RGlkQmVnaW5FZGl0aW5nOmluRnJhbWU6KSwgaW5wdXRFbGVtZW50LCBraXQoZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKSkpOwpAQCAtNDYxLDYgKzQ2NCw5IEBAIHZvaWQgV2ViRWRpdG9yQ2xp
ZW50Ojp0ZXh0RmllbGREaWRCZWdpbkUKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRGaWVs
ZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBpZiAoIWVsZW1lbnQtPmlz
SFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgRE9NSFRNTElucHV0RWxlbWVu
dCogaW5wdXRFbGVtZW50ID0gW0RPTUhUTUxJbnB1dEVsZW1lbnQgX3dyYXBIVE1MSW5wdXRFbGVt
ZW50OihIVE1MSW5wdXRFbGVtZW50KillbGVtZW50XTsKICAgICBGb3JtRGVsZWdhdGVMb2coaW5w
dXRFbGVtZW50KTsKICAgICBDYWxsRm9ybURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHRl
eHRGaWVsZERpZEVuZEVkaXRpbmc6aW5GcmFtZTopLCBpbnB1dEVsZW1lbnQsIGtpdChlbGVtZW50
LT5kb2N1bWVudCgpLT5mcmFtZSgpKSk7CkBAIC00NjgsNiArNDc0LDkgQEAgdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnRleHRGaWVsZERpZEVuZEVkaQogICAgIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50KiBlbGVtZW50KQogeworICAgIGlmICgh
ZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXR1cm47CisKICAgICBET01IVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBbRE9NSFRNTElucHV0RWxlbWVudCBfd3JhcEhU
TUxJbnB1dEVsZW1lbnQ6KEhUTUxJbnB1dEVsZW1lbnQqKWVsZW1lbnRdOwogICAgIEZvcm1EZWxl
Z2F0ZUxvZyhpbnB1dEVsZW1lbnQpOwogICAgIENhbGxGb3JtRGVsZWdhdGUobV93ZWJWaWV3LCBA
c2VsZWN0b3IodGV4dERpZENoYW5nZUluVGV4dEZpZWxkOmluRnJhbWU6KSwgaW5wdXRFbGVtZW50
LCBraXQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOwpAQCAtNDk4LDYgKzUwNyw5IEBA
IHN0YXRpYyBTRUwgc2VsZWN0b3JGb3JLZXlFdmVudChLZXlib2FyZEUKIAogYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiBlbGVtZW50LCBL
ZXlib2FyZEV2ZW50KiBldmVudCkKIHsKKyAgICBpZiAoIWVsZW1lbnQtPmlzSFRNTEVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIE5POworCiAgICAgRE9NSFRNTElucHV0RWxlbWVudCogaW5wdXRF
bGVtZW50ID0gW0RPTUhUTUxJbnB1dEVsZW1lbnQgX3dyYXBIVE1MSW5wdXRFbGVtZW50OihIVE1M
SW5wdXRFbGVtZW50KillbGVtZW50XTsKICAgICBGb3JtRGVsZWdhdGVMb2coaW5wdXRFbGVtZW50
KTsKICAgICBpZiAoU0VMIGNvbW1hbmRTZWxlY3RvciA9IHNlbGVjdG9yRm9yS2V5RXZlbnQoZXZl
bnQpKQpAQCAtNTA3LDYgKzUxOSw5IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpkb1RleHRGaWVs
ZENvbW1hbmQKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVEZWxldGVkSW5UZXh0
RmllbGQoRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBpZiAoIWVsZW1lbnQtPmlzSFRNTEVsZW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgRE9NSFRNTElucHV0RWxlbWVudCogaW5wdXRF
bGVtZW50ID0gW0RPTUhUTUxJbnB1dEVsZW1lbnQgX3dyYXBIVE1MSW5wdXRFbGVtZW50OihIVE1M
SW5wdXRFbGVtZW50KillbGVtZW50XTsKICAgICBGb3JtRGVsZWdhdGVMb2coaW5wdXRFbGVtZW50
KTsKICAgICAvLyBXZSdyZSB1c2luZyB0aGUgZGVsZXRlQmFja3dhcmQgc2VsZWN0b3IgZm9yIGFs
bCBkZWxldGlvbiBvcGVyYXRpb25zIHNpbmNlIHRoZSBhdXRvZmlsbCBjb2RlIHRyZWF0cyBhbGwg
ZGVsZXRpb25zIHRoZSBzYW1lIHdheS4KQEAgLTUxNSw2ICs1MzAsOSBAQCB2b2lkIFdlYkVkaXRv
ckNsaWVudDo6dGV4dFdpbGxCZURlbGV0ZWRJCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0
RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50KiBlbGVtZW50KQogeworICAgIGlmICghZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXR1cm47CisKICAgICBET01IVE1MVGV4dEFy
ZWFFbGVtZW50KiB0ZXh0QXJlYUVsZW1lbnQgPSBbRE9NSFRNTFRleHRBcmVhRWxlbWVudCBfd3Jh
cEhUTUxUZXh0QXJlYUVsZW1lbnQ6KEhUTUxUZXh0QXJlYUVsZW1lbnQqKWVsZW1lbnRdOwogICAg
IEZvcm1EZWxlZ2F0ZUxvZyh0ZXh0QXJlYUVsZW1lbnQpOwogICAgIENhbGxGb3JtRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3IodGV4dERpZENoYW5nZUluVGV4dEFyZWE6aW5GcmFtZTopLCB0
ZXh0QXJlYUVsZW1lbnQsIGtpdChlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA0MDA2OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTAxLTIwICBOaWtvbGFzIFppbW1lcm1hbm4gIDxu
aWtvbGFzLnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVzOiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzQKKworICAgICAgICBBZGQgbWluaW1hbCBXTUwgaW5wdXQg
ZWxlbWVudCB0ZXN0Y2FzZTogZmFzdC93bWwvaW5wdXQud21sCisKKyAgICAgICAgKiBmYXN0L3dt
bC9pbnB1dC53bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3dtbC9pbnB1
dC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
d21sL2lucHV0LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zh
c3Qvd21sL2lucHV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMDktMDEtMjAgIFBpZXJyZS1P
bGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJldmlvdXNseSB1cGxv
YWRlZCByZWZlcmVuY2UgaW1hZ2VzIHdlcmUgZ2VuZXJhdGVkIHdpdGggUGVyaWFuIGluc3RhbGxl
ZCwgd2hpY2ggYWZmZWN0ZWQgdGhlbQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93bWwvaW5wdXQu
d21sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd21sL2lucHV0LndtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvd21sL2lucHV0LndtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB3bWwgUFVCTElD
ICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcv
RFREL3dtbF8xLjEueG1sIj4KKzx3bWw+Cis8Y2FyZD4KKzxwPlZlcnkgc2ltcGxlIHRlc3QsIGNo
ZWNraW5nIHRoYXQgaW5wdXQgZWxlbWVudHMgYXJlIHJlbmRlcmVkIGNvcnJlY3RseTwvcD4KKzxp
bnB1dCB0eXBlPSJ0ZXh0Ij5UZXN0PC9pbnB1dD4KKzxpbnB1dCB0eXBlPSJwYXNzd29yZCI+UGFz
c3dvcmQ8L2lucHV0PgorPC9jYXJkPgorPC93bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC93bWwvaW5wdXQtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2lucHV0LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2lucHV0LWV4
cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiszODJlNWMwYjQyMTZk
MTFjZWUzOWRiZDE2MGQ5MDA3YwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbnB1dC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2lucHV0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9p
bnB1dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NzcKKyAgUmVuZGVyQmxvY2sge3dtbH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NzcKKyAgICBSZW5kZXJCbG9jayB7Y2FyZH0gYXQgKDgsMTYpIHNpemUgNzg0eDUz
CisgICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDMweDE4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDMwOiAiVmVyeSBzaW1wbGUgdGVzdCwgY2hlY2tpbmcgdGhhdCBpbnB1
dCBlbGVtZW50cyBhcmUgcmVuZGVyZWQgY29ycmVjdGx5IgorICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsMzQpIHNpemUgNzg0eDE5CisgICAgICAgIFJlbmRlckJsb2NrIHtpbnB1
dH0gYXQgKDAsMCkgc2l6ZSAyOXgxOSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGlu
c2V0ICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXpl
IDIzeDEzCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCAyMzogIlRlc3QiCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjksMCkgc2l6ZSA0eDE4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDI5LDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9jayB7aW5w
dXR9IGF0ICgzMywwKSBzaXplIDU2eDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHgg
aW5zZXQgIzAwMDAwMCldCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDMpIHNp
emUgNTB4MTMKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDMpIHdpZHRoIDUwOiAiXHh7MjAy
Mn1ceHsyMDIyfVx4ezIwMjJ9XHh7MjAyMn1ceHsyMDIyfVx4ezIwMjJ9XHh7MjAyMn1ceHsyMDIy
fSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW5wdXQtZXhwZWN0ZWQucG5nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCg==
</data>
<flag name="review"
          id="12850"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>