<?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>220246</bug_id>
          
          <creation_ts>2021-01-04 09:01:20 -0800</creation_ts>
          <short_desc>[WebIDL] Remove [LegacyCaller] extended attribute</short_desc>
          <delta_ts>2021-01-04 12:03:15 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216157</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717137</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-04 09:01:20 -0800</bug_when>
    <thetext>[WebIDL] Remove [LegacyCaller] extended attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717141</commentid>
    <comment_count>1</comment_count>
      <attachid>416951</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-04 09:14:59 -0800</bug_when>
    <thetext>Created attachment 416951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717145</commentid>
    <comment_count>2</comment_count>
      <attachid>416951</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-04 09:42:45 -0800</bug_when>
    <thetext>Comment on attachment 416951
Patch

Nice simplification! Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717175</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-04 11:52:17 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Nice simplification! Thanks.

Thank you for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717177</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-04 12:02:07 -0800</bug_when>
    <thetext>Committed r271137: &lt;https://trac.webkit.org/changeset/271137&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416951.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717178</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-04 12:03:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/72795643&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416951</attachid>
            <date>2021-01-04 09:14:59 -0800</date>
            <delta_ts>2021-01-04 12:02:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220246-20210104191457.patch</filename>
            <type>text/plain</type>
            <size>27800</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAxLTA0ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBbV2ViSURMXSBSZW1v
dmUgW0xlZ2FjeUNhbGxlcl0gZXh0ZW5kZWQgYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhpcyBjaGFuZ2UsIFtMZWdhY3lD
YWxsZXJdIGltcGxlbWVudGF0aW9uIHdhcyB2ZXJ5IGNvbXBsZXggeWV0IHZlcnNhdGlsZSwgaGFu
ZGxpbmcKKyAgICAgICAgb3ZlcmxvYWRzIGFuZCBtdWx0aXBsZSBjYWxsZXJzIHZpYSBvcGVyYXRp
b24gY2xvbmluZy4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgW0xlZ2FjeUNhbGxlcl0s
IGluc3RlYWQgb2Ygc2ltcGxpZnlpbmcgaXQsIGFuZCBsZXZlcmFnZXMgW0N1c3RvbUdldENhbGxE
YXRhXQorICAgICAgICB0byBpbXBsZW1lbnQgSFRNTEFsbENvbGxlY3Rpb24ncyBbW0NhbGxdXSBt
ZXRob2QgZm9yIGEgZmV3IHJlYXNvbnM6CisKKyAgICAgICAgMS4gTGVnYWN5IGNhbGxlcnMgd2Vy
ZSByZW1vdmVkIGZyb20gdGhlIFdlYklETCBzcGVjIFsxXSwgd2l0aCBgZG9jdW1lbnQuYWxsYCBi
ZWluZyB0aGUgb25seQorICAgICAgICAgICB1c2UgY2FzZTsgY2FsbGFibGUgb2JqZWN0cyB3b24n
dCBldmVyIGJlIGludHJvZHVjZWQuCisgICAgICAgIDIuIFRvIGNsb3NlbHkgbWF0Y2ggdGhlIEhU
TUwgc3BlYyBbMl0gYnkgcmV0dXJuaW5nIGVhcmx5IHJhdGhlciB0aGFuIHBhc3NpbmcgbnVsbGlz
aCBBdG9tU3RyaW5nLgorICAgICAgICAzLiBUbyBtYWtlIGdldENhbGxEYXRhKCkgb3ZlcnJpZGUg
bW9yZSBvYnZpb3VzIHRvIGEgcmVhZGVyIHVuZmFtaWxpYXIgd2l0aCBsZWdhY3kgY2FsbGVycy4K
KyAgICAgICAgNC4gVG8gbWF4aW1pemUgdGhlIGFtb3VudCBvZiBjb2RlIHJlbW92ZWQgZnJvbSB0
aGUgZ2VuZXJhdG9yLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgIFsxXSBodHRwczovL2dpdGh1Yi5jb20vaGV5Y2FtL3dlYmlkbC9wdWxsLzQx
MgorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY29t
bW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjSFRNTEFsbENvbGxlY3Rpb24tY2FsbAorCisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxBbGxDb2xsZWN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUludGVyZmFjZSk6CisgICAgICAgIChHZW5lcmF0ZUdldENhbGxEYXRhKToKKyAgICAgICAg
KEluc3RhbmNlT3ZlcnJpZGVzR2V0Q2FsbERhdGEpOgorICAgICAgICAoQWRkTGVnYWN5Q2FsbGVy
T3BlcmF0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoR2VuZXJhdGVQbHVnaW5DYWxs
KTogRGVsZXRlZC4KKyAgICAgICAgKEdlbmVyYXRlTGVnYWN5Q2FsbGVyRGVmaW5pdGlvbnMpOiBE
ZWxldGVkLgorICAgICAgICAoR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKGNsb25lQXJndW1l
bnQpOiBEZWxldGVkLgorICAgICAgICAoY2xvbmVPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0T2JqRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpjYWxsSlNUZXN0T2JqMSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWxsSlNU
ZXN0T2JqMik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWxsSlNUZXN0T2JqMyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xlZ2FjeUNh
bGxlck5hbWVkQm9keSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbDoKKwogMjAyMS0wMS0w
NCAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXIt
dmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CShyZXZpc2lvbiAyNzExMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNTUzLDYgKzU1Myw3IEBAIGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlLmNw
cAogYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNGZXRjaEV2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNGaWxlU3lzdGVtRW50
cnlDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAog
YmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3Rv
bS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI3MTEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTExNTUsNiArMTEx
NTUsNyBAQAogCQk4NEI2MjY4NDEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250UGxhdGZvcm1EYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODRCNkI5NzUxMjBGMTNFNTAwQjhF
RkFGIC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR1BhdGhTZWdMaXN0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODRCNkI5NzYxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291
cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdMaXN0U291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg0QkJFNTQ4MjU5N0U3RjEwMEFB
OEYyOCAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4NEMwQjY3MzI0REJBQ0EyMDA1OERGOTYgLyogQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0QzVCMkY4MTIxNkRDODEwMDg4QjUzQSAvKiBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhUcmF2ZXJz
YWxTdGF0ZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NEM1QjJG
OTEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjcwNiw2ICsyMjcwNyw3IEBACiAJ
CQkJNDZCNjNGNkIxQzZFOENERjAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCAqLywK
IAkJCQk0MTMxRjNCMTFGOTU1MjgxMDA1OTk5NUEgLyogSlNGZXRjaEV2ZW50Q3VzdG9tLmNwcCAq
LywKIAkJCQk4MzVCNjgwRTFGNTQ4QkRFMDA3MUY3RjYgLyogSlNGaWxlU3lzdGVtRW50cnlDdXN0
b20uY3BwICovLAorCQkJCTg0QkJFNTQ4MjU5N0U3RjEwMEFBOEYyOCAvKiBKU0hUTUxBbGxDb2xs
ZWN0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2RTU3NkJDMzI0RUI1MDlDMDA5NEQ0QUEgLyogSlNI
VE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNDQkFEM0EwQzE4QkZGODAwQ0U4
OTBGIC8qIEpTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUJDNTE1ODBBMEMwM0Q0
MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFsZXhleSBTaHZheWthIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNI
VE1MQWxsQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRVbmlv
bi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNIVE1MQWxsQ29sbGVjdGlvbik7CisK
Ky8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50
ZXJmYWNlcy5odG1sI0hUTUxBbGxDb2xsZWN0aW9uLWNhbGwKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsSlNIVE1MQWxsQ29sbGVjdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gbGV4aWNh
bEdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBhdXRvKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTSFRNTEFsbENvbGxlY3Rp
b24qPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOworICAgIEFTU0VSVChjYXN0ZWRUaGlzKTsKKyAg
ICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGlmIChjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdWxsKCkpOworCisgICAgQXRvbVN0cmluZyBuYW1lT3JJbmRleCA9IGNhbGxGcmFtZS0+
dW5jaGVja2VkQXJndW1lbnQoMCkudG9TdHJpbmcobGV4aWNhbEdsb2JhbE9iamVjdCktPnRvQXRv
bVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMTnVsbGFibGU8SURMVW5pb248SURMSW50ZXJmYWNlPEhUTUxDb2xsZWN0aW9uPiwg
SURMSW50ZXJmYWNlPEVsZW1lbnQ+Pj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIGltcGwubmFtZWRPckluZGV4ZWRJdGVtT3JJdGVtcyhXVEZNb3Zl
KG5hbWVPckluZGV4KSkpKSk7Cit9CisKK0NhbGxEYXRhIEpTSFRNTEFsbENvbGxlY3Rpb246Omdl
dENhbGxEYXRhKEpTQ2VsbCopCit7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgY2FsbERh
dGEudHlwZSA9IENhbGxEYXRhOjpUeXBlOjpOYXRpdmU7CisgICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbEpTSFRNTEFsbENvbGxlY3Rpb247CisgICAgcmV0dXJuIGNhbGxEYXRhOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjcxMTMxKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNiBAQCBzdWIgR2VuZXJhdGVJbnRlcmZhY2UKICAg
ICBBZGRNYXBMaWtlQXR0cmlidXRlc0FuZE9wZXJhdGlvbklmTmVlZGVkKCRpbnRlcmZhY2UpOwog
ICAgIEFkZFNldExpa2VBdHRyaWJ1dGVzQW5kT3BlcmF0aW9uSWZOZWVkZWQoJGludGVyZmFjZSk7
CiAgICAgQWRkU3RyaW5naWZpZXJPcGVyYXRpb25JZk5lZWRlZCgkaW50ZXJmYWNlKTsKLSAgICBB
ZGRMZWdhY3lDYWxsZXJPcGVyYXRpb25JZk5lZWRlZCgkaW50ZXJmYWNlKTsKIAogICAgIGlmICgk
aW50ZXJmYWNlLT5pc0NhbGxiYWNrKSB7CiAgICAgICAgICRvYmplY3QtPkdlbmVyYXRlQ2FsbGJh
Y2tJbnRlcmZhY2VIZWFkZXIoJGludGVyZmFjZSwgJGVudW1lcmF0aW9ucywgJGRpY3Rpb25hcmll
cyk7CkBAIC00ODcsMjMgKzQ4Niw2IEBAIHN1YiBBZGRTdHJpbmdpZmllck9wZXJhdGlvbklmTmVl
ZGVkCiAgICAgfQogfQogCi1zdWIgQWRkTGVnYWN5Q2FsbGVyT3BlcmF0aW9uSWZOZWVkZWQKLXsK
LSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0KLSAgICBmb3JlYWNoIG15ICRvcGVyYXRpb24g
KEB7JGludGVyZmFjZS0+b3BlcmF0aW9uc30sIEB7JGludGVyZmFjZS0+YW5vbnltb3VzT3BlcmF0
aW9uc30pIHsKLSAgICAgICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xl
Z2FjeUNhbGxlcn0pIHsKLSAgICAgICAgICAgICRpbnRlcmZhY2UtPntMZWdhY3lDYWxsZXJzfSA9
IFtdIGlmICFleGlzdHMgJGludGVyZmFjZS0+e0xlZ2FjeUNhbGxlcnN9OwotCi0gICAgICAgICAg
ICBteSAkY2xvbmVkT3BlcmF0aW9uID0gSURMUGFyc2VyOjpjbG9uZU9wZXJhdGlvbigkb3BlcmF0
aW9uKTsKLSAgICAgICAgICAgIHB1c2goQHskaW50ZXJmYWNlLT57TGVnYWN5Q2FsbGVyc319LCAk
Y2xvbmVkT3BlcmF0aW9uKTsKLSAgICAKLSAgICAgICAgICAgICRjbG9uZWRPcGVyYXRpb24tPntv
dmVybG9hZHN9ID0gJGludGVyZmFjZS0+e0xlZ2FjeUNhbGxlcnN9OwotICAgICAgICAgICAgJGNs
b25lZE9wZXJhdGlvbi0+e292ZXJsb2FkSW5kZXh9ID0gQHskaW50ZXJmYWNlLT57TGVnYWN5Q2Fs
bGVyc319OwotICAgICAgICB9Ci0gICAgfQotfQotCiBzdWIgRXZlbnRIYW5kbGVyQXR0cmlidXRl
RXZlbnROYW1lCiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwpAQCAtNTkxOCwxNyArNTkw
MCw2IEBAIHN1YiBHZW5lcmF0ZUdldENhbGxEYXRhCiAKICAgICByZXR1cm4gaWYgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0Q2FsbERhdGF9OwogCi0gICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn0pIHsKLSAgICAgICAgR2VuZXJh
dGVQbHVnaW5DYWxsKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9ucygkb3V0cHV0
QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOwotICAgIH0KLX0KLQotc3ViIEdlbmVyYXRl
UGx1Z2luQ2FsbAotewotICAgIG15ICgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05h
bWUpID0gQF87Ci0KICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmgiKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNhbGxEYXRhICR7Y2xhc3NOYW1l
fTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKVxuIik7CkBAIC01OTQxLDc0ICs1OTEyLDYgQEAg
c3ViIEdlbmVyYXRlUGx1Z2luQ2FsbAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuIik7CiB9
CiAKLXN1YiBHZW5lcmF0ZUxlZ2FjeUNhbGxlckRlZmluaXRpb25zCi17Ci0gICAgbXkgKCRvdXRw
dXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSkgPSBAXzsKLQotICAgIG15IEBsZWdhY3lD
YWxsZXJzID0gQHskaW50ZXJmYWNlLT57TGVnYWN5Q2FsbGVyc319OwotICAgIGlmIChAbGVnYWN5
Q2FsbGVycyA+IDEpIHsKLSAgICAgICAgZm9yZWFjaCBteSAkbGVnYWN5Q2FsbGVyIChAbGVnYWN5
Q2FsbGVycykgewotICAgICAgICAgICAgR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9uKCRv
dXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGxlZ2FjeUNhbGxlcik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBteSAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCA9ICJjYWxsJHtjbGFz
c05hbWV9IjsKLQotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oJHtvdmVybG9hZEZ1bmN0aW9uUHJlZml4fSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpXG4iKTsKLSAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpO1xuIik7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFN
KHRocm93U2NvcGUpO1xuIik7Ci0KLSAgICAgICAgR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIo
JGxlZ2FjeUNhbGxlcnNbMF0sICRpbnRlcmZhY2UsICRvdmVybG9hZEZ1bmN0aW9uUHJlZml4LCAi
IiwgImxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSIpOwotCi0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIn1cblxuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgR2VuZXJhdGVMZWdh
Y3lDYWxsZXJEZWZpbml0aW9uKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGxlZ2FjeUNhbGxlcnNbMF0pOwotICAgIH0KLQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNh
bGxEYXRhICR7Y2xhc3NOYW1lfTo6Z2V0Q2FsbERhdGEoSlNDZWxsKilcbiIpOwotICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBDYWxs
RGF0YSBjYWxsRGF0YTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBjYWxsRGF0
YS50eXBlID0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsJHtjbGFzc05hbWV9O1xu
Iik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBjYWxsRGF0YTtcbiIpOwot
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IlxuIik7Ci19Ci0KLXN1YiBHZW5lcmF0ZUxlZ2FjeUNhbGxlckRlZmluaXRpb24KLXsKLSAgICBt
eSAoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkb3BlcmF0aW9uKSA9IEBf
OwotCi0gICAgbXkgJGlzT3ZlcmxvYWRlZCA9ICRvcGVyYXRpb24tPntvdmVybG9hZHN9ICYmIEB7
JG9wZXJhdGlvbi0+e292ZXJsb2Fkc319ID4gMTsKLSAgICBpZiAoJGlzT3ZlcmxvYWRlZCkgewot
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGNhbGwke2NsYXNzTmFtZX0kb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAic3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbCR7Y2xhc3NOYW1lfSk7XG4iKTsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGwke2NsYXNzTmFtZX0sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KVxuIik7Ci0gICAgfQotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
VU5VU0VEX1BBUkFNKHRocm93U2NvcGUpO1xuIik7Ci0KLSAgICBteSAkaW5kZW50ID0gIiAgICAi
OwotICAgIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjaygkb3V0cHV0QXJyYXksICRvcGVyYXRp
b24sICRpbnRlcmZhY2UsICRpbmRlbnQpOwotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8qIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlQoY2FzdGVk
VGhpcyk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byYgaW1wbCA9IGNh
c3RlZFRoaXMtPndyYXBwZWQoKTtcbiIpOwotCi0gICAgbXkgJGZ1bmN0aW9uSW1wbGVtZW50YXRp
b25OYW1lID0gJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30g
fHwgJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJG9wZXJhdGlvbi0+bmFtZSkgfHwgImxlZ2Fj
eUNhbGxlck9wZXJhdGlvbkZyb21CaW5kaW5ncyI7Ci0gICAgbXkgJGZ1bmN0aW9uU3RyaW5nID0g
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2soJG91dHB1dEFycmF5LCAkb3BlcmF0aW9uLCAkaW50ZXJm
YWNlLCAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUsICRpbmRlbnQpOwotCi0gICAgbXkgJGhh
c1Rocm93U2NvcGUgPSAxOwotICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwo
JG91dHB1dEFycmF5LCAkb3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAkZnVuY3Rpb25TdHJpbmcsICRp
bmRlbnQsICRoYXNUaHJvd1Njb3BlKTsKLQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxu
Iik7Ci19Ci0KIHN1YiBHZW5lcmF0ZUNhbGxXaXRoVXNpbmdSZWZlcmVuY2VzCiB7CiAgICAgbXkg
KCRjYWxsV2l0aCwgJG91dHB1dEFycmF5LCAkcmV0dXJuVmFsdWUsICR0aGlzUmVmZXJlbmNlLCAk
aW5kZW50KSA9IEBfOwpAQCAtODAxNiw3ICs3OTE5LDcgQEAgc3ViIElzQ29uc3RydWN0YWJsZQog
c3ViIEluc3RhbmNlT3ZlcnJpZGVzR2V0Q2FsbERhdGEKIHsKICAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7Ci0gICAgcmV0dXJuICRpbnRlcmZhY2UtPntMZWdhY3lDYWxsZXJzfSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRDYWxsRGF0YX0gfHwgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UGx1Z2lufTsKKyAgICByZXR1cm4gJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0Q2FsbERhdGF9IHx8ICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiB9CiAKIHN1YiBIZWFkZXJOZWVkc1Byb3RvdHlw
ZURlY2xhcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjcxMTMxKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHdvcmtpbmcgY29weSkKQEAg
LTI5NSw5ICsyOTUsNiBAQAogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJm
YWNlIl0sCiAgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KICAgICAgICAgfSwKLSAgICAgICAg
IkxlZ2FjeUNhbGxlciI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbIm9wZXJh
dGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAgICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iOiB7CiAg
ICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXSwKICAgICAgICAgICAg
ICJ2YWx1ZXMiOiBbIioiXSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMUGFyc2VyLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMUGFyc2VyLnBtCShyZXZpc2lvbiAyNzExMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkod29ya2luZyBjb3B5KQpAQCAtNTQ5LDQzICs1NDks
NiBAQCBzdWIgY2xvbmVUeXBlCiAgICAgcmV0dXJuICRjbG9uZWRUeXBlOwogfQogCi1zdWIgY2xv
bmVBcmd1bWVudAotewotICAgIG15ICRhcmd1bWVudCA9IHNoaWZ0OwotCi0gICAgbXkgJGNsb25l
ZEFyZ3VtZW50ID0gSURMQXJndW1lbnQtPm5ldygpOwotICAgICRjbG9uZWRBcmd1bWVudC0+bmFt
ZSgkYXJndW1lbnQtPm5hbWUpOwotICAgICRjbG9uZWRBcmd1bWVudC0+dHlwZShjbG9uZVR5cGUo
JGFyZ3VtZW50LT50eXBlKSk7Ci0gICAgJGNsb25lZEFyZ3VtZW50LT5pc1ZhcmlhZGljKCRhcmd1
bWVudC0+aXNWYXJpYWRpYyk7Ci0gICAgJGNsb25lZEFyZ3VtZW50LT5pc09wdGlvbmFsKCRhcmd1
bWVudC0+aXNPcHRpb25hbCk7Ci0gICAgJGNsb25lZEFyZ3VtZW50LT5kZWZhdWx0KCRhcmd1bWVu
dC0+ZGVmYXVsdCk7Ci0gICAgY29weUV4dGVuZGVkQXR0cmlidXRlcygkY2xvbmVkQXJndW1lbnQt
PmV4dGVuZGVkQXR0cmlidXRlcywgJGFyZ3VtZW50LT5leHRlbmRlZEF0dHJpYnV0ZXMpOwotCi0g
ICAgcmV0dXJuICRjbG9uZWRBcmd1bWVudDsKLX0KLQotc3ViIGNsb25lT3BlcmF0aW9uCi17Ci0g
ICAgbXkgJG9wZXJhdGlvbiA9IHNoaWZ0OwotCi0gICAgbXkgJGNsb25lZE9wZXJhdGlvbiA9IElE
TE9wZXJhdGlvbi0+bmV3KCk7Ci0gICAgJGNsb25lZE9wZXJhdGlvbi0+bmFtZSgkb3BlcmF0aW9u
LT5uYW1lKTsKLSAgICAkY2xvbmVkT3BlcmF0aW9uLT50eXBlKGNsb25lVHlwZSgkb3BlcmF0aW9u
LT50eXBlKSk7Ci0gICAgCi0gICAgZm9yZWFjaCBteSAkYXJndW1lbnQgKEB7JG9wZXJhdGlvbi0+
YXJndW1lbnRzfSkgewotICAgICAgICBwdXNoKEB7JGNsb25lZE9wZXJhdGlvbi0+YXJndW1lbnRz
fSwgY2xvbmVBcmd1bWVudCgkYXJndW1lbnQpKTsKLSAgICB9Ci0KLSAgICAkY2xvbmVkT3BlcmF0
aW9uLT5pc0NvbnN0cnVjdG9yKCRvcGVyYXRpb24tPmlzQ29uc3RydWN0b3IpOwotICAgICRjbG9u
ZWRPcGVyYXRpb24tPmlzU3RhdGljKCRvcGVyYXRpb24tPmlzU3RhdGljKTsKLSAgICAkY2xvbmVk
T3BlcmF0aW9uLT5pc1N0cmluZ2lmaWVyKCRvcGVyYXRpb24tPmlzU3RyaW5naWZpZXIpOwotICAg
ICRjbG9uZWRPcGVyYXRpb24tPnNwZWNpYWxzKCRvcGVyYXRpb24tPnNwZWNpYWxzKTsKLQotICAg
IGNvcHlFeHRlbmRlZEF0dHJpYnV0ZXMoJGNsb25lZE9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLCAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMpOwotCi0gICAgcmV0dXJuICRjbG9u
ZWRPcGVyYXRpb247Ci19Ci0KIHN1YiBtYWtlU2ltcGxlVHlwZQogewogICAgIG15ICR0eXBlTmFt
ZSA9IHNoaWZ0OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAkocmV2aXNpb24gMjcxMTMxKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NDIsMTAg
KzQ0Miw2IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3cKIAogICAg
IHVuZGVmaW5lZCBidWZmZXJTb3VyY2VQYXJhbWV0ZXIoQnVmZmVyU291cmNlIGRhdGEpOwogCi0g
ICAgW0xlZ2FjeUNhbGxlcl0gdW5kZWZpbmVkIGxlZ2FjeUNhbGxlck5hbWVkKGxvbmcgcGFyYW0p
OwotICAgIFtMZWdhY3lDYWxsZXJdIGxvbmcgKERPTVN0cmluZyBwYXJhbSk7Ci0gICAgW0xlZ2Fj
eUNhbGxlcl0gdW5kZWZpbmVkICgpOwotCiAgICAgTm9kZSB0ZXN0UmV0dXJuVmFsdWVPcHRpbWl6
YXRpb24oW1JldHVyblZhbHVlXSBOb2RlIGEsIE5vZGUgYik7CiAgICAgW01heVRocm93RXhjZXB0
aW9uXSBOb2RlIHRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24oW1JldHVy
blZhbHVlXSBOb2RlIGEsIE5vZGUgYik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAyNzEx
MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5MSw3ICsxNTkxLDYgQEAgc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Twogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYXR0YWNoU2hhZG93Um9vdCk7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vcGVy
YXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2J1ZmZlclNvdXJjZVBh
cmFtZXRlcik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9sZWdhY3lDYWxsZXJOYW1lZCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0dXJuVmFsdWVPcHRp
bWl6YXRpb24pOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fdGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbik7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24pOwpAQCAtMjMyMyw3ICsy
MzIyLDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBybwogICAgIHsg
ImF0dGFjaFNoYWRvd1Jvb3QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2F0dGFjaFNoYWRv
d1Jvb3QpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAib3BlcmF0aW9uV2l0aEV4dGVybmFs
RGljdGlvbmFyeVBhcmFtZXRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3BlcmF0aW9u
V2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAg
ICB7ICJidWZmZXJTb3VyY2VQYXJhbWV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2J1
ZmZlclNvdXJjZVBhcmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJsZWdhY3lD
YWxsZXJOYW1lZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbGVnYWN5Q2FsbGVyTmFtZWQp
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24p
LCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9u
V2l0aEV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFJldHVyblZhbHVl
T3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKICAgICB7ICJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiksIChpbnRwdHJfdCkg
KDApIH0gfSwKQEAgLTI1NDAsNzUgKzI1MzgsNiBAQCB2b2lkIEpTVGVzdE9iajo6Z2V0T3duUHJv
cGVydHlOYW1lcyhKU09iCiAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0
LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotc3RhdGlj
IGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjYWxsSlNUZXN0T2JqMShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgVk0mIHZtID0g
bGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgYXV0
byogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkp
OwotICAgIEFTU0VSVChjYXN0ZWRUaGlzKTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+
d3JhcHBlZCgpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxsRnJh
bWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8gcGFyYW0gPSBjb252ZXJ0PElETExv
bmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB0aHJvd1Nj
b3BlLnJlbGVhc2UoKTsKLSAgICBpbXBsLmxlZ2FjeUNhbGxlck5hbWVkKFdURk1vdmUocGFyYW0p
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1zdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNhbGxKU1Rlc3RPYmoyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBWTSYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBh
dXRvKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KGNhbGxGcmFtZS0+anNDYWxsZWUo
KSk7Ci0gICAgQVNTRVJUKGNhc3RlZFRoaXMpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlz
LT53cmFwcGVkKCk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxG
cmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBwYXJhbSA9IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETExv
bmc+KGltcGwubGVnYWN5Q2FsbGVyT3BlcmF0aW9uRnJvbUJpbmRpbmdzKFdURk1vdmUocGFyYW0p
KSkpKTsKLX0KLQotc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjYWxsSlNUZXN0T2JqMyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Ci17Ci0gICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhy
b3dTY29wZSk7Ci0gICAgYXV0byogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihjYWxs
RnJhbWUtPmpzQ2FsbGVlKCkpOwotICAgIEFTU0VSVChjYXN0ZWRUaGlzKTsKLSAgICBhdXRvJiBp
bXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwot
ICAgIGltcGwubGVnYWN5Q2FsbGVyT3BlcmF0aW9uRnJvbUJpbmRpbmdzKCk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNhbGxKU1Rlc3RPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQotewotICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxP
YmplY3QtPnZtKCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIHNpemVfdCBhcmdzQ291bnQg
PSBzdGQ6Om1pbjxzaXplX3Q+KDEsIGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKTsKLSAgICBp
ZiAoYXJnc0NvdW50ID09IDApIHsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIChjYWxsSlNUZXN0T2JqMyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKSk7Ci0g
ICAgfQotICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewotICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1
aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKGNhbGxKU1Rlc3RPYmoxKGxleGljYWxHbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSkpKTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChjYWxs
SlNUZXN0T2JqMihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKSk7Ci0gICAgfQotICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUp
OwotfQotCi1DYWxsRGF0YSBKU1Rlc3RPYmo6OmdldENhbGxEYXRhKEpTQ2VsbCopCi17Ci0gICAg
Q2FsbERhdGEgY2FsbERhdGE7Ci0gICAgY2FsbERhdGEudHlwZSA9IENhbGxEYXRhOjpUeXBlOjpO
YXRpdmU7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTVGVzdE9iajsKLSAg
ICByZXR1cm4gY2FsbERhdGE7Ci19Ci0KIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE9iaiogSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKICAgICByZXR1cm4ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpAQCAtOTI5MSwyOCArOTIyMCw2IEBAIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3QKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYnVmZmVyU291cmNlUGFy
YW1ldGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJidWZmZXJTb3Vy
Y2VQYXJhbWV0ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xlZ2FjeUNhbGxlck5hbWVkQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAg
IGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29w
ZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8g
cGFyYW0gPSBjb252ZXJ0PElETExvbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAu
dmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKLSAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKLSAgICBpbXBsLmxlZ2FjeUNhbGxl
ck5hbWVkKFdURk1vdmUocGFyYW0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotfQotCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbGVnYWN5Q2FsbGVyTmFtZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQotewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9sZWdhY3lD
YWxsZXJOYW1lZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibGVnYWN5
Q2FsbGVyTmFtZWQiKTsKLX0KLQogc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbkJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMjcxMTMxKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RW51bWVyYXRpb24uaCIKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCi0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ2FsbERhdGEuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsOCArNDQsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlND
OjpKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51
bWVyYXRpb25Nb2RlID0gSlNDOjpFbnVtZXJhdGlvbk1vZGUoKSk7Ci0gICAgc3RhdGljIEpTQzo6
Q2FsbERhdGEgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwqKTsKLQogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDOjpKU0NlbGwqKTsKIAogICAgIERFQ0xBUkVfSU5GTzsKQEAgLTg1LDcgKzgyLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgdGVzdFN0YXRpY0N1c3RvbVByb21p
c2VGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKICAgICBKU0M6OkpTVmFsdWUgdGVzdEN1c3RvbVJldHVybnNPd25Q
cm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJik7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgSlNDOjpJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
IHwgSlNDOjpPdmVycmlkZXNBbnlGb3JtT2ZHZXRQcm9wZXJ0eU5hbWVzIHwgSlNDOjpPdmVycmlk
ZXNHZXRDYWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJp
ZGVzQW55Rm9ybU9mR2V0UHJvcGVydHlOYW1lcyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90OwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPYmo+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbAkocmV2aXNpb24gMjcxMTMxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKIFsKICAgICBMZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXMsCiAgICAg
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwKKyAgICBDdXN0b21HZXRDYWxsRGF0YSwKICAgICBHZW5l
cmF0ZUlzUmVhY2hhYmxlPUltcGxPd25lck5vZGVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBd
IGludGVyZmFjZSBIVE1MQWxsQ29sbGVjdGlvbiB7CkBAIC0zMyw1ICszNCw1IEBACiAKICAgICBn
ZXR0ZXIgRWxlbWVudD8gKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtJbXBsZW1lbnRlZEFz
PW5hbWVkSXRlbU9ySXRlbXNdIGdldHRlciAoSFRNTENvbGxlY3Rpb24gb3IgRWxlbWVudCk/IG5h
bWVkSXRlbShbUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmddIERPTVN0cmluZyBuYW1lKTsKLSAg
ICBbSW1wbGVtZW50ZWRBcz1uYW1lZE9ySW5kZXhlZEl0ZW1Pckl0ZW1zLCBMZWdhY3lDYWxsZXJd
IChIVE1MQ29sbGVjdGlvbiBvciBFbGVtZW50KT8gaXRlbShvcHRpb25hbCBbQXRvbVN0cmluZ10g
RE9NU3RyaW5nIG5hbWVPckluZGV4KTsKKyAgICBbSW1wbGVtZW50ZWRBcz1uYW1lZE9ySW5kZXhl
ZEl0ZW1Pckl0ZW1zXSAoSFRNTENvbGxlY3Rpb24gb3IgRWxlbWVudCk/IGl0ZW0ob3B0aW9uYWwg
W0F0b21TdHJpbmddIERPTVN0cmluZyBuYW1lT3JJbmRleCk7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>