<?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>144285</bug_id>
          
          <creation_ts>2015-04-27 15:54:18 -0700</creation_ts>
          <short_desc>toString doesn&apos;t work on ES6 classes</short_desc>
          <delta_ts>2016-03-30 22:50:26 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>155336</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089235</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2015-04-27 15:54:18 -0700</bug_when>
    <thetext>Given

class C {}
print(C.toString());

this should print

&quot;class C {}&quot;

and not

&quot;function C() {}&quot;

This is important because it is a

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-function.prototype.tostring

&quot;If the object was defined using ECMAScript code and the returned string representation is not in the form of a MethodDefinition or GeneratorMethod then the representation must be such that if the string is evaluated, using eval in a lexical context that is equivalent to the lexical context used to create the original object, it will result in a new functionally equivalent object. In that case the returned source code must not mention freely any variables that were not mentioned freely by the original function’s source code, even if these “extra” names were originally in scope.&quot;

The behavior of a FunctionDeclaration/FunctionExpression is not equivalent to a ClassDeclaration/ClassExpression. For example try this:

class C {}
assertThrows(function() {
  eval(C.toString())();
}, TypeError); // Class constructors cannot be invoked without &apos;new&apos;

This fails in JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091298</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-03 17:14:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/20795345&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092036</commentid>
    <comment_count>2</comment_count>
      <attachid>252446</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-05-05 21:51:33 -0700</bug_when>
    <thetext>Created attachment 252446
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179334</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-30 22:50:26 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 155336 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252446</attachid>
            <date>2015-05-05 21:51:33 -0700</date>
            <delta_ts>2015-05-05 21:51:33 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip144285.patch</filename>
            <type>text/plain</type>
            <size>24315</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRh
Ymxlcy5jcHAKaW5kZXggMjQ1ZWZmMy4uM2QxM2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgQnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogewog
fQogCi1VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVh
dGVEZWZhdWx0Q29uc3RydWN0b3IoQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSkKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGlu
RXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1Y3RvcihDb25zdHJ1Y3RvcktpbmQgY29u
c3RydWN0b3JLaW5kLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCB1bnNpZ25lZCBjbGFzc1N0YXJ0
T2Zmc2V0LCB1bnNpZ25lZCBjbGFzc0VuZE9mZnNldCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBiYXNlQ29uc3RydWN0b3JDb2RlKEFTQ0lJTGl0ZXJhbCgiKGZ1
bmN0aW9uICgpIHsgfSkiKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gZGVyaXZlZENvbnN0cnVjdG9yQ29kZShBU0NJSUxpdGVyYWwoIihmdW5jdGlvbiAoKSB7IHN1
cGVyKC4uLmFyZ3VtZW50cyk7IH0pIikpOwpAQCAtNTIsMTUgKzUyLDE1IEBAIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1
Y3RvcihDb25zdHJ1CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmU6CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpCYXNlOgotICAgICAgICByZXR1cm4gY3Jl
YXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5h
bWUsIGNvbnN0cnVjdG9yS2luZCk7CisgICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwobWFrZVNvdXJjZShiYXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JL
aW5kLCBjbGFzc1N0YXJ0T2Zmc2V0LCBjbGFzc0VuZE9mZnNldCk7CiAgICAgY2FzZSBDb25zdHJ1
Y3RvcktpbmQ6OkRlcml2ZWQ6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwobWFrZVNvdXJjZShkZXJpdmVkQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JL
aW5kKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtYWtlU291cmNl
KGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIGNsYXNzU3Rh
cnRPZmZzZXQsIGNsYXNzRW5kT2Zmc2V0KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9yS2luZCBj
b25zdHJ1Y3RvcktpbmQpCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1
dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29kZSYgc291cmNl
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5k
LCB1bnNpZ25lZCBjbGFzc1N0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBjbGFzc0VuZE9mZnNldCkKIHsK
ICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lOwogICAgIFBhcnNl
ckVycm9yIGVycm9yOwpAQCAtMTAzLDYgKzEwMyw5IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBT
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICB9CiAgICAgYm9keS0+b3ZlcnJpZGVOYW1lKG5h
bWUpOworICAgIGlmIChpc1BhcnNpbmdEZWZhdWx0Q29uc3RydWN0b3IpCisgICAgICAgIGJvZHkt
PnNldENsYXNzT2Zmc2V0cyhjbGFzc1N0YXJ0T2Zmc2V0LCBjbGFzc0VuZE9mZnNldCk7CisKICAg
ICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmbV92bSwgc291cmNlLCBib2R5LCBraW5kLCBX
VEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKICAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPm1fbmFt
ZVZhbHVlLnNldChtX3ZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGpzU3RyaW5nKCZtX3ZtLCBuYW1l
LnN0cmluZygpKSk7CiAgICAgcmV0dXJuIGZ1bmN0aW9uRXhlY3V0YWJsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCBm
MGQ1ZjRlLi5lZGY1NWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC01MCw3ICs1MCw3IEBAIGNvbnN0IFNvdXJjZUNv
ZGUmIG5hbWUjI1NvdXJjZSgpIHsgcmV0dXJuIG1fIyNuYW1lIyNTb3VyY2U7IH0KICAgICBKU0Nf
Rk9SRUFDSF9CVUlMVElOKEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTKQogI3VuZGVmIEVYUE9T
RV9CVUlMVElOX1NPVVJDRVMKIAotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVh
dGVEZWZhdWx0Q29uc3RydWN0b3IoQ29uc3RydWN0b3JLaW5kLCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRGVmYXVsdENvbnN0
cnVjdG9yKENvbnN0cnVjdG9yS2luZCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgdW5zaWduZWQg
Y2xhc3NTdGFydE9mZnNldCwgdW5zaWduZWQgY2xhc3NFbmRPZmZzZXQpOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVycmlk
ZTsKQEAgLTU5LDkgKzU5LDkgQEAgcHJpdmF0ZToKIAogICAgIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1
dGFibGVJbnRlcm5hbChjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUpOworICAgICAg
ICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvZGUsIG5hbWUsIENvbnN0cnVjdG9y
S2luZDo6Tm9uZSwgMCwgMCk7CiAgICAgfQotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50
aWZpZXImLCBDb25zdHJ1Y3RvcktpbmQpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50
aWZpZXImLCBDb25zdHJ1Y3RvcktpbmQsIHVuc2lnbmVkIGNsYXNzU3RhcnRPZmZzZXQsIHVuc2ln
bmVkIGNsYXNzRW5kT2Zmc2V0KTsKIAogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01F
TUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpXAogICAgIFNvdXJjZUNvZGUgbV8jI25h
bWUjI1NvdXJjZTsgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcAppbmRleCA5MDEzOGY5Li5hNGI3Y2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTIyLDEwICsxMjIsMTAgQEAgQ1N0cmluZyBDb2Rl
QmxvY2s6OnNvdXJjZUNvZGVGb3JUb29scygpIGNvbnN0CiAgICAgdW5zaWduZWQgdW5saW5rZWRT
dGFydE9mZnNldCA9IHVubGlua2VkLT5zdGFydE9mZnNldCgpOwogICAgIHVuc2lnbmVkIGxpbmtl
ZFN0YXJ0T2Zmc2V0ID0gZXhlY3V0YWJsZS0+c291cmNlKCkuc3RhcnRPZmZzZXQoKTsKICAgICBp
bnQgZGVsdGEgPSBsaW5rZWRTdGFydE9mZnNldCAtIHVubGlua2VkU3RhcnRPZmZzZXQ7Ci0gICAg
dW5zaWduZWQgcmFuZ2VTdGFydCA9IGRlbHRhICsgdW5saW5rZWQtPnVubGlua2VkRnVuY3Rpb25O
YW1lU3RhcnQoKTsKKyAgICB1bnNpZ25lZCByYW5nZVN0YXJ0ID0gZGVsdGEgKyB1bmxpbmtlZC0+
cGFyYW1ldGVyc1N0YXJ0T2Zmc2V0KCk7CiAgICAgdW5zaWduZWQgcmFuZ2VFbmQgPSBkZWx0YSAr
IHVubGlua2VkLT5zdGFydE9mZnNldCgpICsgdW5saW5rZWQtPnNvdXJjZUxlbmd0aCgpOwogICAg
IHJldHVybiB0b0NTdHJpbmcoCi0gICAgICAgICJmdW5jdGlvbiAiLAorICAgICAgICAiZnVuY3Rp
b24gIiwgdW5saW5rZWQtPm5hbWUoKSwgIiAiLAogICAgICAgICBwcm92aWRlci0+c291cmNlKCku
aW1wbCgpLT51dGY4Rm9yUmFuZ2UocmFuZ2VTdGFydCwgcmFuZ2VFbmQgLSByYW5nZVN0YXJ0KSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRD
b2RlQmxvY2suY3BwCmluZGV4IDRhODE1MDEuLjFiYjMxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcApAQCAtOTgsNyAr
OTgsNiBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUoVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdAogICAgICwgbV9zb3VyY2VPdmVycmlkZShX
VEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKQogICAgICwgbV9maXJzdExpbmVPZmZzZXQobm9kZS0+
Zmlyc3RMaW5lKCkgLSBzb3VyY2UuZmlyc3RMaW5lKCkpCiAgICAgLCBtX2xpbmVDb3VudChub2Rl
LT5sYXN0TGluZSgpIC0gbm9kZS0+Zmlyc3RMaW5lKCkpCi0gICAgLCBtX3VubGlua2VkRnVuY3Rp
b25OYW1lU3RhcnQobm9kZS0+ZnVuY3Rpb25OYW1lU3RhcnQoKSAtIHNvdXJjZS5zdGFydE9mZnNl
dCgpKQogICAgICwgbV91bmxpbmtlZEJvZHlTdGFydENvbHVtbihub2RlLT5zdGFydENvbHVtbigp
KQogICAgICwgbV91bmxpbmtlZEJvZHlFbmRDb2x1bW4obV9saW5lQ291bnQgPyBub2RlLT5lbmRD
b2x1bW4oKSA6IG5vZGUtPmVuZENvbHVtbigpIC0gbm9kZS0+c3RhcnRDb2x1bW4oKSkKICAgICAs
IG1fc3RhcnRPZmZzZXQobm9kZS0+c291cmNlKCkuc3RhcnRPZmZzZXQoKSAtIHNvdXJjZS5zdGFy
dE9mZnNldCgpKQpAQCAtMTA2LDYgKzEwNSw4IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
OjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShWTSogdm0sIFN0cnVjdHVyZSogc3RydWN0CiAg
ICAgLCBtX3BhcmFtZXRlcnNTdGFydE9mZnNldChub2RlLT5wYXJhbWV0ZXJzU3RhcnQoKSkKICAg
ICAsIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0KG5vZGUtPmZ1bmN0aW9uS2V5d29yZFN0YXJ0
KCkpCiAgICAgLCBtX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQobm9kZS0+c3RhcnRTdGFydE9mZnNl
dCgpICsgbm9kZS0+c291cmNlKCkubGVuZ3RoKCkgLSAxKQorICAgICwgbV9jbGFzc1N0YXJ0T2Zm
c2V0KG5vZGUtPmNsYXNzU3RhcnRPZmZzZXQoKSkKKyAgICAsIG1fY2xhc3NFbmRPZmZzZXQobm9k
ZS0+Y2xhc3NFbmRPZmZzZXQoKSkKICAgICAsIG1fZmVhdHVyZXMoMCkKICAgICAsIG1faXNJblN0
cmljdENvbnRleHQobm9kZS0+aXNJblN0cmljdENvbnRleHQoKSkKICAgICAsIG1faGFzQ2FwdHVy
ZWRWYXJpYWJsZXMoZmFsc2UpCkBAIC0xNjEsNyArMTYyLDcgQEAgRnVuY3Rpb25FeGVjdXRhYmxl
KiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6bGluayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNv
ZGUmIG8KICAgICAgICAgfQogICAgIH0KIAotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogcmVzdWx0
ID0gRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUodm0sIGNvZGUsIHRoaXMsIGZpcnN0TGluZSwg
Zmlyc3RMaW5lICsgbGluZUNvdW50LCBzdGFydENvbHVtbiwgZW5kQ29sdW1uKTsKKyAgICBGdW5j
dGlvbkV4ZWN1dGFibGUqIHJlc3VsdCA9IEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKHZtLCBj
b2RlLCBvd25lclNvdXJjZS5wcm92aWRlcigpLCB0aGlzLCBmaXJzdExpbmUsIGZpcnN0TGluZSAr
IGxpbmVDb3VudCwgc3RhcnRDb2x1bW4sIGVuZENvbHVtbik7CiAgICAgaWYgKG92ZXJyaWRlTGlu
ZU51bWJlciAhPSAtMSkKICAgICAgICAgcmVzdWx0LT5zZXRPdmVycmlkZUxpbmVOdW1iZXIob3Zl
cnJpZGVMaW5lTnVtYmVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suaAppbmRleCBjYTkxZTRhLi4wYjY3MjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaApAQCAt
MTI2LDcgKzEyNiw2IEBAIHB1YmxpYzoKICAgICBGdW5jdGlvbk1vZGUgZnVuY3Rpb25Nb2RlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rpb25Nb2RlPihtX2Z1bmN0aW9uTW9kZSk7
IH0KICAgICBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8Q29uc3RydWN0b3JLaW5kPihtX2NvbnN0cnVjdG9yS2luZCk7IH0KIAotICAg
IHVuc2lnbmVkIHVubGlua2VkRnVuY3Rpb25OYW1lU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3Vu
bGlua2VkRnVuY3Rpb25OYW1lU3RhcnQ7IH0KICAgICB1bnNpZ25lZCB1bmxpbmtlZEJvZHlTdGFy
dENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fdW5saW5rZWRCb2R5U3RhcnRDb2x1bW47IH0KICAg
ICB1bnNpZ25lZCB1bmxpbmtlZEJvZHlFbmRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3VubGlu
a2VkQm9keUVuZENvbHVtbjsgfQogICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydE9mZnNldDsgfQpAQCAtMTM0LDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCBwYXJhbWV0ZXJzU3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRl
cnNTdGFydE9mZnNldDsgfQogICAgIHVuc2lnbmVkIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0OyB9CiAgICAgdW5zaWdu
ZWQgdHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZVByb2ZpbGlu
Z0VuZE9mZnNldDsgfQorICAgIHVuc2lnbmVkIGNsYXNzU3RhcnRPZmZzZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NsYXNzU3RhcnRPZmZzZXQ7IH0KKyAgICB1bnNpZ25lZCBjbGFzc0VuZE9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NFbmRPZmZzZXQ7IH0KIAogICAgIFVubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2sqIGNvZGVCbG9ja0ZvcigKICAgICAgICAgVk0mLCBjb25zdCBTb3VyY2VDb2Rl
JiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIApA
QCAtMTU4LDEwICsxNTksMTEgQEAgcHVibGljOgogICAgIHZvaWQgcmVjb3JkUGFyc2UoQ29kZUZl
YXR1cmVzIGZlYXR1cmVzLCBib29sIGhhc0NhcHR1cmVkVmFyaWFibGVzKQogICAgIHsKICAgICAg
ICAgbV9mZWF0dXJlcyA9IGZlYXR1cmVzOworICAgICAgICBBU1NFUlQobV9mZWF0dXJlcyA9PSBm
ZWF0dXJlcyk7CiAgICAgICAgIG1faGFzQ2FwdHVyZWRWYXJpYWJsZXMgPSBoYXNDYXB0dXJlZFZh
cmlhYmxlczsKICAgICB9CiAKLSAgICBDb2RlRmVhdHVyZXMgZmVhdHVyZXMoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVzOyB9CisgICAgQ29kZUZlYXR1cmVzIGZlYXR1cmVzKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q29kZUZlYXR1cmVzPihtX2ZlYXR1cmVzKTsgfQogICAgIGJvb2wg
aGFzQ2FwdHVyZWRWYXJpYWJsZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc0NhcHR1cmVkVmFyaWFi
bGVzOyB9CiAKICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
QEAgLTE4NCw3ICsxODYsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4g
bV9zb3VyY2VPdmVycmlkZTsKICAgICB1bnNpZ25lZCBtX2ZpcnN0TGluZU9mZnNldDsKICAgICB1
bnNpZ25lZCBtX2xpbmVDb3VudDsKLSAgICB1bnNpZ25lZCBtX3VubGlua2VkRnVuY3Rpb25OYW1l
U3RhcnQ7CiAgICAgdW5zaWduZWQgbV91bmxpbmtlZEJvZHlTdGFydENvbHVtbjsKICAgICB1bnNp
Z25lZCBtX3VubGlua2VkQm9keUVuZENvbHVtbjsKICAgICB1bnNpZ25lZCBtX3N0YXJ0T2Zmc2V0
OwpAQCAtMTkyLDkgKzE5MywxMCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcGFyYW1ldGVy
c1N0YXJ0T2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0Owog
ICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ0VuZE9mZnNldDsKKyAgICB1bnNpZ25lZCBtX2Ns
YXNzU3RhcnRPZmZzZXQ7CisgICAgdW5zaWduZWQgbV9jbGFzc0VuZE9mZnNldDsKIAotICAgIENv
ZGVGZWF0dXJlcyBtX2ZlYXR1cmVzOwotCisgICAgdW5zaWduZWQgbV9mZWF0dXJlcyA6IDk7CiAg
ICAgdW5zaWduZWQgbV9pc0luU3RyaWN0Q29udGV4dCA6IDE7CiAgICAgdW5zaWduZWQgbV9oYXND
YXB0dXJlZFZhcmlhYmxlcyA6IDE7CiAgICAgdW5zaWduZWQgbV9pc0J1aWx0aW5GdW5jdGlvbiA6
IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDJmMjFlNDkuLjJiNjM5MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCkBAIC0xNzc2LDkgKzE3NzYsOSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdE5ld0Z1bmN0aW9uRXhwcmVzc2lvbihSZWdpc3RlcklEKiByMCwgRnVuY0V4cAogICAgIHJl
dHVybiByMDsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdEZWZh
dWx0Q29uc3RydWN0b3IoUmVnaXN0ZXJJRCogZHN0LCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0
b3JLaW5kLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXROZXdEZWZhdWx0Q29uc3RydWN0b3IoUmVnaXN0ZXJJRCogZHN0LCBDb25zdHJ1
Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCB1bnNpZ25l
ZCBjbGFzc1N0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBjbGFzc0VuZE9mZnNldCkKIHsKLSAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG1fdm0tPmJ1aWx0aW5FeGVjdXRh
YmxlcygpLT5jcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IoY29uc3RydWN0b3JLaW5kLCBuYW1lKTsK
KyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG1fdm0tPmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IoY29uc3RydWN0b3JLaW5k
LCBuYW1lLCBjbGFzc1N0YXJ0T2Zmc2V0LCBjbGFzc0VuZE9mZnNldCk7CiAKICAgICB1bnNpZ25l
ZCBpbmRleCA9IG1fY29kZUJsb2NrLT5hZGRGdW5jdGlvbkV4cHIoZXhlY3V0YWJsZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAppbmRleCA5YWY4ZDRmLi40MTNkYjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC00NTMsNyAr
NDUzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5j
dGlvbihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW9uQm9keU5vZGUqKTsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdE5ld0Z1bmN0aW9uSW50ZXJuYWwoUmVnaXN0ZXJJRCogZHN0LCB1bnNpZ25lZCBp
bmRleCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5jdGlvbkV4cHJlc3Npb24oUmVn
aXN0ZXJJRCogZHN0LCBGdW5jRXhwck5vZGUqIGZ1bmMpOwotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0TmV3RGVmYXVsdENvbnN0cnVjdG9yKFJlZ2lzdGVySUQqIGRzdCwgQ29uc3RydWN0b3JLaW5k
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE5ld0Rl
ZmF1bHRDb25zdHJ1Y3RvcihSZWdpc3RlcklEKiBkc3QsIENvbnN0cnVjdG9yS2luZCwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgdW5zaWduZWQgY2xhc3NTdGFydE9mZnNldCwgdW5zaWduZWQgY2xh
c3NFbmRPZmZzZXQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3UmVnRXhwKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnRXhwKik7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE1vdmVMaW5rVGlt
ZUNvbnN0YW50KFJlZ2lzdGVySUQqIGRzdCwgTGlua1RpbWVDb25zdGFudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXgg
MDI5MGM4MS4uZmEwOGJmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjkyMiwxMSArMjkyMiwxNiBAQCBSZWdpc3Rl
cklEKiBDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgUmVnaXN0ZXJJRAogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBjb25zdHJ1Y3RvcjsKIAog
ICAgIC8vIEZJWE1FOiBNYWtlIHRoZSBwcm90b3R5cGUgbm9uLWNvbmZpZ3VyYWJsZSAmIG5vbi13
cml0YWJsZS4KLSAgICBpZiAobV9jb25zdHJ1Y3RvckV4cHJlc3Npb24pCisgICAgaWYgKG1fY29u
c3RydWN0b3JFeHByZXNzaW9uKSB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fY29uc3RydWN0
b3JFeHByZXNzaW9uLT5pc0Z1bmNFeHByTm9kZSgpKTsKKyAgICAgICAgRnVuY3Rpb25Cb2R5Tm9k
ZSogYm9keSA9IHN0YXRpY19jYXN0PEZ1bmNFeHByTm9kZSo+KG1fY29uc3RydWN0b3JFeHByZXNz
aW9uKS0+Ym9keSgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChib2R5KTsKKyAgICAgICAgYm9k
eS0+c2V0Q2xhc3NPZmZzZXRzKG1fc3RhcnRPZmZzZXQsIG1fZW5kT2Zmc2V0KTsKKwogICAgICAg
ICBjb25zdHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fY29uc3RydWN0b3JFeHBy
ZXNzaW9uKTsKLSAgICBlbHNlIHsKKyAgICB9IGVsc2UgewogICAgICAgICBjb25zdHJ1Y3RvciA9
IGdlbmVyYXRvci5lbWl0TmV3RGVmYXVsdENvbnN0cnVjdG9yKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksCi0gICAgICAgICAgICBtX2NsYXNzSGVyaXRhZ2UgPyBDb25zdHJ1Y3Rvcktp
bmQ6OkRlcml2ZWQgOiBDb25zdHJ1Y3RvcktpbmQ6OkJhc2UsIG1fbmFtZSk7CisgICAgICAgICAg
ICBtX2NsYXNzSGVyaXRhZ2UgPyBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQgOiBDb25zdHJ1Y3Rv
cktpbmQ6OkJhc2UsIG1fbmFtZSwgbV9zdGFydE9mZnNldCwgbV9lbmRPZmZzZXQpOwogICAgIH0K
IAogICAgIGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZXMgPSBnZW5lcmF0b3IucHJvcGVydHlOYW1l
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAppbmRleCBhYTcz
NzA1Li5kYzM5ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FT
VEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aApAQCAtMzMwLDEwICszMzAsMTEgQEAgcHVibGljOgogICAgIH0KIAogI2lmIEVOQUJMRShFUzZf
Q0xBU1NfU1lOVEFYKQotICAgIENsYXNzRXhwck5vZGUqIGNyZWF0ZUNsYXNzRXhwcihjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeHByZXNz
aW9uTm9kZSogY29uc3RydWN0b3IsCisgICAgQ2xhc3NFeHByTm9kZSogY3JlYXRlQ2xhc3NFeHBy
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1
bnNpZ25lZCBlbmRPZmZzZXQsCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4cHJl
c3Npb25Ob2RlKiBjb25zdHJ1Y3RvciwKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHBhcmVudENs
YXNzLCBQcm9wZXJ0eUxpc3ROb2RlKiBpbnN0YW5jZU1ldGhvZHMsIFByb3BlcnR5TGlzdE5vZGUq
IHN0YXRpY01ldGhvZHMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5h
KSBDbGFzc0V4cHJOb2RlKGxvY2F0aW9uLCBuYW1lLCBjb25zdHJ1Y3RvciwgcGFyZW50Q2xhc3Ms
IGluc3RhbmNlTWV0aG9kcywgc3RhdGljTWV0aG9kcyk7CisgICAgICAgIHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIENsYXNzRXhwck5vZGUobG9jYXRpb24sIHN0YXJ0T2Zmc2V0LCBlbmRPZmZz
ZXQsIG5hbWUsIGNvbnN0cnVjdG9yLCBwYXJlbnRDbGFzcywgaW5zdGFuY2VNZXRob2RzLCBzdGF0
aWNNZXRob2RzKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCA4OWI5MjhlLi4yZTIwMDI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtODQ5
LDggKzg0OSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCi0gICAgaW5saW5l
IENsYXNzRXhwck5vZGU6OkNsYXNzRXhwck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhwcmVzc2lvbk5vZGUqIGNvbnN0cnVjdG9y
RXhwcmVzc2lvbiwgRXhwcmVzc2lvbk5vZGUqIGNsYXNzSGVyaXRhZ2UsIFByb3BlcnR5TGlzdE5v
ZGUqIGluc3RhbmNlTWV0aG9kcywgUHJvcGVydHlMaXN0Tm9kZSogc3RhdGljTWV0aG9kcykKKyAg
ICBpbmxpbmUgQ2xhc3NFeHByTm9kZTo6Q2xhc3NFeHByTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLAorICAgICAgICBFeHByZXNzaW9uTm9kZSogY29uc3RydWN0
b3JFeHByZXNzaW9uLCBFeHByZXNzaW9uTm9kZSogY2xhc3NIZXJpdGFnZSwgUHJvcGVydHlMaXN0
Tm9kZSogaW5zdGFuY2VNZXRob2RzLCBQcm9wZXJ0eUxpc3ROb2RlKiBzdGF0aWNNZXRob2RzKQog
ICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fc3RhcnRPZmZz
ZXQoc3RhcnRPZmZzZXQpCisgICAgICAgICwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KQogICAgICAg
ICAsIG1fbmFtZShuYW1lKQogICAgICAgICAsIG1fY29uc3RydWN0b3JFeHByZXNzaW9uKGNvbnN0
cnVjdG9yRXhwcmVzc2lvbikKICAgICAgICAgLCBtX2NsYXNzSGVyaXRhZ2UoY2xhc3NIZXJpdGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA3ODQ4MTg0Li5hYWUyOGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xNjY4LDYgKzE2NjgsMTMg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBzdGFydFN0YXJ0T2Zmc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9zdGFydFN0YXJ0T2Zmc2V0OyB9CiAgICAgICAgIGJvb2wgaXNJblN0cmljdENv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9CiAgICAgICAgIENv
bnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb25z
dHJ1Y3RvcktpbmQ+KG1fY29uc3RydWN0b3JLaW5kKTsgfQorICAgICAgICB2b2lkIHNldENsYXNz
T2Zmc2V0cyh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQorICAgICAgICB7CisgICAgICAg
ICAgICBtX2NsYXNzU3RhcnRPZmZzZXQgPSBzdGFydDsKKyAgICAgICAgICAgIG1fY2xhc3NFbmRP
ZmZzZXQgPSBlbmQ7CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgY2xhc3NTdGFydE9mZnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NTdGFydE9mZnNldDsgfQorICAgICAgICB1bnNpZ25l
ZCBjbGFzc0VuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NFbmRPZmZzZXQ7IH0KIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgSWRlbnRpZmllciBtX2lkZW50OwpAQCAtMTY4MSw2ICsx
Njg4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBtX3BhcmFtZXRlcnNTdGFydDsK
ICAgICAgICAgU291cmNlQ29kZSBtX3NvdXJjZTsKICAgICAgICAgaW50IG1fc3RhcnRTdGFydE9m
ZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9jbGFzc1N0YXJ0T2Zmc2V0ID0gMDsKKyAgICAgICAg
dW5zaWduZWQgbV9jbGFzc0VuZE9mZnNldCA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG1faXNJblN0
cmljdENvbnRleHQgOiAxOwogICAgICAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2luZCA6IDI7
CiAgICAgfTsKQEAgLTE3MjksNyArMTczOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJM
RShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIGNsYXNzIENsYXNzRXhwck5vZGUgZmluYWwgOiBwdWJs
aWMgRXhwcmVzc2lvbk5vZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgQ2xhc3NFeHByTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUq
IGNvbnN0cnVjdG9yRXhwcmVzc3Npb24sCisgICAgICAgIENsYXNzRXhwck5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwg
Y29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiBjb25zdHJ1Y3RvckV4cHJlc3NzaW9u
LAogICAgICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHBhcmVudENsYXNzLCBQcm9wZXJ0eUxpc3RO
b2RlKiBpbnN0YW5jZU1ldGhvZHMsIFByb3BlcnR5TGlzdE5vZGUqIHN0YXRpY01ldGhvZHMpOwog
CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KQEAg
LTE3MzcsNiArMTc0Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAorICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0T2Zmc2V0
OworICAgICAgICB1bnNpZ25lZCBtX2VuZE9mZnNldDsKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9uYW1lOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9jb25zdHJ1Y3RvckV4cHJlc3Np
b247CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2NsYXNzSGVyaXRhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNDliY2Q5Ni4uZmZjNzkyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTUwMSw2ICsxNTAxLDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRl
cj4gVHJlZUNsYXNzRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyhUcmVl
QnVpbGRlciYgY29udGV4dCwgRnVuY3Rpb25SZXF1aXJlbWVudHMgcmVxdWlyZW1lbnRzLCBQYXJz
ZXJDbGFzc0luZm88VHJlZUJ1aWxkZXI+JiBpbmZvKQogewogICAgIEFTU0VSVChtYXRjaChDTEFT
U1RPS0VOKSk7CisgICAgdW5zaWduZWQgY2xhc3NTdGFydE9mZnNldCA9IG1fdG9rZW4ubV9sb2Nh
dGlvbi5zdGFydE9mZnNldDsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2Nh
dGlvbigpKTsKICAgICBuZXh0KCk7CiAKQEAgLTE2MTcsNyArMTYxOCw4IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNzRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VDbGFzcyhUCiAgICAgZmFpbElmRmFsc2UocG9wU2NvcGUoY2xhc3NTY29wZSwgVHJlZUJ1
aWxkZXI6Ok5lZWRzRnJlZVZhcmlhYmxlSW5mbyksICJQYXJzZXIgZXJyb3IiKTsKICAgICBjb25z
dW1lT3JGYWlsKENMT1NFQlJBQ0UsICJFeHBlY3RlZCBhIGNsb3NpbmcgJ30nIGFmdGVyIGEgY2xh
c3MgYm9keSIpOwogCi0gICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQ2xhc3NFeHByKGxvY2F0aW9u
LCAqY2xhc3NOYW1lLCBjb25zdHJ1Y3RvciwgcGFyZW50Q2xhc3MsIGluc3RhbmNlTWV0aG9kcywg
c3RhdGljTWV0aG9kcyk7CisgICAgdW5zaWduZWQgY2xhc3NFbmRPZmZzZXQgPSBtX3Rva2VuLm1f
bG9jYXRpb24uc3RhcnRPZmZzZXQ7CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQ2xhc3NFeHBy
KGxvY2F0aW9uLCBjbGFzc1N0YXJ0T2Zmc2V0LCBjbGFzc0VuZE9mZnNldCwgKmNsYXNzTmFtZSwg
Y29uc3RydWN0b3IsIHBhcmVudENsYXNzLCBpbnN0YW5jZU1ldGhvZHMsIHN0YXRpY01ldGhvZHMp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmgKaW5kZXggNTU0ZTVkZi4uOWY1OTlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAg
RXhwcmVzc2lvblR5cGUgY3JlYXRlQXNzaWduUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvblR5cGUsIGludCwgaW50LCBpbnQpIHsgcmV0
dXJuIEFzc2lnbm1lbnRFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlRW1wdHlWYXJF
eHByZXNzaW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJl
dHVybiBBc3NpZ25tZW50RXhwcjsgfQogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQotICAg
IENsYXNzRXhwcmVzc2lvbiBjcmVhdGVDbGFzc0V4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
Y29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgUHJvcGVy
dHlMaXN0LCBQcm9wZXJ0eUxpc3QpIHsgcmV0dXJuIENsYXNzRXhwcjsgfQorICAgIENsYXNzRXhw
cmVzc2lvbiBjcmVhdGVDbGFzc0V4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgdW5zaWduZWQs
IHVuc2lnbmVkLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25U
eXBlLCBQcm9wZXJ0eUxpc3QsIFByb3BlcnR5TGlzdCkgeyByZXR1cm4gQ2xhc3NFeHByOyB9CiAj
ZW5kaWYKICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVGdW5jdGlvbkV4cHIoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPFN5bnRheENoZWNrZXI+JikgeyBy
ZXR1cm4gRnVuY3Rpb25FeHByOyB9CiAgICAgaW50IGNyZWF0ZUZ1bmN0aW9uQm9keShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCwgYm9vbCwg
aW50LCBpbnQsIGludCwgQ29uc3RydWN0b3JLaW5kKSB7IHJldHVybiBGdW5jdGlvbkJvZHlSZXN1
bHQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggMzk0ZGIwZS4uMDc5OWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKQEAgLTM5NSwxMSArMzk1LDEyIEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFi
bGU6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogCiBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJs
ZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9uRXhlY3V0YWJsZSkgfTsK
IAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIAorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFi
bGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFNvdXJjZVByb3ZpZGVyKiBvd25l
clNvdXJjZVByb3ZpZGVyLAogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtl
ZEV4ZWN1dGFibGUsIHVuc2lnbmVkIGZpcnN0TGluZSwgCiAgICAgdW5zaWduZWQgbGFzdExpbmUs
IHVuc2lnbmVkIHN0YXJ0Q29sdW1uLCB1bnNpZ25lZCBlbmRDb2x1bW4pCiAgICAgOiBTY3JpcHRF
eGVjdXRhYmxlKHZtLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgdm0sIHNvdXJj
ZSwgdW5saW5rZWRFeGVjdXRhYmxlLT5pc0luU3RyaWN0Q29udGV4dCgpKQogICAgICwgbV91bmxp
bmtlZEV4ZWN1dGFibGUodm0sIHRoaXMsIHVubGlua2VkRXhlY3V0YWJsZSkKKyAgICAsIG1fb3du
ZXJTb3VyY2VQcm92aWRlcihvd25lclNvdXJjZVByb3ZpZGVyKQogewogICAgIFJFTEVBU0VfQVNT
RVJUKCFzb3VyY2UuaXNOdWxsKCkpOwogICAgIEFTU0VSVChzb3VyY2UubGVuZ3RoKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IGU2NDQwYTAuLmFh
NjM2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAg
LTM4OCw2ICszODgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWNvcmRQYXJzZShDb2RlRmVhdHVy
ZXMgZmVhdHVyZXMsIGJvb2wgaGFzQ2FwdHVyZWRWYXJpYWJsZXMsIGludCBmaXJzdExpbmUsIGlu
dCBsYXN0TGluZSwgdW5zaWduZWQgc3RhcnRDb2x1bW4sIHVuc2lnbmVkIGVuZENvbHVtbikKICAg
ICB7CiAgICAgICAgIG1fZmVhdHVyZXMgPSBmZWF0dXJlczsKKyAgICAgICAgQVNTRVJUKG1fZmVh
dHVyZXMgPT0gZmVhdHVyZXMpOwogICAgICAgICBtX2hhc0NhcHR1cmVkVmFyaWFibGVzID0gaGFz
Q2FwdHVyZWRWYXJpYWJsZXM7CiAgICAgICAgIG1fZmlyc3RMaW5lID0gZmlyc3RMaW5lOwogICAg
ICAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7CkBAIC00MjgsOSArNDI5LDkgQEAgcHJvdGVjdGVk
OgogICAgIH0KIAogICAgIFNvdXJjZUNvZGUgbV9zb3VyY2U7Ci0gICAgQ29kZUZlYXR1cmVzIG1f
ZmVhdHVyZXM7Ci0gICAgYm9vbCBtX2hhc0NhcHR1cmVkVmFyaWFibGVzOwotICAgIGJvb2wgbV9u
ZXZlcklubGluZTsKKyAgICB1bnNpZ25lZCBtX2ZlYXR1cmVzIDogOTsKKyAgICB1bnNpZ25lZCBt
X2hhc0NhcHR1cmVkVmFyaWFibGVzIDogMTsKKyAgICB1bnNpZ25lZCBtX25ldmVySW5saW5lIDog
MTsKICAgICBib29sIG1fZGlkVHJ5VG9FbnRlckluTG9vcDsKICAgICBpbnQgbV9vdmVycmlkZUxp
bmVOdW1iZXI7CiAgICAgaW50IG1fZmlyc3RMaW5lOwpAQCAtNTQ5LDEwICs1NTAsMTEgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBGdW5jdGlv
bkV4ZWN1dGFibGUqIGNyZWF0ZSgKLSAgICAgICAgVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtlZEV4ZWN1dGFibGUsIAor
ICAgICAgICBWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgU291cmNlUHJvdmlkZXIq
IG93bmVyU291cmNlUHJvdmlkZXIsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtl
ZEV4ZWN1dGFibGUsIAogICAgICAgICB1bnNpZ25lZCBmaXJzdExpbmUsIHVuc2lnbmVkIGxhc3RM
aW5lLCB1bnNpZ25lZCBzdGFydENvbHVtbiwgdW5zaWduZWQgZW5kQ29sdW1uKQogICAgIHsKLSAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPih2bS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxl
KHZtLCBzb3VyY2UsIHVubGlua2VkRXhlY3V0YWJsZSwgZmlyc3RMaW5lLCBsYXN0TGluZSwgc3Rh
cnRDb2x1bW4sIGVuZENvbHVtbik7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4odm0u
aGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZSh2bSwgc291cmNlLCBvd25lclNvdXJjZVByb3ZpZGVy
LAorICAgICAgICAgICAgdW5saW5rZWRFeGVjdXRhYmxlLCBmaXJzdExpbmUsIGxhc3RMaW5lLCBz
dGFydENvbHVtbiwgZW5kQ29sdW1uKTsKICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRp
b24odm0pOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CkBAIC02NTQsNiArNjU2
LDggQEAgcHVibGljOgogICAgICAgICBtX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQgPSB0eXBlUHJv
ZmlsaW5nRW5kT2Zmc2V0OwogICAgIH0KIAorICAgIFNvdXJjZVByb3ZpZGVyKiBvd25lclNvdXJj
ZVByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9vd25lclNvdXJjZVByb3ZpZGVyLmdldCgpOyB9
CisKICAgICBERUNMQVJFX0lORk87CiAgICAgICAgIAogICAgIHZvaWQgdW5saW5rQ2FsbHMoKTsK
QEAgLTY2NCw3ICs2NjgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKAotICAgICAgICBWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSosIHVuc2lnbmVkIGZpcnN0TGluZSwgCisgICAgICAgIFZNJiwgY29uc3QgU291
cmNlQ29kZSYsIFNvdXJjZVByb3ZpZGVyKiwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqLCB1
bnNpZ25lZCBmaXJzdExpbmUsIAogICAgICAgICB1bnNpZ25lZCBsYXN0TGluZSwgdW5zaWduZWQg
c3RhcnRDb2x1bW4sIHVuc2lnbmVkIGVuZENvbHVtbik7CiAgICAgCiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYpOwpAQCAtNjg4LDYgKzY5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFR5
cGVTZXQ+IG1fcmV0dXJuU3RhdGVtZW50VHlwZVNldDsKICAgICB1bnNpZ25lZCBtX3BhcmFtZXRl
cnNTdGFydE9mZnNldDsKICAgICBXcml0ZUJhcnJpZXI8SW5mZXJyZWRWYWx1ZT4gbV9zaW5nbGV0
b25GdW5jdGlvbjsKKyAgICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IG1fb3duZXJTb3VyY2VQcm92
aWRlcjsKIH07CiAKIGlubGluZSB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGVWaXJ0dWFs
KEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IGQwODJiMTIuLjkxMjZiMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5jcHAKQEAgLTg4LDYgKzg4LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgImZ1bmN0
aW9uICIsIGZ1bmN0aW9uLT5uYW1lKGV4ZWMpLCAiKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0i
KSk7CiAKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZnVuY3Rpb24t
PmpzRXhlY3V0YWJsZSgpOworICAgICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogdW5s
aW5rZWRFeGVjdXRhYmxlID0gZXhlY3V0YWJsZS0+dW5saW5rZWRFeGVjdXRhYmxlKCk7CisgICAg
ICAgIGlmICh1bmxpbmtlZEV4ZWN1dGFibGUtPmNvbnN0cnVjdG9yS2luZCgpICE9IENvbnN0cnVj
dG9yS2luZDo6Tm9uZSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IGV4ZWN1dGFibGUt
Pm93bmVyU291cmNlUHJvdmlkZXIoKS0+Z2V0UmFuZ2UodW5saW5rZWRFeGVjdXRhYmxlLT5jbGFz
c1N0YXJ0T2Zmc2V0KCksIHVubGlua2VkRXhlY3V0YWJsZS0+Y2xhc3NFbmRPZmZzZXQoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyhleGVj
LCBzb3VyY2UpKTsKKyAgICAgICAgfQorCiAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBleGVjdXRh
YmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLT5nZXRSYW5nZSgKICAgICAgICAgICAgIGV4ZWN1dGFi
bGUtPnBhcmFtZXRlcnNTdGFydE9mZnNldCgpLAogICAgICAgICAgICAgZXhlY3V0YWJsZS0+dHlw
ZVByb2ZpbGluZ0VuZE9mZnNldCgpICsgMSk7IC8vIFR5cGUgcHJvZmlsaW5nIGVuZCBvZmZzZXQg
aXMgdGhlIGNoYXJhY3RlciBiZWZvcmUgdGhlICd9Jy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>