<?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>13902</bug_id>
          
          <creation_ts>2007-05-28 19:18:21 -0700</creation_ts>
          <short_desc>Autogenerate the JS bindings for the CSSStyleDeclaration</short_desc>
          <delta_ts>2007-05-28 23:19:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13779</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>8903</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-28 19:18:21 -0700</bug_when>
    <thetext>Patch in a second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8904</commentid>
    <comment_count>1</comment_count>
      <attachid>14765</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-28 19:24:25 -0700</bug_when>
    <thetext>Created attachment 14765
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8905</commentid>
    <comment_count>2</comment_count>
      <attachid>14765</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-05-28 19:51:33 -0700</bug_when>
    <thetext>Comment on attachment 14765
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8889</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-28 23:19:43 -0700</bug_when>
    <thetext>Landed in r21854.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14765</attachid>
            <date>2007-05-28 19:24:25 -0700</date>
            <delta_ts>2007-05-28 19:51:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cssstyle.diff</filename>
            <type>text/plain</type>
            <size>26680</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTg1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDctMDUtMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFBhdGNo
IGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkwMgorICAgICAg
ICAgIEF1dG9nZW5lcmF0ZSB0aGUgSlMgYmluZGluZ3MgZm9yIHRoZSBDU1NTdHlsZURlY2xhcmF0
aW9uCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xh
cmF0aW9uQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eU5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6aXNDU1NQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpjYW5HZXRJdGVtc0Zvck5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Y3VzdG9tUHV0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfYmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19jc3Mu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19jc3MuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTVV0aWxpdHkubW06CisgICAgICAgIChLSlM6OmNyZWF0ZURPTVdyYXBwZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKwogMjAwNy0wNS0yOCAgTWl0eiBQZXR0ZWwg
IDxtaXR6QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJl
dmlzaW9uIDIxODUyKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAt
MjY3LDYgKzI2Nyw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAKIFNPVVJDRVMgKz0gXAogICAgIGJp
bmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBcCisgICAgYmlu
ZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNIVE1MQW5jaG9yRWxlbWVudEN1c3Rv
bS5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIxODUyKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3ODEsNiArMjc4MSw3IEBACiAJCUJDNTE1N0REMEMw
M0JDMjIwMDhCQjBFRSAvKiBET01IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTU2RjMwQzAzQjdEQzAwOEJC
MEVFIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCUJDNTE1ODBCMEMw
M0Q0MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUg
LyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQzU4MjNGNTBDMEE5OERGMDA1
M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1M
RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CisJCUJDNTgyNUYzMEMwQjg5MzgwMDUzRjFCNSAvKiBK
U0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1ODI1RjIwQzBCODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5
bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCUJDNTg4QUYwMEJGQTZDRjkwMEVFNjc5
RSAvKiBIVE1MUGFyc2VyRXJyb3JDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1ODhBRUYwQkZBNkNGOTAwRUU2NzlFIC8qIEhUTUxQYXJzZXJF
cnJvckNvZGVzLmggKi87IH07CiAJCUJDNTg4QjRCMEJGQTcyM0MwMEVFNjc5RSAvKiBIVE1MUGFy
c2VyRXJyb3JDb2Rlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzU4OEI0QTBCRkE3MjNDMDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMu
Y3BwICovOyB9OwogCQlCQzZENDRCRTBDMDdFRkI2MDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVt
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNkQ0NEJEMEMwN0VGQjYwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20u
Y3BwICovOyB9OwpAQCAtNjAzMyw2ICs2MDM0LDcgQEAKIAkJQkM1MTU2RjMwQzAzQjdEQzAwOEJC
MEVFIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1ODIz
RjQwQzBBOThERjAwNTNGMUI1IC8qIEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNTgyNUYyMEMwQjg5MzgwMDUzRjFCNSAvKiBKU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkM1ODhBRUYwQkZBNkNGOTAwRUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJv
ckNvZGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyRXJy
b3JDb2Rlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU4OEI0QTBCRkE3MjND
MDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJFcnJvckNvZGVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RUMxNzYwQTUwN0UzRTAwNjAwN0Y1IC8qIHZpZXctc291cmNl
LmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gInZpZXctc291cmNlLmNzcyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTgyLDYgKzkxODQsNyBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQTlFRjQ1NjBBMUI5NTdEMDAzMzJCNjMgLyogSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwICovLAorCQkJCUJDNTgyNUYyMEMwQjg5
MzgwMDUzRjFCNSAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwICovLAogCQkJCTky
OTI2NDc2MEI2MUZDNzIwMEI0MUQzNCAvKiBKU0RvY3VtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlC
Q0Y0MTE3NzBCRkNDNzZBMDAxMjU2MjIgLyogSlNIVE1MQW5jaG9yRWxlbWVudEN1c3RvbS5jcHAg
Ki8sCiAJCQkJQkM0RURFRjMwQzA4RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRD
dXN0b20uY3BwICovLApAQCAtMTI4MjMsNiArMTI4MjYsNyBAQAogCQkJCUJDNkQ0NEVDMEMwN0Yy
RUQwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0RURFRjQwQzA4RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1ODIzRjUwQzBBOThERjAwNTNGMUI1IC8qIEpTSFRNTEVs
ZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM1ODI1RjMwQzBCODkzODAwNTNG
MUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oIgorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZl
VmFsdWUuaCIKKyNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlIDxranMvc3RyaW5nX29iamVjdC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7CisKK3N0YXRpYyBTdHJpbmcgY3NzUHJv
cGVydHlOYW1lKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgYm9vbCogaGFkUGl4ZWxP
clBvc1ByZWZpeCA9IDApCit7CisgICAgRGVwcmVjYXRlZFN0cmluZyBwcm9wID0gcHJvcGVydHlO
YW1lOworCisgICAgaW50IGkgPSBwcm9wLmxlbmd0aCgpOworICAgIHdoaWxlICgtLWkpIHsKKyAg
ICAgICAgOjpVQ2hhciBjID0gcHJvcFtpXS51bmljb2RlKCk7CisgICAgICAgIGlmIChjID49ICdB
JyAmJiBjIDw9ICdaJykKKyAgICAgICAgICAgIHByb3AuaW5zZXJ0KGksICctJyk7CisgICAgfQor
CisgICAgcHJvcCA9IHByb3AubG93ZXIoKTsKKworICAgIGlmIChoYWRQaXhlbE9yUG9zUHJlZml4
KQorICAgICAgICAqaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGZhbHNlOworCisgICAgaWYgKHByb3Au
c3RhcnRzV2l0aCgiY3NzLSIpKQorICAgICAgICBwcm9wID0gcHJvcC5taWQoNCk7CisgICAgZWxz
ZSBpZiAocHJvcC5zdGFydHNXaXRoKCJwaXhlbC0iKSkgeworICAgICAgICBwcm9wID0gcHJvcC5t
aWQoNik7CisgICAgICAgIGlmIChoYWRQaXhlbE9yUG9zUHJlZml4KQorICAgICAgICAgICAgKmhh
ZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOworICAgIH0gZWxzZSBpZiAocHJvcC5zdGFydHNXaXRo
KCJwb3MtIikpIHsKKyAgICAgICAgcHJvcCA9IHByb3AubWlkKDQpOworICAgICAgICBpZiAoaGFk
UGl4ZWxPclBvc1ByZWZpeCkKKyAgICAgICAgICAgICpoYWRQaXhlbE9yUG9zUHJlZml4ID0gdHJ1
ZTsKKyAgICB9IGVsc2UgaWYgKHByb3Auc3RhcnRzV2l0aCgia2h0bWwtIikgfHwgcHJvcC5zdGFy
dHNXaXRoKCJhcHBsZS0iKSB8fCBwcm9wLnN0YXJ0c1dpdGgoIndlYmtpdC0iKSkKKyAgICAgICAg
cHJvcC5pbnNlcnQoMCwgJy0nKTsKKworICAgIHJldHVybiBwcm9wOworfQorCitzdGF0aWMgYm9v
bCBpc0NTU1Byb3BlcnR5TmFtZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgcmV0dXJuIENTU1N0eWxlRGVjbGFyYXRpb246OmlzUHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5
TmFtZShwcm9wZXJ0eU5hbWUpKTsKK30KKworYm9vbCBKU0NTU1N0eWxlRGVjbGFyYXRpb246OmNh
bkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBDU1NTdHlsZURlY2xhcmF0aW9uKiwgY29uc3Qg
QXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIGlzQ1NTUHJvcGVydHlO
YW1lKHByb3BlcnR5TmFtZS5kb21TdHJpbmcoKSk7Cit9CisKK0pTVmFsdWUqIEpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvcmlnaW5h
bE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCit7CisgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqID0gc3RhdGlj
X2Nhc3Q8SlNDU1NTdHlsZURlY2xhcmF0aW9uKj4oc2xvdC5zbG90QmFzZSgpKTsKKworICAgIC8v
IFNldCB1cCBwaXhlbE9yUG9zIGJvb2xlYW4gdG8gaGFuZGxlIHRoZSBmYWN0IHRoYXQKKyAgICAv
LyBwaXhlbFRvcCByZXR1cm5zICJDU1MgVG9wIiBhcyBudW1iZXIgdmFsdWUgaW4gdW5pdCBwaXhl
bHMKKyAgICAvLyBwb3NUb3AgcmV0dXJucyAiQ1NTIHRvcCIgYXMgbnVtYmVyIHZhbHVlIGluIHVu
aXQgcGl4ZWxzIF9pZl8gaXRzIGEKKyAgICAvLyBwb3NpdGlvbmVkIGVsZW1lbnQuIGlmIGl0IGlz
IG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgcmV0dXJuIDAKKyAgICAvLyBmcm9tIE1TSUUgZG9j
dW1lbnRhdGlvbiBGSVhNRTogSU1QTEVNRU5UIFRIQVQgKERpcmspCisgICAgYm9vbCBwaXhlbE9y
UG9zOworICAgIFN0cmluZyBwcm9wID0gY3NzUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgJnBp
eGVsT3JQb3MpOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gdiA9IHRoaXNPYmotPmltcGwoKS0+Z2V0
UHJvcGVydHlDU1NWYWx1ZShwcm9wKTsKKyAgICBpZiAodikgeworICAgICAgICBpZiAocGl4ZWxP
clBvcyAmJiB2LT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NWYWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxV
RSkKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfcG9pbnRlcl9jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPih2KS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BY
KSk7CisgICAgICAgIHJldHVybiBqc1N0cmluZ09yTnVsbCh2LT5jc3NUZXh0KCkpOworICAgIH0K
KworICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBh
cyAicGFkZGluZyIpLCAKKyAgICAvLyBpdCBjYW4gb25seSBiZSBhY2Nlc3NlZCB1c2luZyBnZXRQ
cm9wZXJ0eVZhbHVlLgorCisgICAgLy8gTWFrZSB0aGUgU1ZHICdmaWx0ZXInIGF0dHJpYnV0ZSB1
bmRldGVjdGFibGUsIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHRoZSBJRSAnZmlsdGVyJyBhdHRy
aWJ1dGUuCisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSAiZmlsdGVyIikKKyAgICAgICAgcmV0dXJu
IG5ldyBTdHJpbmdJbnN0YW5jZVRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGV4ZWMtPmxleGlj
YWxJbnRlcnByZXRlcigpLT5idWlsdGluU3RyaW5nUHJvdG90eXBlKCksIHRoaXNPYmotPmltcGwo
KS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wKSk7CisKKyAgICByZXR1cm4ganNTdHJpbmcodGhpc09i
ai0+aW1wbCgpLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApKTsKK30KKworCitib29sIEpTQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6Y3VzdG9tUHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiB2YWx1ZSwgaW50IC8qYXR0ciovKQoreworICAgIGlm
ICghaXNDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgRE9NRXhjZXB0aW9uVHJhbnNsYXRvciBleGNlcHRpb24oZXhlYyk7CisgICAgYm9v
bCBwaXhlbE9yUG9zOworICAgIFN0cmluZyBwcm9wID0gY3NzUHJvcGVydHlOYW1lKHByb3BlcnR5
TmFtZSwgJnBpeGVsT3JQb3MpOworICAgIFN0cmluZyBwcm9wVmFsdWUgPSB2YWx1ZVRvU3RyaW5n
V2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSk7CisgICAgaWYgKHBpeGVsT3JQb3MpCisgICAgICAg
IHByb3BWYWx1ZSArPSAicHgiOworICAgIGltcGwoKS0+c2V0UHJvcGVydHkocHJvcCwgcHJvcFZh
bHVlLCBleGNlcHRpb24pOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5oCShyZXZpc2lvbiAyMTg1MikK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2JpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBB
dG9taWNTdHJpbmc7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRXZlbnQ7CiAgICAg
Y2xhc3MgRnJhbWU7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19jc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nzcy5jcHAJKHJldmlzaW9uIDIxODUy
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjIsMjE1ICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIG5hbWVzcGFjZSBL
SlMgewogCi1zdGF0aWMgU3RyaW5nIGNzc1Byb3BlcnR5TmFtZShjb25zdCBJZGVudGlmaWVyICZw
LCBib29sICpoYWRQaXhlbE9yUG9zUHJlZml4ID0gMCkKLXsKLSAgICBEZXByZWNhdGVkU3RyaW5n
IHByb3AgPSBwOwotCi0gICAgaW50IGkgPSBwcm9wLmxlbmd0aCgpOwotICAgIHdoaWxlICgtLWkp
IHsKLSAgICAgICAgOjpVQ2hhciBjID0gcHJvcFtpXS51bmljb2RlKCk7Ci0gICAgICAgIGlmIChj
ID49ICdBJyAmJiBjIDw9ICdaJykKLSAgICAgICAgICAgIHByb3AuaW5zZXJ0KGksICctJyk7Ci0g
ICAgfQotCi0gICAgcHJvcCA9IHByb3AubG93ZXIoKTsKLQotICAgIGlmIChoYWRQaXhlbE9yUG9z
UHJlZml4KQotICAgICAgICAqaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGZhbHNlOwotCi0gICAgaWYg
KHByb3Auc3RhcnRzV2l0aCgiY3NzLSIpKSB7Ci0gICAgICAgIHByb3AgPSBwcm9wLm1pZCg0KTsK
LSAgICB9IGVsc2UgaWYgKHByb3Auc3RhcnRzV2l0aCgicGl4ZWwtIikpIHsKLSAgICAgICAgcHJv
cCA9IHByb3AubWlkKDYpOwotICAgICAgICBpZiAoaGFkUGl4ZWxPclBvc1ByZWZpeCkKLSAgICAg
ICAgICAgICpoYWRQaXhlbE9yUG9zUHJlZml4ID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHByb3Au
c3RhcnRzV2l0aCgicG9zLSIpKSB7Ci0gICAgICAgIHByb3AgPSBwcm9wLm1pZCg0KTsKLSAgICAg
ICAgaWYgKGhhZFBpeGVsT3JQb3NQcmVmaXgpCi0gICAgICAgICAgICAqaGFkUGl4ZWxPclBvc1By
ZWZpeCA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChwcm9wLnN0YXJ0c1dpdGgoImtodG1sLSIpIHx8
IHByb3Auc3RhcnRzV2l0aCgiYXBwbGUtIikgfHwgcHJvcC5zdGFydHNXaXRoKCJ3ZWJraXQtIikp
IHsKLSAgICAgICAgcHJvcC5pbnNlcnQoMCwgJy0nKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJv
cDsKLX0KLQotc3RhdGljIGJvb2wgaXNDU1NQcm9wZXJ0eU5hbWUoY29uc3QgSWRlbnRpZmllciAm
SlNQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIENTU1N0eWxlRGVjbGFyYXRpb246OmlzUHJv
cGVydHlOYW1lKGNzc1Byb3BlcnR5TmFtZShKU1Byb3BlcnR5TmFtZSkpOwotfQotCi0vKgotQGJl
Z2luIERPTUNTU1N0eWxlRGVjbGFyYXRpb25Qcm90b3R5cGVUYWJsZSA3Ci0gIGdldFByb3BlcnR5
VmFsdWUgICAgICBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpHZXRQcm9wZXJ0eVZhbHVlICAgICAg
ICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKLSAgZ2V0UHJvcGVydHlDU1NWYWx1ZSAgIERPTUNTU1N0
eWxlRGVjbGFyYXRpb246OkdldFByb3BlcnR5Q1NTVmFsdWUgICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMQotICByZW1vdmVQcm9wZXJ0eSAgICAgICAgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6UmVt
b3ZlUHJvcGVydHkgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIGdldFByb3BlcnR5
UHJpb3JpdHkgICBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpHZXRQcm9wZXJ0eVByaW9yaXR5ICAg
ICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKLSAgZ2V0UHJvcGVydHlTaG9ydGhhbmQgIERPTUNTU1N0
eWxlRGVjbGFyYXRpb246OkdldFByb3BlcnR5U2hvcnRoYW5kICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMQotICBpc1Byb3BlcnR5SW1wbGljaXQgICAgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6SXNQ
cm9wZXJ0eUltcGxpY2l0ICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIHNldFByb3BlcnR5
ICAgICAgICAgICBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpTZXRQcm9wZXJ0eSAgICAgICAgICAg
ICBEb250RGVsZXRlfEZ1bmN0aW9uIDMKLSAgaXRlbSAgICAgICAgICAgICAgICAgIERPTUNTU1N0
eWxlRGVjbGFyYXRpb246Okl0ZW0gICAgICAgICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMQotQGVuZAotQGJlZ2luIERPTUNTU1N0eWxlRGVjbGFyYXRpb25UYWJsZSAzCi0gIGNzc1Rl
eHQgICAgICAgICAgICAgICBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpDc3NUZXh0ICAgICAgICAg
RG9udERlbGV0ZQotICBsZW5ndGggICAgICAgICAgICAgICAgRE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bjo6TGVuZ3RoICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgcGFyZW50UnVsZSAgICAg
ICAgICAgIERPTUNTU1N0eWxlRGVjbGFyYXRpb246OlBhcmVudFJ1bGUgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci1AZW5kCi0qLwotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEVfRlVOQ1RJT04oRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uKQotS0pTX0lNUExFTUVOVF9QUk9U
T1RZUEUoIkRPTUNTU1N0eWxlRGVjbGFyYXRpb24iLCBET01DU1NTdHlsZURlY2xhcmF0aW9uUHJv
dG90eXBlLCBET01DU1NTdHlsZURlY2xhcmF0aW9uUHJvdG90eXBlRnVuY3Rpb24pCi0KLWNvbnN0
IENsYXNzSW5mbyBET01DU1NTdHlsZURlY2xhcmF0aW9uOjppbmZvID0geyAiQ1NTU3R5bGVEZWNs
YXJhdGlvbiIsIDAsICZET01DU1NTdHlsZURlY2xhcmF0aW9uVGFibGUsIDAgfTsKLQotRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IENTU1N0eWxlRGVjbGFyYXRpb24gKnMpCi0gIDogbV9pbXBsKHMpCi17IAotICBzZXRQcm90b3R5
cGUoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvblByb3RvdHlwZTo6c2VsZihleGVjKSk7Ci19Ci0KLURP
TUNTU1N0eWxlRGVjbGFyYXRpb246On5ET01DU1NTdHlsZURlY2xhcmF0aW9uKCkKLXsKLSAgU2Ny
aXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpOwotfQotCi1KU1Zh
bHVlKiBET01DU1NTdHlsZURlY2xhcmF0aW9uOjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gIERPTUNTU1N0eWxlRGVjbGFyYXRpb24g
KnRoaXNPYmogPSBzdGF0aWNfY2FzdDxET01DU1NTdHlsZURlY2xhcmF0aW9uKj4oc2xvdC5zbG90
QmFzZSgpKTsKLSAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHRoaXNPYmotPm1faW1wbC0+aXRlbShz
bG90LmluZGV4KCkpKTsKLX0KLQotSlNWYWx1ZSogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Y3Nz
UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb3JpZ2luYWxPYmplY3Qs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90
KQotewotICBET01DU1NTdHlsZURlY2xhcmF0aW9uICp0aGlzT2JqID0gc3RhdGljX2Nhc3Q8RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHNsb3Quc2xvdEJhc2UoKSk7Ci0KLSAgLy8gU2V0IHVwIHBp
eGVsT3JQb3MgYm9vbGVhbiB0byBoYW5kbGUgdGhlIGZhY3QgdGhhdAotICAvLyBwaXhlbFRvcCBy
ZXR1cm5zICJDU1MgVG9wIiBhcyBudW1iZXIgdmFsdWUgaW4gdW5pdCBwaXhlbHMKLSAgLy8gcG9z
VG9wIHJldHVybnMgIkNTUyB0b3AiIGFzIG51bWJlciB2YWx1ZSBpbiB1bml0IHBpeGVscyBfaWZf
IGl0cyBhCi0gIC8vIHBvc2l0aW9uZWQgZWxlbWVudC4gaWYgaXQgaXMgbm90IGEgcG9zaXRpb25l
ZCBlbGVtZW50LCByZXR1cm4gMAotICAvLyBmcm9tIE1TSUUgZG9jdW1lbnRhdGlvbiAjIyMgSU1Q
TEVNRU5UIFRIQVQgKERpcmspCi0gIGJvb2wgcGl4ZWxPclBvczsKLSAgU3RyaW5nIHByb3AgPSBj
c3NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCAmcGl4ZWxPclBvcyk7Ci0gIFJlZlB0cjxDU1NW
YWx1ZT4gdiA9IHRoaXNPYmotPm1faW1wbC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wKTsKLSAg
aWYgKHYpIHsKLSAgICBpZiAocGl4ZWxPclBvcyAmJiB2LT5jc3NWYWx1ZVR5cGUoKSA9PSBDU1NW
YWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRSkKLSAgICAgIHJldHVybiBqc051bWJlcihzdGF0aWNf
cG9pbnRlcl9jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2KS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1BYKSk7Ci0gICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHYtPmNzc1Rl
eHQoKSk7Ci0gIH0KLQotICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgcHJvcGVy
dHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgCi0gIC8vIGl0IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHVz
aW5nIGdldFByb3BlcnR5VmFsdWUuCi0gIAotICAvLyBNYWtlIHRoZSBTVkcgJ2ZpbHRlcicgYXR0
cmlidXRlIHVuZGV0ZWN0YWJsZSwgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggdGhlIElFICdmaWx0
ZXInIGF0dHJpYnV0ZS4KLSAgaWYgKHByb3BlcnR5TmFtZSA9PSAiZmlsdGVyIikKLSAgICAgIHJl
dHVybiBuZXcgU3RyaW5nSW5zdGFuY2VUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLT5s
ZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpblN0cmluZ1Byb3RvdHlwZSgpLCB0aGlzT2JqLT5t
X2ltcGwtPmdldFByb3BlcnR5VmFsdWUocHJvcCkpOwotCi0gIHJldHVybiBqc1N0cmluZyh0aGlz
T2JqLT5tX2ltcGwtPmdldFByb3BlcnR5VmFsdWUocHJvcCkpOwotfQotCi1ib29sIERPTUNTU1N0
eWxlRGVjbGFyYXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICBjb25z
dCBIYXNoRW50cnkqIGVudHJ5ID0gTG9va3VwOjpmaW5kRW50cnkoJkRPTUNTU1N0eWxlRGVjbGFy
YXRpb25UYWJsZSwgcHJvcGVydHlOYW1lKTsKLQotICBpZiAoZW50cnkpIHsKLSAgICBzbG90LnNl
dFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNWYWx1ZUdldHRlcjxET01DU1NTdHlsZURl
Y2xhcmF0aW9uPik7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICBib29sIG9rOwotICB1bnNp
Z25lZCB1ID0gcHJvcGVydHlOYW1lLnRvVUludDMyKCZvayk7Ci0gIGlmIChvaykgewotICAgIHNs
b3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgdSwgaW5kZXhHZXR0ZXIpOwotICAgIHJldHVybiB0cnVl
OwotICB9Ci0KLSAgaWYgKGlzQ1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKLSAgICBz
bG90LnNldEN1c3RvbSh0aGlzLCBjc3NQcm9wZXJ0eUdldHRlcik7Ci0gICAgcmV0dXJuIHRydWU7
Ci0gIH0KLQotICByZXR1cm4gRE9NT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKLX0KLQotSlNWYWx1ZSogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikKLXsKLSAgc3dpdGNo
ICh0b2tlbikgewotICBjYXNlIENzc1RleHQ6Ci0gICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKG1f
aW1wbC0+Y3NzVGV4dCgpKTsKLSAgY2FzZSBMZW5ndGg6Ci0gICAgcmV0dXJuIGpzTnVtYmVyKG1f
aW1wbC0+bGVuZ3RoKCkpOwotICBjYXNlIFBhcmVudFJ1bGU6Ci0gICAgcmV0dXJuIHRvSlMoZXhl
YywgbV9pbXBsLT5wYXJlbnRSdWxlKCkpOwotICBkZWZhdWx0OgotICAgIEFTU0VSVCgwKTsKLSAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgfQotfQotCi12b2lkIERPTUNTU1N0eWxlRGVjbGFy
YXRpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSogdmFsdWUsIGludCBhdHRyICkKLXsKLSNpZmRlZiBLSlNfVkVSQk9TRQotICBr
ZERlYnVnKDYwNzApIDw8ICJET01DU1NTdHlsZURlY2xhcmF0aW9uOjpwdXQgIiA8PCBwcm9wZXJ0
eU5hbWUgPDwgZW5kbDsKLSNlbmRpZgotICBET01FeGNlcHRpb25UcmFuc2xhdG9yIGV4Y2VwdGlv
bihleGVjKTsKLSAgQ1NTU3R5bGVEZWNsYXJhdGlvbiAmc3R5bGVEZWNsID0gKm1faW1wbDsKLSAg
aWYgKHByb3BlcnR5TmFtZSA9PSAiY3NzVGV4dCIpIHsKLSAgICBzdHlsZURlY2wuc2V0Q3NzVGV4
dCh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSksIGV4Y2VwdGlvbik7Ci0g
IH0gZWxzZSB7Ci0gICAgaWYgKGlzQ1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKLSAg
ICAgIGJvb2wgcGl4ZWxPclBvczsKLSAgICAgIFN0cmluZyBwcm9wID0gY3NzUHJvcGVydHlOYW1l
KHByb3BlcnR5TmFtZSwgJnBpeGVsT3JQb3MpOwotICAgICAgU3RyaW5nIHByb3BWYWx1ZSA9IHZh
bHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKTsKLSAgICAgIGlmIChwaXhlbE9y
UG9zKQotICAgICAgICBwcm9wVmFsdWUgKz0gInB4IjsKLSNpZmRlZiBLSlNfVkVSQk9TRQotICAg
ICAga2REZWJ1Zyg2MDcwKSA8PCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjogcHJvcD0iIDw8IHBy
b3AgPDwgIiBwcm9wdmFsdWU9IiA8PCBwcm9wdmFsdWUgPDwgZW5kbDsKLSNlbmRpZgotICAgICAg
c3R5bGVEZWNsLnNldFByb3BlcnR5KHByb3AsIHByb3BWYWx1ZSwgZXhjZXB0aW9uKTsKLSAgICB9
IGVsc2UgewotICAgICAgRE9NT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
YXR0cik7Ci0gICAgfQotICB9Ci19Ci0KLUpTVmFsdWUqIERPTUNTU1N0eWxlRGVjbGFyYXRpb25Q
cm90b3R5cGVGdW5jdGlvbjo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgaWYgKCF0aGlzT2JqLT5pbmhlcml0
cygmS0pTOjpET01DU1NTdHlsZURlY2xhcmF0aW9uOjppbmZvKSkKLSAgICByZXR1cm4gdGhyb3dF
cnJvcihleGVjLCBUeXBlRXJyb3IpOwotICBET01FeGNlcHRpb25UcmFuc2xhdG9yIGV4Y2VwdGlv
bihleGVjKTsKLSAgQ1NTU3R5bGVEZWNsYXJhdGlvbiAmc3R5bGVEZWNsID0gKnN0YXRpY19jYXN0
PERPTUNTU1N0eWxlRGVjbGFyYXRpb24qPih0aGlzT2JqKS0+aW1wbCgpOwotICBVU3RyaW5nIHN0
ciA9IGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpOwotICBTdHJpbmcgcyA9IHN0cjsKLQotICBzd2l0
Y2ggKGlkKSB7Ci0gICAgY2FzZSBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpHZXRQcm9wZXJ0eVZh
bHVlOgotICAgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0eWxlRGVjbC5nZXRQcm9wZXJ0eVZh
bHVlKHMpKTsKLSAgICBjYXNlIERPTUNTU1N0eWxlRGVjbGFyYXRpb246OkdldFByb3BlcnR5Q1NT
VmFsdWU6Ci0gICAgICByZXR1cm4gdG9KUyhleGVjLCBzdHlsZURlY2wuZ2V0UHJvcGVydHlDU1NW
YWx1ZShzKS5nZXQoKSk7Ci0gICAgY2FzZSBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpSZW1vdmVQ
cm9wZXJ0eToKLSAgICAgIHJldHVybiBqc1N0cmluZ09yTnVsbChzdHlsZURlY2wucmVtb3ZlUHJv
cGVydHkocywgZXhjZXB0aW9uKSk7Ci0gICAgY2FzZSBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpH
ZXRQcm9wZXJ0eVByaW9yaXR5OgotICAgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0eWxlRGVj
bC5nZXRQcm9wZXJ0eVByaW9yaXR5KHMpKTsKLSAgICBjYXNlIERPTUNTU1N0eWxlRGVjbGFyYXRp
b246OkdldFByb3BlcnR5U2hvcnRoYW5kOgotICAgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0
eWxlRGVjbC5nZXRQcm9wZXJ0eVNob3J0aGFuZChzKSk7Ci0gICAgY2FzZSBET01DU1NTdHlsZURl
Y2xhcmF0aW9uOjpJc1Byb3BlcnR5SW1wbGljaXQ6Ci0gICAgICByZXR1cm4ganNCb29sZWFuKHN0
eWxlRGVjbC5pc1Byb3BlcnR5SW1wbGljaXQocykpOwotICAgIGNhc2UgRE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6U2V0UHJvcGVydHk6Ci0gICAgICBzdHlsZURlY2wuc2V0UHJvcGVydHkocywgdmFs
dWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgYXJnc1sxXSksIGFyZ3NbMl0tPnRvU3RyaW5n
KGV4ZWMpLCBleGNlcHRpb24pOwotICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgY2Fz
ZSBET01DU1NTdHlsZURlY2xhcmF0aW9uOjpJdGVtOgotICAgICAgcmV0dXJuIGpzU3RyaW5nT3JO
dWxsKHN0eWxlRGVjbC5pdGVtKGFyZ3NbMF0tPnRvSW50MzIoZXhlYykpKTsKLSAgICBkZWZhdWx0
OgotICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gIH0KLX0KLQotSlNWYWx1ZSogdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIENTU1N0eWxlRGVjbGFyYXRpb24gKnMpCi17Ci0gIHJldHVybiBjYWNo
ZURPTU9iamVjdDxDU1NTdHlsZURlY2xhcmF0aW9uLCBKU0NTU1N0eWxlRGVjbGFyYXRpb24+KGV4
ZWMsIHMpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIGNvbnN0IENsYXNzSW5mbyBET01T
dHlsZVNoZWV0OjppbmZvID0geyAiU3R5bGVTaGVldCIsIDAsICZET01TdHlsZVNoZWV0VGFibGUs
IDAgfTsKIC8qCiBAYmVnaW4gRE9NU3R5bGVTaGVldFRhYmxlIDcKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMva2pzX2Nzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X2Nzcy5oCShyZXZpc2lvbiAyMTg1MikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NSwzNCArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IG5hbWVzcGFjZSBLSlMgewogCi0gIEtKU19ERUZJTkVfUFJPVE9UWVBFKERPTUNTU1N0eWxlRGVj
bGFyYXRpb25Qcm90b3R5cGUpCi0KLSAgY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiA6IHB1
YmxpYyBET01PYmplY3QgewotICBwdWJsaWM6Ci0gICAgdmlydHVhbCB+RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbigpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiwg
aW50IGF0dHIgPSBOb25lKTsKLSAgICBKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0
ZSosIGludCB0b2tlbik7Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGlu
Zm87Ci0gICAgZW51bSB7IENzc1RleHQsIExlbmd0aCwgUGFyZW50UnVsZSB9OwotICAgIGVudW0g
eyBHZXRQcm9wZXJ0eVZhbHVlLCBHZXRQcm9wZXJ0eUNTU1ZhbHVlLCBSZW1vdmVQcm9wZXJ0eSwg
Ci0gICAgICAgICAgIEdldFByb3BlcnR5UHJpb3JpdHksIEdldFByb3BlcnR5U2hvcnRoYW5kLCBJ
c1Byb3BlcnR5SW1wbGljaXQsIFNldFByb3BlcnR5LCBJdGVtIH07Ci0gICAgV2ViQ29yZTo6Q1NT
U3R5bGVEZWNsYXJhdGlvbiogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQot
ICBwcml2YXRlOgotICAgIHN0YXRpYyBKU1ZhbHVlKiBpbmRleEdldHRlcihFeGVjU3RhdGUqLCBK
U09iamVjdCosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBz
dGF0aWMgSlNWYWx1ZSAqY3NzUHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci0KLSAgICAvLyBEb24ndCB1
c2UgdGhpcyBjbGFzcyBkaXJlY3RseSAtLSB1c2UgSlNDU1NTdHlsZURlY2xhcmF0aW9uIGluc3Rl
YWQKLSAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOwotICAg
IERPTUNTU1N0eWxlRGVjbGFyYXRpb24oRXhlY1N0YXRlKiwgV2ViQ29yZTo6Q1NTU3R5bGVEZWNs
YXJhdGlvbiAqcyk7Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbj4g
bV9pbXBsOwotICB9OwotCi0gIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Q1NT
U3R5bGVEZWNsYXJhdGlvbiopOwotCiAgIGNsYXNzIERPTVN0eWxlU2hlZXQgOiBwdWJsaWMgRE9N
T2JqZWN0IHsKICAgcHVibGljOgogICAgIERPTVN0eWxlU2hlZXQoRXhlY1N0YXRlKiwgV2ViQ29y
ZTo6U3R5bGVTaGVldCopOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0JKHJl
dmlzaW9uIDIxODUyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTUltcGxlbWVudGF0aW9u
RnJvbnQuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJKU0NTU1J1bGVMaXN0
LmgiCisjaW1wb3J0ICJKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbXBvcnQgIkpTQ291bnRl
ci5oIgogI2ltcG9ydCAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgogI2ltcG9ydCAiSlNFdmVudC5o
IgpAQCAtNjUsNiArNjYsNyBAQCBzdGF0aWMgaW5saW5lIGlkIGNyZWF0ZURPTVdyYXBwZXIoS0pT
OjpKCiAgICAgICAgICAgICByZXR1cm4gW0RPTSMjY2xhc3NOYW1lIF93cmFwIyNjbGFzc05hbWU6
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6SlMjI2NsYXNzTmFtZSo+KG9iamVjdCktPmltcGwoKV07CiAK
ICAgICBXUkFQKENTU1J1bGVMaXN0KQorICAgIFdSQVAoQ1NTU3R5bGVEZWNsYXJhdGlvbikKICAg
ICBXUkFQKENvdW50ZXIpCiAgICAgV1JBUChIVE1MT3B0aW9uc0NvbGxlY3Rpb24pCiAgICAgV1JB
UChSYW5nZSkKQEAgLTc4LDcgKzgwLDYgQEAgc3RhdGljIGlubGluZSBpZCBjcmVhdGVET01XcmFw
cGVyKEtKUzo6SgogICAgICAgICAgICAgcmV0dXJuIFtvYmpjX2dldENsYXNzKCJET00iICNjbGFz
c05hbWUpIF93cmFwIyNjbGFzc05hbWU6c3RhdGljX2Nhc3Q8RE9NIyNjbGFzc05hbWUqPihvYmpl
Y3QpLT5pbXBsKCldOwogCiAgICAgV1JBUChDU1NSdWxlKQotICAgIFdSQVAoQ1NTU3R5bGVEZWNs
YXJhdGlvbikKICAgICBXUkFQKENTU1ZhbHVlKQogICAgIFdSQVAoRXZlbnQpCiAgICAgV1JBUChN
ZWRpYUxpc3QpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDIxODUyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNzk3LDYgKzc5Nyw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZUdldHRlcik7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVz
eyJBdG9taWNTdHJpbmcuaCJ9ID0gMTsKICAgICAgICAgfTsKIAogICAgICAgICBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifSkgewpA
QCAtMTEyOCw3ICsxMTI5LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiXG5KU1ZhbHVlKiAke2NsYXNzTmFtZX06OmluZGV4R2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmogPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oc2xv
dC5zbG90QmFzZSgpKTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmotPmltcGwo
KSktPml0ZW0oc2xvdC5pbmRleCgpKSk7XG4iKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHRoaXNPYmotPmltcGwoKS0+aXRlbShzbG90
LmluZGV4KCkpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05h
bWUqPih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKHNsb3QuaW5kZXgoKSkpO1xuIik7CisgICAgICAg
IH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICB9CiAKQEAgLTE0NzEs
OCArMTQ3Niw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgJGltcGxJbmNsdWRlc3si
Q1NTU3R5bGVTaGVldC5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYUxpc3Qu
aCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRlc3sia2pzX2Nzcy5oIn0gPSAxOwotICAgIH0g
ZWxzaWYgKCR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiUmVjdCIp
IHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxOwor
ICAgIH0gZWxzaWYgKCR0eXBlIGVxICJSZWN0IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJS
ZWN0SW1wbC5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJranNfY3NzLmgifSA9IDE7
CiAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkhUTUxDYW52YXNFbGVtZW50IikgewpJbmRleDogV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlzaW9uIDIxODUyKQorKysgV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTIxLDI5ICsyMSwyNyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtK
Uzo6RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiwgR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gQ1NTU3R5bGVE
ZWNsYXJhdGlvbiB7Ci0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAg
ICAgICBjc3NUZXh0CisgICAgaW50ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yLCBDdXN0b21Q
dXRGdW5jdGlvbiwgSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIsIEhhc0luZGV4R2V0dGVyXSBDU1NT
dHlsZURlY2xhcmF0aW9uIHsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAg
IGNzc1RleHQKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAotICAgICAgICBET01TdHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlWYWx1ZShpbiBET01T
dHJpbmcgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0g
RE9NU3RyaW5nICAgICAgICAgIGdldFByb3BlcnR5VmFsdWUoaW4gRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIENTU1ZhbHVlICAgICAgICAgICBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGlu
IERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBET01TdHJpbmcgICAgICAgICAgcmVt
b3ZlUHJvcGVydHkoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSkKKyAgICAgICAgW0NvbnZlcnRO
dWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIHJlbW92ZVByb3BlcnR5KGluIERP
TVN0cmluZyBwcm9wZXJ0eU5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgRE9NU3RyaW5nICAgICAgICAgIGdldFByb3BlcnR5UHJpb3JpdHkoaW4gRE9NU3Ry
aW5nIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyAgICAgICAgICBnZXRQcm9wZXJ0eVByaW9yaXR5KGluIERPTVN0cmluZyBwcm9wZXJ0
eU5hbWUpOwogICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNldFByb3BlcnR5KGluIERPTVN0
cmluZyBwcm9wZXJ0eU5hbWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIERPTVN0cmluZyB2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWUsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwcmlv
cml0eSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKLSAgICAgICAgRE9NU3RyaW5n
ICAgICAgICAgIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAgICAgICAgICBpdGVtKGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBw
YXJlbnRSdWxlOwotICAgICAgICAKLSAgICAgICAgLy8gZXh0ZW5zaW9ucwotICAgICAgICBET01T
dHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlTaG9ydGhhbmQoaW4gRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSk7CisKKyAgICAgICAgLy8gRXh0ZW5zaW9ucworICAgICAgICBbQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlTaG9ydGhhbmQoaW4gRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc1Byb3Bl
cnR5SW1wbGljaXQoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0jZW5kaWYKICAgICB9Owog
CiB9Cg==
</data>
<flag name="review"
          id="6086"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>