<?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>169293</bug_id>
          
          <creation_ts>2017-03-07 11:01:34 -0800</creation_ts>
          <short_desc>Revert changes in bug#160417 about extending `null` not being a derived class</short_desc>
          <delta_ts>2017-06-20 03:30:07 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="GSkachkov">gskachkov</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284420</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-07 11:01:34 -0800</bug_when>
    <thetext>See:
https://bugs.webkit.org/show_bug.cgi?id=160417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318770</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-13 13:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/32746950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319509</commentid>
    <comment_count>2</comment_count>
      <attachid>312963</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-06-15 02:08:02 -0700</bug_when>
    <thetext>Created attachment 312963
Patch

Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319675</commentid>
    <comment_count>3</comment_count>
      <attachid>312963</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-15 13:14:11 -0700</bug_when>
    <thetext>Comment on attachment 312963
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=312963&amp;action=review

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:-3765
&gt; -            Ref&lt;Label&gt; superclassIsNullLabel = generator.newLabel();
&gt; -            Ref&lt;Label&gt; done = generator.newLabel();
&gt; -
&gt; -            generator.emitJumpIfTrue(generator.emitUnaryOp(op_eq_null, tempRegister.get(), superclass.get()), superclassIsNullLabel.get());
&gt;              generator.emitNewDefaultConstructor(constructor.get(), ConstructorKind::Extends, m_name, ecmaName(), m_classSource);
&gt;              generator.emitLoad(tempRegister.get(), jsBoolean(true));
&gt; -            generator.emitJump(done.get());
&gt; -            generator.emitLabel(superclassIsNullLabel.get());
&gt; -            generator.emitNewDefaultConstructor(constructor.get(), ConstructorKind::Base, m_name, ecmaName(), m_classSource);
&gt; -            generator.emitLoad(tempRegister.get(), jsBoolean(false));
&gt; -            generator.emitLabel(done.get());

Lets move back  to determining this property statically. There is no need for a putById here, since it&apos;s always true!  Also, things that get this property should also be able to determine its value statically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319677</commentid>
    <comment_count>4</comment_count>
      <attachid>312963</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-15 13:15:42 -0700</bug_when>
    <thetext>Comment on attachment 312963
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=312963&amp;action=review

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:-3765
&gt;&gt; -            generator.emitLabel(done.get());
&gt; 
&gt; Lets move back  to determining this property statically. There is no need for a putById here, since it&apos;s always true!  Also, things that get this property should also be able to determine its value statically.

Also, there is the case above you didn&apos;t change. Perhaps we don&apos;t have tests for this. Please add them if this is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320500</commentid>
    <comment_count>5</comment_count>
      <attachid>313228</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-06-18 09:19:41 -0700</bug_when>
    <thetext>Created attachment 313228
Patch

Patch with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320764</commentid>
    <comment_count>6</comment_count>
      <attachid>313228</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-19 11:57:02 -0700</bug_when>
    <thetext>Comment on attachment 313228
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=313228&amp;action=review

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3745
&gt; +        constructor = generator.emitNewDefaultConstructor(generator.finalDestination(dst), m_classHeritage ? ConstructorKind::Extends : ConstructorKind::Base, m_name, ecmaName(), m_classSource);

style nit: no braces around &quot;else&quot; since this is just one line now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321083</commentid>
    <comment_count>7</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-06-20 03:29:55 -0700</bug_when>
    <thetext>Issue is closed.
Patch landed by r218581 commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312963</attachid>
            <date>2017-06-15 02:08:02 -0700</date>
            <delta_ts>2017-06-18 09:19:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169293-20170615120800.patch</filename>
            <type>text/plain</type>
            <size>4919</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YmUxN2QxYzk0OTY3ZTA3MGMzYmViOGY3YTgyNGFhYWE4MTkwMTIzLi43NWZhYmRiMGY2YWFkNTUz
NGQyZDg3YjU1OWEzMjU1NWFiNmQzZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0wNi0xNSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZlcnQgY2hhbmdlcyBpbiBidWcjMTYwNDE3IGFib3V0IGV4
dGVuZGluZyBgbnVsbGAgbm90IGJlaW5nIGEgZGVyaXZlZCBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjkzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlcyBpbiBidWcj
MTYwNDE3IGFib3V0IGV4dGVuZGluZyBgbnVsbGAgbm90IGJlaW5nIGEgZGVyaXZlZCBjbGFzcyAK
KyAgICAgICAgYWNjb3JkaW5nIHRvIGNoYW5nZXMgaW4gc3BlYzoKKyAgICAgICAgaHR0cHM6Ly9n
aXRodWIuY29tL3RjMzkvZWNtYTI2Mi9jb21taXQvYzU3ZWY5NWM0NWEzNzFmOWM5NDg1YmIxYzM4
ODFkYmRjMDQ1MjRhMgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6
CisgICAgICAgIChKU0M6OkNsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29kZSk6CisKIDIwMTctMDYt
MTAgIE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAg
V2UgaW5jb3JyZWN0bHkgYWxsb3cgZXNjYXBlZCBjaGFyYWN0ZXJzIGluIGtleXdvcmQgdG9rZW5z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKaW5kZXggOTcwYjQ3Y2QyMjQ5ZTg2ZTJmMTFiZjEzYjc1ZTc3YTc3NzBkNTk0Zi4uYTg5
NTViM2NlODJhZGYzYTRhZmZkZWYyMmQ0YjRjOGQ4MzUzZDY4OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzc1Miwx
NyArMzc1Miw4IEBAIFJlZ2lzdGVySUQqIENsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklECiAgICAgICAgIGlmIChtX2NsYXNz
SGVyaXRhZ2UpIHsKICAgICAgICAgICAgIGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9yLmZpbmFsRGVz
dGluYXRpb24oZHN0KTsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0ZW1wUmVnaXN0
ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0gICAgICAgICAgICBSZWY8TGFiZWw+IHN1
cGVyY2xhc3NJc051bGxMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwotICAgICAgICAgICAg
UmVmPExhYmVsPiBkb25lID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Ci0KLSAgICAgICAgICAgIGdl
bmVyYXRvci5lbWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdFVuYXJ5T3Aob3BfZXFfbnVsbCwg
dGVtcFJlZ2lzdGVyLmdldCgpLCBzdXBlcmNsYXNzLmdldCgpKSwgc3VwZXJjbGFzc0lzTnVsbExh
YmVsLmdldCgpKTsKICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TmV3RGVmYXVsdENvbnN0cnVj
dG9yKGNvbnN0cnVjdG9yLmdldCgpLCBDb25zdHJ1Y3RvcktpbmQ6OkV4dGVuZHMsIG1fbmFtZSwg
ZWNtYU5hbWUoKSwgbV9jbGFzc1NvdXJjZSk7CiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExv
YWQodGVtcFJlZ2lzdGVyLmdldCgpLCBqc0Jvb2xlYW4odHJ1ZSkpOwotICAgICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wKGRvbmUuZ2V0KCkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChzdXBlcmNsYXNzSXNOdWxsTGFiZWwuZ2V0KCkpOwotICAgICAgICAgICAgZ2VuZXJhdG9y
LmVtaXROZXdEZWZhdWx0Q29uc3RydWN0b3IoY29uc3RydWN0b3IuZ2V0KCksIENvbnN0cnVjdG9y
S2luZDo6QmFzZSwgbV9uYW1lLCBlY21hTmFtZSgpLCBtX2NsYXNzU291cmNlKTsKLSAgICAgICAg
ICAgIGdlbmVyYXRvci5lbWl0TG9hZCh0ZW1wUmVnaXN0ZXIuZ2V0KCksIGpzQm9vbGVhbihmYWxz
ZSkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChkb25lLmdldCgpKTsKICAgICAg
ICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChjb25zdHJ1Y3Rvci5nZXQoKSwgZ2Vu
ZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5pc0Rlcml2ZWRDb25zdHJ1Y3Rv
clByaXZhdGVOYW1lKCksIHRlbXBSZWdpc3Rlci5nZXQoKSwgUHJvcGVydHlOb2RlOjpVbmtub3du
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9y
LmVtaXROZXdEZWZhdWx0Q29uc3RydWN0b3IoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0
KSwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNTU2NWY2NjgwNjY0N2JhNTA2NmU5MmYwN2ZjYWI4YzgzYTlmOTdmNy4uOTU0OGI3N2E3NmYy
Yzc0ZWE2NGNjZGJkMjE4Y2FiZWM4MDhmYWM5ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNi0xNSAg
T2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZl
cnQgY2hhbmdlcyBpbiBidWcjMTYwNDE3IGFib3V0IGV4dGVuZGluZyBgbnVsbGAgbm90IGJlaW5n
IGEgZGVyaXZlZCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY5MjkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdHJlc3MvY2xhc3MtZGVyaXZlZC1mcm9tLW51bGwuanM6CisgICAgICAgIChh
c3NlcnRUaHJvdyk6CisKIDIwMTctMDYtMTAgIE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtv
dkBnbWFpbC5jb20+CiAKICAgICAgICAgV2UgaW5jb3JyZWN0bHkgYWxsb3cgZXNjYXBlZCBjaGFy
YWN0ZXJzIGluIGtleXdvcmQgdG9rZW5zCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jbGFz
cy1kZXJpdmVkLWZyb20tbnVsbC5qcyBiL0pTVGVzdHMvc3RyZXNzL2NsYXNzLWRlcml2ZWQtZnJv
bS1udWxsLmpzCmluZGV4IDBmZTYxYmU1ZGExODUzZTY0NDJiMWQxMWI4YWI3YTZhODJhZjg2Yjcu
LmVmNTNiMjIxZTQ3M2E5YmYyOTJlODZhZTUyNDFmOTUzYmQ4MTFhNTIgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2NsYXNzLWRlcml2ZWQtZnJvbS1udWxsLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2NsYXNzLWRlcml2ZWQtZnJvbS1udWxsLmpzCkBAIC0zLDYgKzMsMjAgQEAgZnVuY3Rpb24g
YXNzZXJ0KGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIikKIH0KIAorZnVuY3Rp
b24gYXNzZXJ0VGhyb3coY2IsIGVycm9yTWVzc2FnZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0
cnkgeworICAgICAgICBjYigpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBl
OworICAgIH0KKyAgICBpZiAoIWVycm9yIHx8ICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIAor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGlzIGV4cGVjdGVkISIpOworCisgICAgaWYg
KGVycm9yLnRvU3RyaW5nKCkgIT09IGVycm9yTWVzc2FnZSkgCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRXJyb3I6IGAiICsgZXJyb3JNZXNzYWdlICsgImAgaXMgZXhwZWN0ZWQsIGJ1dCB3YXMg
YCIgKyBlcnJvci50b1N0cmluZygpICsgImAiKTsKK30KKwogZnVuY3Rpb24gdGVzdChmLCBjb3Vu
dCA9IDEwMDApIHsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspCiAgICAgICAg
IGYoKTsKQEAgLTEwLDggKzI0LDcgQEAgZnVuY3Rpb24gdGVzdChmLCBjb3VudCA9IDEwMDApIHsK
IAogZnVuY3Rpb24gdGVzdDEoKSB7CiAgICAgY2xhc3MgQyBleHRlbmRzIG51bGwgeyB9Ci0gICAg
YXNzZXJ0KChuZXcgQykgaW5zdGFuY2VvZiBDKTsKLSAgICBhc3NlcnQoISgobmV3IEMpIGluc3Rh
bmNlb2YgT2JqZWN0KSk7CisgICAgYXNzZXJ0VGhyb3coKCkgPT4gKG5ldyBDKSwgJ1R5cGVFcnJv
cjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgXCdzdXBlciguLi5h
cmdzKVwnKScpOwogICAgIGFzc2VydChSZWZsZWN0LmdldFByb3RvdHlwZU9mKEMucHJvdG90eXBl
KSA9PT0gbnVsbCk7CiAKICAgICBsZXQgbyA9IHt9CkBAIC0zNyw4ICs1MCw3IEBAIHRlc3QodGVz
dDEpOwogZnVuY3Rpb24ganNOdWxsKCkgeyByZXR1cm4gbnVsbDsgfQogZnVuY3Rpb24gdGVzdDIo
KSB7CiAgICAgY2xhc3MgQyBleHRlbmRzIGpzTnVsbCgpIHsgfQotICAgIGFzc2VydCgobmV3IEMp
IGluc3RhbmNlb2YgQyk7Ci0gICAgYXNzZXJ0KCEoKG5ldyBDKSBpbnN0YW5jZW9mIE9iamVjdCkp
OworICAgIGFzc2VydFRocm93KCgpID0+IChuZXcgQyksICdUeXBlRXJyb3I6IGZ1bmN0aW9uIGlz
IG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nIFwnc3VwZXIoLi4uYXJncylcJyknKTsKICAg
ICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihDLnByb3RvdHlwZSkgPT09IG51bGwpOwog
CiAgICAgbGV0IG8gPSB7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313228</attachid>
            <date>2017-06-18 09:19:41 -0700</date>
            <delta_ts>2017-06-20 03:30:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169293-20170618191939.patch</filename>
            <type>text/plain</type>
            <size>20220</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YmUxN2QxYzk0OTY3ZTA3MGMzYmViOGY3YTgyNGFhYWE4MTkwMTIzLi5hZTRlYTAzMjVjMTI2Zjdm
MDhjMWJlZWRiNDdjZjFhNmJjMjgwNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wNi0xOCAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZlcnQgY2hhbmdlcyBpbiBidWcjMTYwNDE3IGFib3V0IGV4
dGVuZGluZyBgbnVsbGAgbm90IGJlaW5nIGEgZGVyaXZlZCBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjkzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlcyBpbiBidWcj
MTYwNDE3IGFib3V0IGV4dGVuZGluZyBgbnVsbGAgbm90IGJlaW5nIGEgZGVyaXZlZCBjbGFzcyAK
KyAgICAgICAgYWNjb3JkaW5nIHRvIGNoYW5nZXMgaW4gc3BlYzoKKyAgICAgICAgaHR0cHM6Ly9n
aXRodWIuY29tL3RjMzkvZWNtYTI2Mi9jb21taXQvYzU3ZWY5NWM0NWEzNzFmOWM5NDg1YmIxYzM4
ODFkYmRjMDQ1MjRhMgorCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAg
ICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXR1cm4pOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUp
OgorCiAyMDE3LTA2LTEwICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29t
PgogCiAgICAgICAgIFdlIGluY29ycmVjdGx5IGFsbG93IGVzY2FwZWQgY2hhcmFjdGVycyBpbiBr
ZXl3b3JkIHRva2VucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5O
YW1lcy5oCmluZGV4IGEyM2JiMDM3ZjU0YzU3NzJjMDc5ODM5M2JkM2MyZjc2NGZiODE3OWYuLjUy
Njk2YWE4M2QzOGE0NzUzNGQ1OGY0ZmIxMzdjZWVmZTFlMDZmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTEzNSw3ICsxMzUsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhpc0FycmF5U2xvdykgXAogICAgIG1hY3JvKGlzQXJy
YXlDb25zdHJ1Y3RvcikgXAogICAgIG1hY3JvKGlzQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhp
c0Rlcml2ZWRDb25zdHJ1Y3RvcikgXAogICAgIG1hY3JvKGNvbmNhdE1lbWNweSkgXAogICAgIG1h
Y3JvKGFwcGVuZE1lbWNweSkgXAogICAgIG1hY3JvKHByZWRpY3RGaW5hbExlbmd0aEZyb21Bcmd1
bXVudHMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggNzFlMzQ4N2FiZmNkNmVjODAyOWRhZGI3NDgy
OGQwNDRlYmY1YTg1Mi4uYTUyZDVjYjkxMzMwOTFhMjA0NGY2YzcxMWYxOTBlYzE5ODE2ZDYxYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTYzNSwxNiArNjM1LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6
OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVu
bGlua2UKICAgICAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKCkpIHsKICAgICAgICAgICAgICAg
ICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlzUmVnaXN0ZXIpOwogICAgICAg
ICAgICAgICAgIGlmIChjb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6OkV4dGVu
ZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVmPExhYmVsPiBpc0Rlcml2ZWQgPSBuZXdMYWJl
bCgpOwotICAgICAgICAgICAgICAgICAgICBSZWY8TGFiZWw+IGRvbmUgPSBuZXdMYWJlbCgpOwot
ICAgICAgICAgICAgICAgICAgICBtX2lzRGVyaXZlZENvbnN0dWN0b3IgPSBhZGRWYXIoKTsKLSAg
ICAgICAgICAgICAgICAgICAgZW1pdEdldEJ5SWQobV9pc0Rlcml2ZWRDb25zdHVjdG9yLCAmbV9j
YWxsZWVSZWdpc3RlciwgcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmlzRGVyaXZlZENv
bnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZU
cnVlKG1faXNEZXJpdmVkQ29uc3R1Y3RvciwgaXNEZXJpdmVkLmdldCgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgZW1pdENyZWF0ZVRoaXMoJm1fdGhpc1JlZ2lzdGVyKTsKLSAgICAgICAgICAgICAg
ICAgICAgZW1pdEp1bXAoZG9uZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXRMYWJl
bChpc0Rlcml2ZWQuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBlbWl0TW92ZUVtcHR5VmFs
dWUoJm1fdGhpc1JlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICAgICAgZW1pdExhYmVsKGRvbmUu
Z2V0KCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBlbWl0
Q3JlYXRlVGhpcygmbV90aGlzUmVnaXN0ZXIpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjb25z
dHJ1Y3RvcktpbmQoKSAhPSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUpCkBAIC0zNjQxLDI3ICszNjMy
LDIyIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsRGVmaW5lUHJvcGVydHkoUmVn
aXN0ZXJJRCogbmV3T2JqLCBSZWdpc3RlcklEKiBwCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdFJldHVybihSZWdpc3RlcklEKiBzcmMsIFJldHVybkZyb20gZnJvbSkKIHsKICAg
ICBpZiAoaXNDb25zdHJ1Y3RvcigpKSB7Ci0gICAgICAgIGJvb2wgbWlnaHRCZURlcml2ZWQgPSBj
b25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6OkV4dGVuZHM7CisgICAgICAgIGJv
b2wgaXNEZXJpdmVkID0gY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpFeHRl
bmRzOwogICAgICAgICBib29sIHNyY0lzVGhpcyA9IHNyYy0+aW5kZXgoKSA9PSBtX3RoaXNSZWdp
c3Rlci5pbmRleCgpOwogCi0gICAgICAgIGlmIChtaWdodEJlRGVyaXZlZCAmJiAoc3JjSXNUaGlz
IHx8IGZyb20gPT0gUmV0dXJuRnJvbTo6RmluYWxseSkpCisgICAgICAgIGlmIChpc0Rlcml2ZWQg
JiYgKHNyY0lzVGhpcyB8fCBmcm9tID09IFJldHVybkZyb206OkZpbmFsbHkpKQogICAgICAgICAg
ICAgZW1pdFREWkNoZWNrKHNyYyk7CiAKICAgICAgICAgaWYgKCFzcmNJc1RoaXMgfHwgZnJvbSA9
PSBSZXR1cm5Gcm9tOjpGaW5hbGx5KSB7CiAgICAgICAgICAgICBSZWY8TGFiZWw+IGlzT2JqZWN0
TGFiZWwgPSBuZXdMYWJlbCgpOwogICAgICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2Jq
ZWN0KG5ld1RlbXBvcmFyeSgpLCBzcmMpLCBpc09iamVjdExhYmVsLmdldCgpKTsKIAotICAgICAg
ICAgICAgaWYgKG1pZ2h0QmVEZXJpdmVkKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKG1faXNE
ZXJpdmVkQ29uc3R1Y3Rvcik7Ci0gICAgICAgICAgICAgICAgUmVmPExhYmVsPiByZXR1cm5UaGlz
ID0gbmV3TGFiZWwoKTsKLSAgICAgICAgICAgICAgICBlbWl0SnVtcElmRmFsc2UobV9pc0Rlcml2
ZWRDb25zdHVjdG9yLCByZXR1cm5UaGlzLmdldCgpKTsKLSAgICAgICAgICAgICAgICAvLyBFbHNl
LCB3ZSdyZSBhIGRlcml2ZWQgY29uc3RydWN0b3IgaGVyZS4KKyAgICAgICAgICAgIGlmIChpc0Rl
cml2ZWQpIHsKICAgICAgICAgICAgICAgICBSZWY8TGFiZWw+IGlzVW5kZWZpbmVkTGFiZWwgPSBu
ZXdMYWJlbCgpOwogICAgICAgICAgICAgICAgIGVtaXRKdW1wSWZUcnVlKGVtaXRJc1VuZGVmaW5l
ZChuZXdUZW1wb3JhcnkoKSwgc3JjKSwgaXNVbmRlZmluZWRMYWJlbC5nZXQoKSk7CiAgICAgICAg
ICAgICAgICAgZW1pdFRocm93VHlwZUVycm9yKCJDYW5ub3QgcmV0dXJuIGEgbm9uLW9iamVjdCB0
eXBlIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBhIGRlcml2ZWQgY2xhc3MuIik7CiAgICAgICAgICAg
ICAgICAgZW1pdExhYmVsKGlzVW5kZWZpbmVkTGFiZWwuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IGVtaXRURFpDaGVjaygmbV90aGlzUmVnaXN0ZXIpOwotICAgICAgICAgICAgICAgIGVtaXRMYWJl
bChyZXR1cm5UaGlzLmdldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVtaXRVbmFy
eU5vRHN0T3Aob3BfcmV0LCAmbV90aGlzUmVnaXN0ZXIpOwogICAgICAgICAgICAgZW1pdExhYmVs
KGlzT2JqZWN0TGFiZWwuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDk3MGI0N2NkMjI0OWU4NmUyZjExYmYx
M2I3NWU3N2E3NzcwZDU5NGYuLjMzZTc0Mjg1YjNjMjk2NmMzNjcyZGM5ZWVlOTAxZTY1NWJjOGI5
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTM3NDAsMzQgKzM3NDAsOSBAQCBSZWdpc3RlcklEKiBDbGFzc0V4cHJO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RAogICAgICAgICBtZXRhZGF0YS0+c2V0RWNtYU5hbWUoZWNtYU5hbWUoKSk7CiAgICAgICAgIG1l
dGFkYXRhLT5zZXRDbGFzc1NvdXJjZShtX2NsYXNzU291cmNlKTsKICAgICAgICAgY29uc3RydWN0
b3IgPSBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2NvbnN0cnVjdG9yRXhwcmVzc2lvbik7Ci0g
ICAgICAgIGlmIChtX2NsYXNzSGVyaXRhZ2UpIHsKLSAgICAgICAgICAgIG5lZWRzSG9tZU9iamVj
dCA9IHRydWU7Ci0gICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXNEZXJpdmVkQ29uc3Ry
dWN0b3IgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0gICAgICAgICAgICBnZW5lcmF0b3Iu
ZW1pdFVuYXJ5T3Aob3Bfbm90LCBpc0Rlcml2ZWRDb25zdHJ1Y3Rvci5nZXQoKSwKLSAgICAgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdFVuYXJ5T3Aob3BfZXFfbnVsbCwgaXNEZXJpdmVkQ29uc3Ry
dWN0b3IuZ2V0KCksIHN1cGVyY2xhc3MuZ2V0KCkpKTsKLSAgICAgICAgICAgIGdlbmVyYXRvci5l
bWl0RGlyZWN0UHV0QnlJZChjb25zdHJ1Y3Rvci5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFt
ZXMoKS5idWlsdGluTmFtZXMoKS5pc0Rlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCksIGlz
RGVyaXZlZENvbnN0cnVjdG9yLmdldCgpLCBQcm9wZXJ0eU5vZGU6OlVua25vd24pOwotICAgICAg
ICB9IGVsc2UgaWYgKG1ldGFkYXRhLT5zdXBlckJpbmRpbmcoKSA9PSBTdXBlckJpbmRpbmc6Ok5l
ZWRlZCkKLSAgICAgICAgICAgIG5lZWRzSG9tZU9iamVjdCA9IHRydWU7CisgICAgICAgIG5lZWRz
SG9tZU9iamVjdCA9IG1fY2xhc3NIZXJpdGFnZSB8fCBtZXRhZGF0YS0+c3VwZXJCaW5kaW5nKCkg
PT0gU3VwZXJCaW5kaW5nOjpOZWVkZWQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fY2xh
c3NIZXJpdGFnZSkgewotICAgICAgICAgICAgY29uc3RydWN0b3IgPSBnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QpOwotICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXBSZWdp
c3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKLSAgICAgICAgICAgIFJlZjxMYWJlbD4g
c3VwZXJjbGFzc0lzTnVsbExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Ci0gICAgICAgICAg
ICBSZWY8TGFiZWw+IGRvbmUgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKLQotICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGdlbmVyYXRvci5lbWl0VW5hcnlPcChvcF9lcV9udWxs
LCB0ZW1wUmVnaXN0ZXIuZ2V0KCksIHN1cGVyY2xhc3MuZ2V0KCkpLCBzdXBlcmNsYXNzSXNOdWxs
TGFiZWwuZ2V0KCkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXROZXdEZWZhdWx0Q29uc3Ry
dWN0b3IoY29uc3RydWN0b3IuZ2V0KCksIENvbnN0cnVjdG9yS2luZDo6RXh0ZW5kcywgbV9uYW1l
LCBlY21hTmFtZSgpLCBtX2NsYXNzU291cmNlKTsKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0
TG9hZCh0ZW1wUmVnaXN0ZXIuZ2V0KCksIGpzQm9vbGVhbih0cnVlKSk7Ci0gICAgICAgICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXAoZG9uZS5nZXQoKSk7Ci0gICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKHN1cGVyY2xhc3NJc051bGxMYWJlbC5nZXQoKSk7Ci0gICAgICAgICAgICBnZW5lcmF0
b3IuZW1pdE5ld0RlZmF1bHRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvci5nZXQoKSwgQ29uc3RydWN0
b3JLaW5kOjpCYXNlLCBtX25hbWUsIGVjbWFOYW1lKCksIG1fY2xhc3NTb3VyY2UpOwotICAgICAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRMb2FkKHRlbXBSZWdpc3Rlci5nZXQoKSwganNCb29sZWFuKGZh
bHNlKSk7Ci0gICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGRvbmUuZ2V0KCkpOwotICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGNvbnN0cnVjdG9yLmdldCgpLCBn
ZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmlzRGVyaXZlZENvbnN0cnVj
dG9yUHJpdmF0ZU5hbWUoKSwgdGVtcFJlZ2lzdGVyLmdldCgpLCBQcm9wZXJ0eU5vZGU6OlVua25v
d24pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc3RydWN0b3IgPSBnZW5lcmF0
b3IuZW1pdE5ld0RlZmF1bHRDb25zdHJ1Y3RvcihnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihk
c3QpLAotICAgICAgICAgICAgICAgIENvbnN0cnVjdG9yS2luZDo6QmFzZSwgbV9uYW1lLCBlY21h
TmFtZSgpLCBtX2NsYXNzU291cmNlKTsKLSAgICAgICAgfQorICAgICAgICBjb25zdHJ1Y3RvciA9
IGdlbmVyYXRvci5lbWl0TmV3RGVmYXVsdENvbnN0cnVjdG9yKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksIG1fY2xhc3NIZXJpdGFnZSA/IENvbnN0cnVjdG9yS2luZDo6RXh0ZW5kcyA6
IENvbnN0cnVjdG9yS2luZDo6QmFzZSwgbV9uYW1lLCBlY21hTmFtZSgpLCBtX2NsYXNzU291cmNl
KTsKICAgICB9CiAKICAgICBjb25zdCBhdXRvJiBwcm9wZXJ0eU5hbWVzID0gZ2VuZXJhdG9yLnBy
b3BlcnR5TmFtZXMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNTYxMDA3NTRkYTk5MzFkYTI0NjRmMGRhZmVjNmVlMjVh
ZjdkMTAzLi5mYjBhMTg4ZmIzM2JhOTdhOGY2MzNiMDViMDVjMTE0MDVjNDIwNTk1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTctMDYtMTggIE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtv
dkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2ZXJ0IGNoYW5nZXMgaW4gYnVnIzE2MDQxNyBhYm91
dCBleHRlbmRpbmcgYG51bGxgIG5vdCBiZWluZyBhIGRlcml2ZWQgY2xhc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTI5MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvY2xhc3Mtc3ludGF4LWV4
dGVuZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1zdXBlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHRlbmRz
LmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtc3VwZXIuanM6CisK
IDIwMTctMDQtMTMgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTTmV4dF0gQXN5bmMgaXRlcmF0aW9uIC0gSW1wbGVtZW50IEFzeW5jIEdlbmVy
YXRvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4dGVuZHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4dGVuZHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGFiOTIzYWU2MTMzZTE5NDExM2I3MTYxNTMyNjQ1YmVkZjcyMTdjMmQuLmU2Y2Rh
ZGMwN2IyZmEwNWU2ODJkYjgxZGE5ODEyMDhlZjkxMWMzNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL2NsYXNzLXN5bnRheC1leHRlbmRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9jbGFzcy1zeW50YXgtZXh0ZW5kcy1leHBlY3RlZC50eHQKQEAgLTU3LDEwICs1NywxMCBA
QCBQQVNTIE9iamVjdC5nZXRQcm90b3R5cGVPZigoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3Ry
dWN0b3IgKCkgeyBzdXBlcigpOyB9IH0pLgogUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgdW5kZWZp
bmVkIHsgY29uc3RydWN0b3IgKCkgeyB0aGlzIH0gfSk6OjpUeXBlRXJyb3I6IFRoZSBzdXBlcmNs
YXNzIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIHggPSB1bmRlZmluZWQ7IG5ldyAoY2xhc3MgZXh0
ZW5kcyB4IHsgY29uc3RydWN0b3IgKCkgeyBzdXBlcigpOyB9IH0pOjo6VHlwZUVycm9yOiBUaGUg
c3VwZXJjbGFzcyBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyBjbGFzcyB4IHt9OyBuZXcgKGNsYXNz
IGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yICgpIHsgcmV0dXJuIG5ldyB4OyB9IH0pIGluc3Rh
bmNlb2YgeAotUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yICgpIHsg
dGhpczsgfSB9KQorUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yICgp
IHsgdGhpczsgfSB9KTo6OlJlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVuaW5pdGlhbGl6
ZWQgdmFyaWFibGUuCiBQQVNTIG5ldyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3Ig
KCkgeyBzdXBlcigpOyB9IH0pOjo6VHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1
Y3RvciAoZXZhbHVhdGluZyAnc3VwZXIoKScpCiBQQVNTIHggPSB7fTsgbmV3IChjbGFzcyBleHRl
bmRzIG51bGwgeyBjb25zdHJ1Y3RvciAoKSB7IHJldHVybiB4IH0gfSk6Ojp4Ci1QQVNTIHkgPSAx
MjsgY2xhc3MgQyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvciAoKSB7IHJldHVybiB5OyB9IH07
IG5ldyBDIGluc3RhbmNlb2YgQzsKK1BBU1MgeSA9IDEyOyBjbGFzcyBDIGV4dGVuZHMgbnVsbCB7
IGNvbnN0cnVjdG9yICgpIHsgcmV0dXJuIHk7IH0gfTsgbmV3IEM7Ojo6VHlwZUVycm9yOiBDYW5u
b3QgcmV0dXJuIGEgbm9uLW9iamVjdCB0eXBlIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBhIGRlcml2
ZWQgY2xhc3MuCiBQQVNTIGNsYXNzIHgge307IG5ldyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29u
c3RydWN0b3IgKCkgeyByZXR1cm4gbmV3IHg7IH0gfSkgaW5zdGFuY2VvZiB4CiBQQVNTIHggPSBu
dWxsOyBPYmplY3QuZ2V0UHJvdG90eXBlT2YoKGNsYXNzIGV4dGVuZHMgeCB7IH0pLnByb3RvdHlw
ZSk6OjpudWxsCiBQQVNTIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjbGFzcyB7IH0p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LXN1cGVyLWV4cGVjdGVkLnR4dAppbmRl
eCBiOTE3Mzc5YjU4NWQ0ZTE3NTcyOWQ4YzdiZDUxNTA2ZjAwZmRjNTRlLi4wODNjZDhlZDkzMTE3
NTFmZGNkZWM2Nzk0ZTE0MzM1MGM3Yjg5YWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9j
bGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNz
LXN5bnRheC1zdXBlci1leHBlY3RlZC50eHQKQEAgLTM2LDEyICszNiwxMiBAQCBQQVNTIHggPSB7
IH07IG5ldyAoY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHJldHVybiB4IH0g
fSk7Ojo6eAogUEFTUyB4IGluc3RhbmNlb2YgQmFzZQogUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMg
QmFzZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH0pOjo6UmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nl
c3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KIFBBU1MgbmV3IChjbGFzcyBleHRlbmRzIEJhc2Ug
eyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIDE7IH0gfSk6OjpUeXBlRXJyb3I6IENhbm5vdCByZXR1
cm4gYSBub24tb2JqZWN0IHR5cGUgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGEgZGVyaXZlZCBjbGFz
cy4KLVBBU1MgbmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJu
IHVuZGVmaW5lZCB9IH0pCitQQVNTIG5ldyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0
b3IoKSB7IHJldHVybiB1bmRlZmluZWQgfSB9KTo6OlJlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNj
ZXNzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuCiBQQVNTIG5ldyAoY2xhc3MgZXh0ZW5kcyBudWxs
IHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IHJldHVybiB1bmRlZmluZWQgfSB9KTo6OlR5cGVF
cnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ3N1cGVyKCkn
KQogUEFTUyB4ID0geyB9OyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkg
eyByZXR1cm4geCB9IH0pOzo6OngKIFBBU1MgeCBpbnN0YW5jZW9mIE9iamVjdAotUEFTUyBuZXcg
KGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkgeyB9IH0pCi1QQVNTIG5ldyAoY2xh
c3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3IoKSB7IHJldHVybiAxOyB9IH0pCitQQVNTIG5l
dyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3IoKSB7IH0gfSk6OjpSZWZlcmVuY2VF
cnJvcjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgorUEFTUyBuZXcgKGNs
YXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkgeyByZXR1cm4gMTsgfSB9KTo6OlR5cGVF
cnJvcjogQ2Fubm90IHJldHVybiBhIG5vbi1vYmplY3QgdHlwZSBpbiB0aGUgY29uc3RydWN0b3Ig
b2YgYSBkZXJpdmVkIGNsYXNzLgogUEFTUyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0
cnVjdG9yKCkgeyBzdXBlcigpIH0gfSk6OjpUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBhIGNv
bnN0cnVjdG9yIChldmFsdWF0aW5nICdzdXBlcigpJykKIFBBU1MgbmV3IChjbGFzcyB7IGNvbnN0
cnVjdG9yKCkgeyBzdXBlcigpIH0gfSk6OjpTeW50YXhFcnJvcjogc3VwZXIgaXMgbm90IHZhbGlk
IGluIHRoaXMgY29udGV4dC4KIFBBU1MgZnVuY3Rpb24geCgpIHsgc3VwZXIoKTsgfTo6OlN5bnRh
eEVycm9yOiBzdXBlciBpcyBub3QgdmFsaWQgaW4gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHRlbmRzLmpzIGIvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHRlbmRzLmpzCmluZGV4IDY3
MmQzMWExZjYxOTNiZWJiNDEyOWFkOTc0N2E3ODM1NzhlMTY1ZmQuLjA1ODhjOGUzZTgyM2M1MzRh
YjZmZThlYWE0NzIyMzEwYTkzZjJkOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9jbGFzcy1zeW50YXgtZXh0ZW5kcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4dGVuZHMuanMKQEAgLTExNSwxMCArMTE1LDEwIEBAIHNo
b3VsZEJlKCdPYmplY3QuZ2V0UHJvdG90eXBlT2YoKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0
cnVjdG9yICgpIHsgc3VwZXIoKTsKIHNob3VsZFRocm93KCduZXcgKGNsYXNzIGV4dGVuZHMgdW5k
ZWZpbmVkIHsgY29uc3RydWN0b3IgKCkgeyB0aGlzIH0gfSknLCAnIlR5cGVFcnJvcjogVGhlIHN1
cGVyY2xhc3MgaXMgbm90IGFuIG9iamVjdC4iJyk7CiBzaG91bGRUaHJvdygneCA9IHVuZGVmaW5l
ZDsgbmV3IChjbGFzcyBleHRlbmRzIHggeyBjb25zdHJ1Y3RvciAoKSB7IHN1cGVyKCk7IH0gfSkn
LCAnIlR5cGVFcnJvcjogVGhlIHN1cGVyY2xhc3MgaXMgbm90IGFuIG9iamVjdC4iJyk7CiBzaG91
bGRCZVRydWUgKCdjbGFzcyB4IHt9OyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVj
dG9yICgpIHsgcmV0dXJuIG5ldyB4OyB9IH0pIGluc3RhbmNlb2YgeCcpOwotc2hvdWxkTm90VGhy
b3coJ25ldyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3IgKCkgeyB0aGlzOyB9IH0p
Jyk7CitzaG91bGRUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvciAo
KSB7IHRoaXM7IH0gfSknKTsKIHNob3VsZFRocm93KCduZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7
IGNvbnN0cnVjdG9yICgpIHsgc3VwZXIoKTsgfSB9KScsICciVHlwZUVycm9yOiBmdW5jdGlvbiBp
cyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyBcJ3N1cGVyKClcJykiJyk7CiBzaG91bGRC
ZSgneCA9IHt9OyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yICgpIHsgcmV0
dXJuIHggfSB9KScsICd4Jyk7Ci1zaG91bGRCZVRydWUoJ3kgPSAxMjsgY2xhc3MgQyBleHRlbmRz
IG51bGwgeyBjb25zdHJ1Y3RvciAoKSB7IHJldHVybiB5OyB9IH07IG5ldyBDIGluc3RhbmNlb2Yg
QzsnLCAnIlR5cGVFcnJvcjogQ2Fubm90IHJldHVybiBhIG5vbi1vYmplY3QgdHlwZSBpbiB0aGUg
Y29uc3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNzLiInKTsKK3Nob3VsZFRocm93KCd5ID0gMTI7
IGNsYXNzIEMgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3IgKCkgeyByZXR1cm4geTsgfSB9OyBu
ZXcgQzsnLCAnIlR5cGVFcnJvcjogQ2Fubm90IHJldHVybiBhIG5vbi1vYmplY3QgdHlwZSBpbiB0
aGUgY29uc3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNzLiInKTsKIHNob3VsZEJlVHJ1ZSAoJ2Ns
YXNzIHgge307IG5ldyAoY2xhc3MgZXh0ZW5kcyBudWxsIHsgY29uc3RydWN0b3IgKCkgeyByZXR1
cm4gbmV3IHg7IH0gfSkgaW5zdGFuY2VvZiB4Jyk7CiBzaG91bGRCZSgneCA9IG51bGw7IE9iamVj
dC5nZXRQcm90b3R5cGVPZigoY2xhc3MgZXh0ZW5kcyB4IHsgfSkucHJvdG90eXBlKScsICdudWxs
Jyk7CiBzaG91bGRCZVRydWUoJ09iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjbGFzcyB7
IH0pJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3lu
dGF4LXN1cGVyLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1z
dXBlci5qcwppbmRleCA2NTEwOTA1MzQ1N2NiZDE0YTI1ZjgzZjkwZTUxODRiYTFiODU4Nzc5Li41
ODY2YTc2OGFiNjg1NjJiMmJlMWMzN2ZmODllMjNiODZhOTU1NTA4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LXN1cGVyLmpzCisrKyBiL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtc3VwZXIuanMKQEAgLTExOSwxMiAr
MTE5LDEyIEBAIHNob3VsZEJlKCd4ID0geyB9OyBuZXcgKGNsYXNzIGV4dGVuZHMgQmFzZSB7IGNv
bnN0cnVjdG9yKCkgeyByZXR1cm4geCB9IH0pOycsICd4CiBzaG91bGRCZUZhbHNlKCd4IGluc3Rh
bmNlb2YgQmFzZScpOwogc2hvdWxkVGhyb3coJ25ldyAoY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29u
c3RydWN0b3IoKSB7IH0gfSknLCAnIlJlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVuaW5p
dGlhbGl6ZWQgdmFyaWFibGUuIicpOwogc2hvdWxkVGhyb3coJ25ldyAoY2xhc3MgZXh0ZW5kcyBC
YXNlIHsgY29uc3RydWN0b3IoKSB7IHJldHVybiAxOyB9IH0pJywgJyJUeXBlRXJyb3I6IENhbm5v
dCByZXR1cm4gYSBub24tb2JqZWN0IHR5cGUgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGEgZGVyaXZl
ZCBjbGFzcy4iJyk7Ci1zaG91bGROb3RUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBj
b25zdHJ1Y3RvcigpIHsgcmV0dXJuIHVuZGVmaW5lZCB9IH0pJyk7CitzaG91bGRUaHJvdygnbmV3
IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIHVuZGVmaW5lZCB9
IH0pJyk7CiBzaG91bGRUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3Rv
cigpIHsgc3VwZXIoKTsgcmV0dXJuIHVuZGVmaW5lZCB9IH0pJywgJyJUeXBlRXJyb3I6IGZ1bmN0
aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nIFwnc3VwZXIoKVwnKSInKTsKIHNo
b3VsZEJlKCd4ID0geyB9OyBuZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkg
eyByZXR1cm4geCB9IH0pOycsICd4Jyk7CiBzaG91bGRCZVRydWUoJ3ggaW5zdGFuY2VvZiBPYmpl
Y3QnKTsKLXNob3VsZE5vdFRocm93KCduZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVj
dG9yKCkgeyB9IH0pJyk7Ci1zaG91bGROb3RUaHJvdygnbmV3IChjbGFzcyBleHRlbmRzIG51bGwg
eyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIDE7IH0gfSknKTsKK3Nob3VsZFRocm93KCduZXcgKGNs
YXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkgeyB9IH0pJyk7CitzaG91bGRUaHJvdygn
bmV3IChjbGFzcyBleHRlbmRzIG51bGwgeyBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIDE7IH0gfSkn
KTsKIHNob3VsZFRocm93KCduZXcgKGNsYXNzIGV4dGVuZHMgbnVsbCB7IGNvbnN0cnVjdG9yKCkg
eyBzdXBlcigpIH0gfSknLCAnIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgXCdzdXBlcigpXCcpIicpOwogc2hvdWxkVGhyb3coJ25ldyAoY2xhc3Mg
eyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKSB9IH0pJywgJyJTeW50YXhFcnJvcjogc3VwZXIgaXMg
bm90IHZhbGlkIGluIHRoaXMgY29udGV4dC4iJyk7CiBzaG91bGRUaHJvdygnZnVuY3Rpb24geCgp
IHsgc3VwZXIoKTsgfScsICciU3ludGF4RXJyb3I6IHN1cGVyIGlzIG5vdCB2YWxpZCBpbiB0aGlz
IGNvbnRleHQuIicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCA1NTY1ZjY2ODA2NjQ3YmE1MDY2ZTkyZjA3ZmNhYjhjODNhOWY5N2Y3Li45
NTQ4Yjc3YTc2ZjJjNzRlYTY0Y2NkYmQyMThjYWJlYzgwOGZhYzllIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE3LTA2LTE1ICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmVydCBjaGFuZ2VzIGluIGJ1ZyMxNjA0MTcgYWJvdXQgZXh0ZW5kaW5nIGBudWxs
YCBub3QgYmVpbmcgYSBkZXJpdmVkIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9jbGFzcy1kZXJpdmVkLWZyb20tbnVsbC5qczoK
KyAgICAgICAgKGFzc2VydFRocm93KToKKwogMjAxNy0wNi0xMCAgT2xla3NhbmRyIFNrYWNoa292
ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBXZSBpbmNvcnJlY3RseSBhbGxvdyBl
c2NhcGVkIGNoYXJhY3RlcnMgaW4ga2V5d29yZCB0b2tlbnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2NsYXNzLWRlcml2ZWQtZnJvbS1udWxsLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mt
ZGVyaXZlZC1mcm9tLW51bGwuanMKaW5kZXggMGZlNjFiZTVkYTE4NTNlNjQ0MmIxZDExYjhhYjdh
NmE4MmFmODZiNy4uYTEwNTNjMDNlMDgwMzE2NTM3N2JmNzk1YzQ3OWU5NDdiZWEwZWFmNiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvY2xhc3MtZGVyaXZlZC1mcm9tLW51bGwuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3MvY2xhc3MtZGVyaXZlZC1mcm9tLW51bGwuanMKQEAgLTMsNiArMywyMCBA
QCBmdW5jdGlvbiBhc3NlcnQoYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKQog
fQogCitmdW5jdGlvbiBhc3NlcnRUaHJvdyhjYiwgZXJyb3JNZXNzYWdlKSB7CisgICAgbGV0IGVy
cm9yOworICAgIHRyeSB7CisgICAgICAgIGNiKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IgfHwgIShlcnJvciBpbnN0YW5jZW9m
IEVycm9yKSkgCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXJyb3IgaXMgZXhwZWN0ZWQhIik7
CisKKyAgICBpZiAoZXJyb3IudG9TdHJpbmcoKSAhPT0gZXJyb3JNZXNzYWdlKSAKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJFcnJvcjogYCIgKyBlcnJvck1lc3NhZ2UgKyAiYCBpcyBleHBlY3Rl
ZCwgYnV0IHdhcyBgIiArIGVycm9yLnRvU3RyaW5nKCkgKyAiYCIpOworfQorCiBmdW5jdGlvbiB0
ZXN0KGYsIGNvdW50ID0gMTAwMCkgewogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkr
KykKICAgICAgICAgZigpOwpAQCAtMTAsOCArMjQsNyBAQCBmdW5jdGlvbiB0ZXN0KGYsIGNvdW50
ID0gMTAwMCkgewogCiBmdW5jdGlvbiB0ZXN0MSgpIHsKICAgICBjbGFzcyBDIGV4dGVuZHMgbnVs
bCB7IH0KLSAgICBhc3NlcnQoKG5ldyBDKSBpbnN0YW5jZW9mIEMpOwotICAgIGFzc2VydCghKChu
ZXcgQykgaW5zdGFuY2VvZiBPYmplY3QpKTsKKyAgICBhc3NlcnRUaHJvdygoKSA9PiAobmV3IEMp
LCAnVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyBc
J3N1cGVyKC4uLmFyZ3MpXCcpJyk7CiAgICAgYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2Yo
Qy5wcm90b3R5cGUpID09PSBudWxsKTsKIAogICAgIGxldCBvID0ge30KQEAgLTI4LDggKzQxLDcg
QEAgZnVuY3Rpb24gdGVzdDEoKSB7CiAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAg
fQogICAgIH0KLSAgICBhc3NlcnQoKG5ldyBFKSBpbnN0YW5jZW9mIEUpOwotICAgIGFzc2VydCgh
KChuZXcgRSkgaW5zdGFuY2VvZiBPYmplY3QpKTsKKyAgICBhc3NlcnRUaHJvdygoKT0+KG5ldyBF
KSwgJ1JlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUu
Jyk7CiAgICAgYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoRS5wcm90b3R5cGUpID09PSBu
dWxsKTsKIH0KIHRlc3QodGVzdDEpOwpAQCAtMzcsOCArNDksNyBAQCB0ZXN0KHRlc3QxKTsKIGZ1
bmN0aW9uIGpzTnVsbCgpIHsgcmV0dXJuIG51bGw7IH0KIGZ1bmN0aW9uIHRlc3QyKCkgewogICAg
IGNsYXNzIEMgZXh0ZW5kcyBqc051bGwoKSB7IH0KLSAgICBhc3NlcnQoKG5ldyBDKSBpbnN0YW5j
ZW9mIEMpOwotICAgIGFzc2VydCghKChuZXcgQykgaW5zdGFuY2VvZiBPYmplY3QpKTsKKyAgICBh
c3NlcnRUaHJvdygoKSA9PiAobmV3IEMpLCAnVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBj
b25zdHJ1Y3RvciAoZXZhbHVhdGluZyBcJ3N1cGVyKC4uLmFyZ3MpXCcpJyk7CiAgICAgYXNzZXJ0
KFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoQy5wcm90b3R5cGUpID09PSBudWxsKTsKIAogICAgIGxl
dCBvID0ge30KQEAgLTU1LDggKzY2LDcgQEAgZnVuY3Rpb24gdGVzdDIoKSB7CiAgICAgICAgICAg
ICByZXR1cm4gdGhpczsKICAgICAgICAgfQogICAgIH0KLSAgICBhc3NlcnQoKG5ldyBFKSBpbnN0
YW5jZW9mIEUpOwotICAgIGFzc2VydCghKChuZXcgRSkgaW5zdGFuY2VvZiBPYmplY3QpKTsKKyAg
ICBhc3NlcnQoKCkgPT4gKG5ldyBFKSwgJ1JlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVu
aW5pdGlhbGl6ZWQgdmFyaWFibGUuJyk7CiAgICAgYXNzZXJ0KFJlZmxlY3QuZ2V0UHJvdG90eXBl
T2YoRS5wcm90b3R5cGUpID09PSBudWxsKTsKIH0KIHRlc3QodGVzdDIpOwpAQCAtODEsMjQgKzkx
LDIxIEBAIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgIGFzc2VydCh0aHJldyk7CiAKICAgICBjbGFz
cyBFIGV4dGVuZHMganNOdWxsKCkgeyBjb25zdHJ1Y3RvcigpIHsgbGV0IGFyciA9ICgpPT5zdXBl
cigpOyByZXR1cm4gdGhpczsgfSB9Ci0gICAgYXNzZXJ0KChuZXcgRSkgaW5zdGFuY2VvZiBFKTsK
LSAgICBhc3NlcnQoISgobmV3IEUpIGluc3RhbmNlb2YgT2JqZWN0KSk7CisgICAgYXNzZXJ0KCgp
PT4obmV3IEUpLCAnUmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2
YXJpYWJsZS4nKTsKICAgICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihFLnByb3RvdHlw
ZSkgPT09IG51bGwpOwogfQogdGVzdCh0ZXN0Myk7CiAKIGZ1bmN0aW9uIHRlc3Q0KCkgewogICAg
IGNsYXNzIEUgZXh0ZW5kcyBqc051bGwoKSB7IGNvbnN0cnVjdG9yKCkgeyByZXR1cm4gMjU7IH0g
fQotICAgIGFzc2VydCgobmV3IEUpIGluc3RhbmNlb2YgRSk7Ci0gICAgYXNzZXJ0KCEoKG5ldyBF
KSBpbnN0YW5jZW9mIE9iamVjdCkpOworICAgIGFzc2VydCgoKSA9PiAobmV3IEUpLCAnUmVmZXJl
bmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4nKTsKICAgICBh
c3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihFLnByb3RvdHlwZSkgPT09IG51bGwpOwogfQog
dGVzdCh0ZXN0NCk7CiAKIGZ1bmN0aW9uIHRlc3Q1KCkgewogICAgIGNsYXNzIEUgZXh0ZW5kcyBq
c051bGwoKSB7IGNvbnN0cnVjdG9yKCkgeyBsZXQgYXJyID0gKCk9PnRoaXM7IHJldHVybiBhcnIo
KTsgfSB9Ci0gICAgYXNzZXJ0KChuZXcgRSkgaW5zdGFuY2VvZiBFKTsKLSAgICBhc3NlcnQoISgo
bmV3IEUpIGluc3RhbmNlb2YgT2JqZWN0KSk7CisgICAgYXNzZXJ0KCgpPT4obmV3IEUpLCAnUmVm
ZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4nKTsKICAg
ICBhc3NlcnQoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihFLnByb3RvdHlwZSkgPT09IG51bGwpOwog
fQogdGVzdCh0ZXN0NSk7CkBAIC0xMDksMTMgKzExNiw4IEBAIGZ1bmN0aW9uIHRlc3Q2KCkgewog
ICAgIGNsYXNzIEUgZXh0ZW5kcyBqc051bGwoKSB7IGNvbnN0cnVjdG9yKCkgeyBsZXQgcmV0ID0g
dGhpczsgcmV0dXJuIHJldDsgfSB9CiAgICAgY2xhc3MgRiBleHRlbmRzIGpzTnVsbCgpIHsgY29u
c3RydWN0b3IoKSB7IHJldHVybiAyNTsgfSB9CiAgICAgY2xhc3MgRyBleHRlbmRzIGpzTnVsbCgp
IHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gfQotICAgIGxldCByZXN1bHQgPSBSZWZsZWN0
LmNvbnN0cnVjdChFLCBbXSwgRCk7Ci0gICAgYXNzZXJ0KHJlc3VsdCBpbnN0YW5jZW9mIEQpOwot
ICAgIGFzc2VydChyZXN1bHQgaW5zdGFuY2VvZiBPYmplY3QpOwotCi0gICAgcmVzdWx0ID0gUmVm
bGVjdC5jb25zdHJ1Y3QoRiwgW10sIEQpOwotICAgIGFzc2VydChyZXN1bHQgaW5zdGFuY2VvZiBE
KTsKLSAgICBhc3NlcnQocmVzdWx0IGluc3RhbmNlb2YgT2JqZWN0KTsKKyAgICBhc3NlcnRUaHJv
dygoKSA9PiBSZWZsZWN0LmNvbnN0cnVjdChFLCBbXSwgRCksICdSZWZlcmVuY2VFcnJvcjogQ2Fu
bm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLicpOworICAgIGFzc2VydFRocm93KCgp
ID0+IFJlZmxlY3QuY29uc3RydWN0KEYsIFtdLCBEKSwgJ1R5cGVFcnJvcjogQ2Fubm90IHJldHVy
biBhIG5vbi1vYmplY3QgdHlwZSBpbiB0aGUgY29uc3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNz
LicpOwogCiAgICAgbGV0IHRocmV3ID0gZmFsc2U7CiAgICAgdHJ5IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>