<?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>98955</bug_id>
          
          <creation_ts>2012-10-10 14:07:36 -0700</creation_ts>
          <short_desc>Add skeleton of a WebKit2 ObjC DOM SPI (not intended to be the full DOM)</short_desc>
          <delta_ts>2012-10-10 15:30:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739286</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 14:07:36 -0700</bug_when>
    <thetext>Add skeleton of a WebKit2 ObjC DOM SPI (not intended to be the full DOM)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739288</commentid>
    <comment_count>1</comment_count>
      <attachid>168071</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 14:09:34 -0700</bug_when>
    <thetext>Created attachment 168071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739341</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 15:30:54 -0700</bug_when>
    <thetext>Committed r130971: &lt;http://trac.webkit.org/changeset/130971&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168071</attachid>
            <date>2012-10-10 14:09:34 -0700</date>
            <delta_ts>2012-10-10 15:29:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98955-20121010140834.patch</filename>
            <type>text/plain</type>
            <size>29220</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDk1NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTEwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHNrZWxldG9uIG9mIGEgV2ViS2l0
MiBPYmpDIERPTSBTUEkgKG5vdCBpbnRlbmRlZCB0byBiZSB0aGUgZnVsbCBET00pCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk1NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHNrZWxldG9uIERP
TSBpbXBsZW1lbnRhdGlvbiBvbmx5IGV4cG9zaW5nIE5vZGUsIEVsZW1lbnQgYW5kIERvY3VtZW50
CisgICAgICAgIGZvciBub3cuIEl0IGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiA2NC1i
aXQgYXMgaXQgcmVsaWVzIG9uIHRoZSBub24tZnJhZ2lsZQorICAgICAgICBBQkkgZm9yIG5vdy4K
KworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5tbTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMuaDogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1t
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tE
T01Ob2RlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTU5vZGUubW06IEFkZGVkLgorCiAyMDEyLTEwLTA0ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViS2l0Ml0gQ3JlYXRlIGFuIEFQSSBmb3IgYWRk
aW5nIGFuZCByZW1vdmluZyB1c2VyIHN0eWxlc2hlZXRzIGZyb20gYSBwYWdlIGdyb3VwCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAxMzA5NDQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4NSw2ICs0ODUsMTQgQEAKIAkJQjg3
OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5
IC8qIENvcnJlY3Rpb25QYW5lbC5oICovOyB9OwogCQlCODc4QjYxNjEzMzQyOERDMDA2ODg4RTkg
LyogQ29ycmVjdGlvblBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjg3OEI2MTQxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5t
bSAqLzsgfTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjEx
NTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKKwkJQkMwMTdEMDcxNjI2
MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDE3Q0ZGMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTURv
Y3VtZW50LmggKi87IH07CisJCUJDMDE3RDA4MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTURvY3Vt
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMw
MTdEMDAxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQubW0gKi87IH07CisJCUJDMDE3
RDA5MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDE3RDAxMTYyNjBGRjQwMDcwNTRGNSAvKiBX
S0RPTUVsZW1lbnQuaCAqLzsgfTsKKwkJQkMwMTdEMEExNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9N
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDE3RDAyMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUVsZW1lbnQubW0gKi87IH07CisJCUJD
MDE3RDBCMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUludGVybmFscy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMTdEMDMxNjI2MEZGNDAwNzA1NEY1
IC8qIFdLRE9NSW50ZXJuYWxzLmggKi87IH07CisJCUJDMDE3RDBDMTYyNjBGRjQwMDcwNTRGNSAv
KiBXS0RPTUludGVybmFscy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMDE3RDA0MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUludGVybmFscy5tbSAq
LzsgfTsKKwkJQkMwMTdEMEQxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMTdEMDUxNjI2MEZGNDAw
NzA1NEY1IC8qIFdLRE9NTm9kZS5oICovOyB9OworCQlCQzAxN0QwRTE2MjYwRkY0MDA3MDU0RjUg
LyogV0tET01Ob2RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMTdEMDYxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9kZS5tbSAqLzsgfTsKIAkJ
QkMwMzJENzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThD
MTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovOyB9OwogCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMx
NUEgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0
TWVudUNsaWVudC5oICovOyB9OwogCQlCQzAzMkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJh
Z0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCAqLzsgfTsKQEAgLTEz
MTYsOCArMTMyNCw4IEBACiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUQ1
NURFRTE2MUJGODc4MDAzMUEyRTMgLyogV2ViUGFnZUdyb3VwUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViUGFnZUdyb3VwUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTI5RDU1REVGMTYxQkY5RjEwMDMxQTJFMyAvKiBXZWJQYWdlR3JvdXBQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQ
YWdlR3JvdXBQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBXZWJQYWdlR3JvdXBQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5RDU1
REYwMTYxQkY5RjEwMDMxQTJFMyAvKiBXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaDsg
cGF0aCA9IFdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjlENTVERUYxNjFCRjlGMTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlBhZ2VHcm91cFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjlENTVERjAxNjFCRjlGMTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUdyb3VwUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk2ODE0NkM3
MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5
OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAv
KiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1NzEsNiArMTU3OSwxNCBAQAogCQlCODc4QjYxMzEzMzQyOERDMDA2ODg4RTkgLyogQ29y
cmVjdGlvblBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcnJlY3Rp
b25QYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCODc4QjYxNDEzMzQyOERD
MDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQ29ycmVjdGlvblBhbmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZU1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMDE3Q0ZGMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RP
TURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRE9NRG9jdW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwMTdEMDAxNjI2MEZGNDAwNzA1
NEY1IC8qIFdLRE9NRG9jdW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS0RPTURvY3VtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzAxN0QwMTE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLRE9NRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzAxN0QwMjE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tET01FbGVtZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzAxN0QwMzE2MjYwRkY0MDA3MDU0RjUgLyogV0tE
T01JbnRlcm5hbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01JbnRl
cm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwMTdEMDQxNjI2MEZGNDAw
NzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tET01JbnRlcm5hbHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDMDE3RDA1MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTU5vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01Ob2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDMDE3RDA2MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTU5vZGUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0RPTU5vZGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDYyMTBGNDM3OEQwMDU4QzE1
QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEcmFnQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yODQ0LDYgKzI4NjAsMjEgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlCQzAxN0QxMDE2MjYwRkZEMDA3MDU0RjUgLyog
RE9NICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzAx
N0NGRjE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Eb2N1bWVudC5oICovLAorCQkJCUJDMDE3RDAw
MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTURvY3VtZW50Lm1tICovLAorCQkJCUJDMDE3RDAxMTYy
NjBGRjQwMDcwNTRGNSAvKiBXS0RPTUVsZW1lbnQuaCAqLywKKwkJCQlCQzAxN0QwMjE2MjYwRkY0
MDA3MDU0RjUgLyogV0tET01FbGVtZW50Lm1tICovLAorCQkJCUJDMDE3RDAzMTYyNjBGRjQwMDcw
NTRGNSAvKiBXS0RPTUludGVybmFscy5oICovLAorCQkJCUJDMDE3RDA0MTYyNjBGRjQwMDcwNTRG
NSAvKiBXS0RPTUludGVybmFscy5tbSAqLywKKwkJCQlCQzAxN0QwNTE2MjYwRkY0MDA3MDU0RjUg
LyogV0tET01Ob2RlLmggKi8sCisJCQkJQkMwMTdEMDYxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9N
Tm9kZS5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gRE9NOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzU0Myw4ICszNTc0
LDkgQEAKIAkJQkM5ODlENDUxNjE4MTY5MTAwMEQ0NkQzIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkM5ODlEN0YxNjFBN0U1QjAwMEQ0NkQz
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLywKKwkJCQlCQzAxN0QxMDE2MjYwRkZEMDA3MDU0
RjUgLyogRE9NICovLAogCQkJCUJDOTg5RDgwMTYxQTdFNUMwMDBENDZEMyAvKiBXS1dlYlByb2Nl
c3NQbHVnSW4uaCAqLywKKwkJCQlCQzk4OUQ3RjE2MUE3RTVCMDAwRDQ2RDMgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luLm1tICovLAogCQkJCUJDOTg5RDg0MTYxQTk4OEYwMDBENDZEMyAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5JbnRlcm5hbC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CkBAIC00MzM4
LDYgKzQzNzAsMTAgQEAKIAkJCQkxQTNFRUQwRjE2MUE1MzU0MDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNFRUQxMjE2MUE1M0Q2MDBBRUI0RjUg
LyogTWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUQ1NURGMjE2MUJGOUYx
MDAzMUEyRTMgLyogV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUJDMDE3RDA5MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUJDMDE3RDBCMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUludGVybmFs
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMwMTdEMEQxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9N
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01MTk3LDYgKzUyMzMsMTAgQEAKIAkJCQlCQzk4OUQ4
MTE2MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUEzRUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyOUQ1NURGMTE2MUJGOUYxMDAzMUEyRTMgLyogV2ViUGFnZUdy
b3VwUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwMTdEMDgx
NjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlC
QzAxN0QwQTE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQkMwMTdEMEMxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQkMwMTdEMEUxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9kZS5tbSBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NRG9jdW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBfX0xQNjRfXworCisjaW1wb3J0IDxXZWJLaXQyL1dLRE9NTm9kZS5oPgorCitX
S19FWFBPUlQKK0BpbnRlcmZhY2UgV0tET01Eb2N1bWVudCA6IFdLRE9NTm9kZQorQGVuZAorCisj
ZW5kaWYgLy8gX19MUDY0X18KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1t
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIF9fTFA2NF9fCisKKyNpbXBv
cnQgIldLRE9NRG9jdW1lbnQuaCIKKworI2ltcG9ydCAiV0tET01JbnRlcm5hbHMuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKworQGltcGxlbWVudGF0aW9uIFdLRE9NRG9jdW1lbnQK
K0BlbmQKKworI2VuZGlmIC8vIF9fTFA2NF9fCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxl
bWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIF9fTFA2NF9fCisKKyNpbXBvcnQgPFdlYktpdDIvV0tET01O
b2RlLmg+CisKK1dLX0VYUE9SVAorQGludGVyZmFjZSBXS0RPTUVsZW1lbnQgOiBXS0RPTU5vZGUK
K0BlbmQKKworI2VuZGlmIC8vIF9fTFA2NF9fCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVs
ZW1lbnQubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50Lm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBfX0xQNjRfXwor
CisjaW1wb3J0ICJXS0RPTUVsZW1lbnQuaCIKKworI2ltcG9ydCAiV0tET01JbnRlcm5hbHMuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRWxlbWVudC5oPgorCitAaW1wbGVtZW50YXRpb24gV0tET01FbGVt
ZW50CitAZW5kCisKKyNlbmRpZiAvLyBfX0xQNjRfXwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NSW50ZXJuYWxzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBfX0xQNjRfXworCisjaW1wb3J0ICJXS0RP
TU5vZGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTm9kZS5oPgorCitAY2xhc3MgV0tET01FbGVtZW50
OworQGNsYXNzIFdLRE9NRG9jdW1lbnQ7CisKK0BpbnRlcmZhY2UgV0tET01Ob2RlICgpIHsKK0Bw
dWJsaWMKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gX25vZGU7Cit9CisKKy0gKGlkKV9pbml0
V2l0aE5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGU7CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIEVsZW1lbnQ7CisgICAgY2xhc3MgRG9jdW1l
bnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb3JlOjpOb2RlKiB0b1dlYkNvcmVO
b2RlKFdLRE9NTm9kZSAqKTsKK1dLRE9NTm9kZSAqdG9XS0RPTU5vZGUoV2ViQ29yZTo6Tm9kZSop
OworCitXZWJDb3JlOjpFbGVtZW50KiB0b1dlYkNvcmVFbGVtZW50KFdLRE9NRWxlbWVudCAqKTsK
K1dLRE9NRWxlbWVudCAqdG9XS0RPTUVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworCitXZWJD
b3JlOjpEb2N1bWVudCogdG9XZWJDb3JlRG9jdW1lbnQoV0tET01Eb2N1bWVudCAqKTsKK1dLRE9N
RG9jdW1lbnQgKnRvV0tET01Eb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudCopOworCit2b2lkICAg
ICAgIFdLRE9NTm9kZUNhY2hlQWRkKFdlYkNvcmU6Ok5vZGUqLCBXS0RPTU5vZGUgKik7CitXS0RP
TU5vZGUgKldLRE9NTm9kZUNhY2hlR2V0KFdlYkNvcmU6Ok5vZGUqKTsKK3ZvaWQgICAgICAgV0tE
T01Ob2RlQ2FjaGVSZW1vdmUoV2ViQ29yZTo6Tm9kZSopOworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIF9fTFA2NF9fCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50
ZXJuYWxzLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgX19MUDY0
X18KKworI2ltcG9ydCAiV0tET01JbnRlcm5hbHMuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9Eb2N1
bWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05v
ZGUuaD4KKyNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CisKKy8vIENsYXNzZXMgdG8gaW5zdGFudGlh
dGUuCisjaW1wb3J0ICJXS0RPTUVsZW1lbnQuaCIKKyNpbXBvcnQgIldLRE9NRG9jdW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3R5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpOb2RlKiwg
V0tET01Ob2RlKj4gV0tET01Ob2RlQ2FjaGU7CitzdGF0aWMgV0tET01Ob2RlQ2FjaGUmIHdrRE9N
Tm9kZUNhY2hlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdLRE9NTm9kZUNhY2hlLCBj
YWNoZSwgKCkpOworICAgIHJldHVybiBjYWNoZTsKK30KKwordm9pZCBXS0RPTU5vZGVDYWNoZUFk
ZChXZWJDb3JlOjpOb2RlKiBpbXBsLCBXS0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgd2tET01O
b2RlQ2FjaGUoKS5hZGQoaW1wbCwgd3JhcHBlcik7Cit9CisKK1dLRE9NTm9kZSAqV0tET01Ob2Rl
Q2FjaGVHZXQoV2ViQ29yZTo6Tm9kZSogaW1wbCkKK3sKKyAgICByZXR1cm4gd2tET01Ob2RlQ2Fj
aGUoKS5nZXQoaW1wbCk7Cit9CisKK3ZvaWQgV0tET01Ob2RlQ2FjaGVSZW1vdmUoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKK3sKKyAgICB3a0RPTU5vZGVDYWNoZSgpLnJlbW92ZShpbXBsKTsKK30KKwor
c3RhdGljIENsYXNzIFdLRE9NQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKK3sKKyAgICBzd2l0
Y2ggKGltcGwtPm5vZGVUeXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkVMRU1FTlRf
Tk9ERToKKyAgICAgICAgcmV0dXJuIFtXS0RPTUVsZW1lbnQgY2xhc3NdOworICAgIGNhc2UgV2Vi
Q29yZTo6Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFtXS0RPTURvY3VtZW50
IGNsYXNzXTsKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlRFWFRfTk9ERToKKyAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RB
VEFfU0VDVElPTl9OT0RFOgorICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgorICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX05PREU6CisgICAgY2FzZSBX
ZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgY2FzZSBXZWJD
b3JlOjpOb2RlOjpDT01NRU5UX05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVO
VF9UWVBFX05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgorICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Tk9UQVRJT05fTk9ERToKKyAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG5pbDsKK30KKworV2ViQ29y
ZTo6Tm9kZSogdG9XZWJDb3JlTm9kZShXS0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyB3cmFwcGVyLT5fbm9kZS5nZXQoKSA6IDA7Cit9CisKK1dLRE9NTm9kZSAqdG9X
S0RPTU5vZGUoV2ViQ29yZTo6Tm9kZSogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgaWYgKFdLRE9NTm9kZSAqd3JhcHBlciA9IFdLRE9NTm9kZUNhY2hl
R2V0KGltcGwpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVyIHJldGFpbl0gYXV0b3JlbGVhc2Vd
OworICAgIFdLRE9NTm9kZSAqd3JhcHBlciA9IFtbV0tET01DbGFzcyhpbXBsKSBhbGxvY10gX2lu
aXRXaXRoTm9kZTppbXBsXTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBuaWw7
CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KKworV2ViQ29yZTo6RWxlbWVu
dCogdG9XZWJDb3JlRWxlbWVudChXS0RPTUVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPih3cmFwcGVyLT5f
bm9kZS5nZXQoKSkgOiAwOworfQorCitXS0RPTUVsZW1lbnQgKnRvV0tET01FbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqIGltcGwpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdLRE9NRWxlbWVu
dCo+KHRvV0tET01Ob2RlKHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihpbXBsKSkpOworfQor
CitXZWJDb3JlOjpEb2N1bWVudCogdG9XZWJDb3JlRG9jdW1lbnQoV0tET01Eb2N1bWVudCAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
RG9jdW1lbnQqPih3cmFwcGVyLT5fbm9kZS5nZXQoKSkgOiAwOworfQorCitXS0RPTURvY3VtZW50
ICp0b1dLRE9NRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQqIGltcGwpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdLRE9NRG9jdW1lbnQqPih0b1dLRE9NTm9kZShzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4oaW1wbCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBfX0xQNjRfXwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TU5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBf
X0xQNjRfXworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdl
YktpdDIvV0tCYXNlLmg+CisKK0BjbGFzcyBXS0RPTURvY3VtZW50OworCitXS19FWFBPUlQKK0Bp
bnRlcmZhY2UgV0tET01Ob2RlIDogTlNPYmplY3QKKworQHByb3BlcnR5KHJlYWRvbmx5KSBXS0RP
TURvY3VtZW50ICpkb2N1bWVudDsKKworQGVuZAorCisjZW5kaWYgLy8gX19MUDY0X18KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5v
ZGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUubW0JKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKwor
I2lmIF9fTFA2NF9fCisKKyNpbXBvcnQgIldLRE9NTm9kZS5oIgorCisjaW1wb3J0ICJXS0RPTUlu
dGVybmFscy5oIgorCitAaW1wbGVtZW50YXRpb24gV0tET01Ob2RlCisKKy0gKGlkKV9pbml0V2l0
aE5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGUKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOwor
ICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIFdlYktpdDo6V0tET01O
b2RlQ2FjaGVBZGQobm9kZSwgc2VsZik7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQp
ZGVhbGxvYworeworICAgIFdlYktpdDo6V0tET01Ob2RlQ2FjaGVSZW1vdmUoX25vZGUuZ2V0KCkp
OworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoV0tET01Eb2N1bWVudCAqKWRvY3VtZW50
Cit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTURvY3VtZW50KF9ub2RlLT5kb2N1bWVudCgp
KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gX19MUDY0X18K
</data>
<flag name="review"
          id="180959"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>