<?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>213317</bug_id>
          
          <creation_ts>2020-06-17 14:46:25 -0700</creation_ts>
          <short_desc>Promise built-in functions should be anonymous non-constructors</short_desc>
          <delta_ts>2020-06-18 11:25:35 -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>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=204214</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663680</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 14:46:25 -0700</bug_when>
    <thetext>Promise built-in functions should be anonymous non-constructors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663685</commentid>
    <comment_count>1</comment_count>
      <attachid>402158</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 15:15:32 -0700</bug_when>
    <thetext>Created attachment 402158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663692</commentid>
    <comment_count>2</comment_count>
      <attachid>402158</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-17 15:47:21 -0700</bug_when>
    <thetext>Comment on attachment 402158
Patch

Can you ensure what bytecode is actually emitted for the rewritten functions and Promise/InternalPromise constructors? This part is super performance critical part. So we need to be extra careful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663717</commentid>
    <comment_count>3</comment_count>
      <attachid>402158</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 17:26:55 -0700</bug_when>
    <thetext>Comment on attachment 402158
Patch

Thank you for review, Darin!

I am denying commit queue to make sure that comma operator doesn&apos;t impact emitted bytecode &amp; Promise microbenchmarks are neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663872</commentid>
    <comment_count>4</comment_count>
      <attachid>402207</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-18 07:56:23 -0700</bug_when>
    <thetext>Created attachment 402207
Patch

Add info on microbenchmarks and bytecode to ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663873</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-18 07:59:01 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 402158 [details]
&gt; Patch
&gt; 
&gt; Can you ensure what bytecode is actually emitted for the rewritten functions
&gt; and Promise/InternalPromise constructors? This part is super performance
&gt; critical part. So we need to be extra careful.

Promise constructors bytecode is unchanged (new_func_exp is emitted), while @createResolvingFunctions (used in slow path for `Promise.resolve(thenable)`) bytecode is reduced by 2 ops:

```
-createResolvingFunctions#BmeHaL:[0x10cfbc480-&gt;0x10cfe5600, NoneFunctionCall, 66 (StrictMode)]: 17 instructions (0 16-bit instructions, 0 32-bit instructions, 5 instructions with metadata); 186 bytes (120 metadata bytes); 2 parameter(s); 12 callee register(s); 10 variable(s); scope at loc4
+createResolvingFunctions#DBfCeH:[0x1035bc480-&gt;0x1035e5600, NoneFunctionCall, 60 (StrictMode)]: 15 instructions (0 16-bit instructions, 0 32-bit instructions, 5 instructions with metadata); 180 bytes (120 metadata bytes); 2 parameter(s); 12 callee register(s); 10 variable(s); scope at loc4
 [   0] enter              
 [   1] get_scope          loc4
 [   3] mov                loc5, loc4
 [   6] check_traps        
 [   7] mov                loc6, callee
-[  10] create_lexical_environment loc7, loc4, Cell: 0x10cfb80c0 (0x10cff8460:[0x383, SymbolTable, {}, NonArray, Leaf]), StructureID: 899(const0), Undefined(const1)
+[  10] create_lexical_environment loc7, loc4, Cell: 0x1035b80c0 (0x1035f8460:[0x450a, SymbolTable, {}, NonArray, Leaf]), StructureID: 17674(const0), Undefined(const1)
 [  15] mov                loc4, loc7
 [  18] put_to_scope       loc7, 0, arg1, 1073743876&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|StrictMode&gt;, 0, 0
-[  26] new_func           loc10, loc4, 0
-[  30] mov                loc8, loc10
-[  33] new_func           loc10, loc4, 1
-[  37] mov                loc9, loc10
-[  40] put_to_scope       loc7, 1, False(const2), 1073741828&lt;ThrowIfNotFound|LocalClosureVar|Initialization|StrictMode&gt;, 0, 1
-[  48] new_object         loc10, 2
-[  52] put_by_id          loc10, 2, loc8, IsDirect|Strict
-[  58] put_by_id          loc10, 3, loc9, IsDirect|Strict
-[  64] ret                loc10
+[  26] put_to_scope       loc7, 1, False(const2), 1073741828&lt;ThrowIfNotFound|LocalClosureVar|Initialization|StrictMode&gt;, 0, 1
+[  34] new_func_exp       loc9, loc4, 0
+[  38] new_func_exp       loc8, loc4, 1
+[  42] new_object         loc10, 2
+[  46] put_by_id          loc10, 2, loc9, IsDirect|Strict
+[  52] put_by_id          loc10, 3, loc8, IsDirect|Strict
+[  58] ret                loc10
 
 Identifiers:
   id0 = promise
   id1 = alreadyResolved
   id2 = PrivateSymbol.resolve
   id3 = PrivateSymbol.reject
 
 Constants:
-   k0 = Cell: 0x10cfb80c0 (0x10cff8460:[0x383, SymbolTable, {}, NonArray, Leaf]), StructureID: 899
+   k0 = Cell: 0x1035b80c0 (0x1035f8460:[0x450a, SymbolTable, {}, NonArray, Leaf]), StructureID: 17674
    k1 = Undefined
    k2 = False
```

Promise microbenchmarks are neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663929</commentid>
    <comment_count>6</comment_count>
      <attachid>402207</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 11:09:42 -0700</bug_when>
    <thetext>Comment on attachment 402207
Patch

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663930</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-18 11:22:19 -0700</bug_when>
    <thetext>Committed r263222: &lt;https://trac.webkit.org/changeset/263222&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402207.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663931</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-18 11:23:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/64497346&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402158</attachid>
            <date>2020-06-17 15:15:32 -0700</date>
            <delta_ts>2020-06-18 07:56:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213317-20200618011531.patch</filename>
            <type>text/plain</type>
            <size>11863</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Y2YyYjE4OTg0NWI2MTcxNmViYTQ2NjMzNjViYjVmY2UwZmZmNDhmLi45MjFhNjVhMDIxY2IyZGY0
MmVlZTI1NmJiMWY5OGM3YmZjM2JkZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMC0wNi0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUHJvbWlzZSBidWlsdC1pbiBmdW5jdGlvbnMgc2hvdWxkIGJlIGFu
b255bW91cyBub24tY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTMzMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIHVzZXJsYW5kLWV4cG9zZWQgUHJvbWlz
ZSBidWlsdC1pbiBmdW5jdGlvbnMKKyAgICAgICAgbm9uLWNvbnN0cnVjdG9ycyBhbmQgc2V0cyB0
aGVpciAibmFtZSIgcHJvcGVydGllcyB0byBlbXB0eSBzdHJpbmdzCisgICAgICAgIGFzIHBlciBz
cGVjIFsxXSwgYWxpZ25pbmcgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAg
ICBAY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zV2l0aG91dFByb21pc2UgY2hhbmdlIGlzIGNvdmVy
ZWQgYnkgdGVzdDI2MidzCisgICAgICAgIGFzeW5jLWdlbmVyYXRvci95aWVsZC10aGVuYWJsZS1j
cmVhdGUtcmVzb2x2aW5nLWZ1bmN0aW9ucy0qLmpzIGNhc2VzLgorCisgICAgICAgIFsxXTogaHR0
cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1lY21hc2NyaXB0LXN0YW5kYXJkLWJ1aWx0LWluLW9i
amVjdHMKKworICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VDb25zdHJ1Y3Rvci5qczoKKyAgICAg
ICAgKG5ha2VkQ29uc3RydWN0b3IuUHJvbWlzZSk6CisgICAgICAgIChuYWtlZENvbnN0cnVjdG9y
LkludGVybmFsUHJvbWlzZSk6CisgICAgICAgICogYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMu
anM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLm5ld1Byb21pc2VDYXBhYmlsaXR5U2xvdyk6Cisg
ICAgICAgIChnbG9iYWxQcml2YXRlLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyk6CisgICAgICAg
IChnbG9iYWxQcml2YXRlLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1dpdGhvdXRQcm9taXNlKToK
KyAgICAgICAgKGdsb2JhbFByaXZhdGUuY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zLnJlc29sdmUp
OiBEZWxldGVkLgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5jcmVhdGVSZXNvbHZpbmdGdW5jdGlv
bnMucmVqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKHJlc29sdmUpOiBEZWxldGVkLgorICAgICAg
ICAocmVqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBidWlsdGlucy9Qcm9taXNlUHJvdG90eXBl
LmpzOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5nZXRUaGVuRmluYWxseSk6CisgICAgICAgIChn
bG9iYWxQcml2YXRlLmdldENhdGNoRmluYWxseSk6CisgICAgICAgICh2YWx1ZVRodW5rKTogRGVs
ZXRlZC4KKyAgICAgICAgKHRocm93ZXIpOiBEZWxldGVkLgorCiAyMDIwLTA2LTE3ICBLZWl0aCBN
aWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgICR2bS5oYXZlQUJhZFRp
bWUvaXNIYXZpbmdBQmFkVGltZSBzaG91bGQgd29yayB3aXRoIG5vbi1nbG9iYWxPYmplY3QgcGFy
YW1ldGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21p
c2VDb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNl
Q29uc3RydWN0b3IuanMKaW5kZXggZGJjODVlZjdmZjhiZGUzZGUyNjc2MTQ1YTNiMDRmYjYyZWE1
MWQ1NC4uMWM3ZTUwMjBiZmY2MzM1NjNmNDc0ZGIzNTk4NGNjYTU2NGNlMGE0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VDb25zdHJ1Y3Rvci5qcwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZUNvbnN0cnVjdG9yLmpz
CkBAIC0yOTEsMTAgKzI5MSwxMCBAQCBmdW5jdGlvbiBQcm9taXNlKGV4ZWN1dG9yKQogCiAgICAg
dHJ5IHsKICAgICAgICAgZXhlY3V0b3IoCi0gICAgICAgICAgICBmdW5jdGlvbiAocmVzb2x1dGlv
bikgeworICAgICAgICAgICAgKHJlc29sdXRpb24pID0+IHsKICAgICAgICAgICAgICAgICByZXR1
cm4gQHJlc29sdmVQcm9taXNlV2l0aEZpcnN0UmVzb2x2aW5nRnVuY3Rpb25DYWxsQ2hlY2soY2Fw
dHVyZWRQcm9taXNlLCByZXNvbHV0aW9uKTsKICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBm
dW5jdGlvbiAocmVhc29uKSB7CisgICAgICAgICAgICAocmVhc29uKSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIEByZWplY3RQcm9taXNlV2l0aEZpcnN0UmVzb2x2aW5nRnVuY3Rpb25DYWxs
Q2hlY2soY2FwdHVyZWRQcm9taXNlLCByZWFzb24pOwogICAgICAgICAgICAgfSk7CiAgICAgfSBj
YXRjaCAoZXJyb3IpIHsKQEAgLTMxNywxMCArMzE3LDEwIEBAIGZ1bmN0aW9uIEludGVybmFsUHJv
bWlzZShleGVjdXRvcikKIAogICAgIHRyeSB7CiAgICAgICAgIGV4ZWN1dG9yKAotICAgICAgICAg
ICAgZnVuY3Rpb24gKHJlc29sdXRpb24pIHsKKyAgICAgICAgICAgIChyZXNvbHV0aW9uKSA9PiB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIEByZXNvbHZlUHJvbWlzZVdpdGhGaXJzdFJlc29sdmlu
Z0Z1bmN0aW9uQ2FsbENoZWNrKGNhcHR1cmVkUHJvbWlzZSwgcmVzb2x1dGlvbik7CiAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKHJlYXNvbikgeworICAgICAgICAgICAgKHJl
YXNvbikgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBAcmVqZWN0UHJvbWlzZVdpdGhGaXJz
dFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENoZWNrKGNhcHR1cmVkUHJvbWlzZSwgcmVhc29uKTsKICAg
ICAgICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKaW5kZXggYWExYWY2OWEx
ZmE0ZjRjZWU4MjM2YTQ3YzA1Y2IzN2MyZDM0ZjZmZC4uMTY4NTJmMWM4ODhmYTE3MWQwNGY4NTMw
NzI4Y2UxMmM3MjRmMGYzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qcwpAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBuZXdQ
cm9taXNlQ2FwYWJpbGl0eVNsb3coY29uc3RydWN0b3IpCiAgICAgICAgIEBwcm9taXNlOiBAdW5k
ZWZpbmVkLAogICAgIH07CiAKLSAgICB2YXIgcHJvbWlzZSA9IG5ldyBjb25zdHJ1Y3RvcihmdW5j
dGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgY29uc3RydWN0
b3IoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICBpZiAocHJvbWlzZUNhcGFiaWxpdHku
QHJlc29sdmUgIT09IEB1bmRlZmluZWQpCiAgICAgICAgICAgICBAdGhyb3dUeXBlRXJyb3IoInJl
c29sdmUgZnVuY3Rpb24gaXMgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgaWYgKHByb21pc2VDYXBh
YmlsaXR5LkByZWplY3QgIT09IEB1bmRlZmluZWQpCkBAIC0yNDEsMjMgKzI0MSwyMyBAQCBmdW5j
dGlvbiBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMocHJvbWlzZSkKIAogICAgIHZhciBhbHJlYWR5
UmVzb2x2ZWQgPSBmYWxzZTsKIAotICAgIGZ1bmN0aW9uIEByZXNvbHZlKHJlc29sdXRpb24pIHsK
KyAgICB2YXIgcmVzb2x2ZSA9ICgwLCAvKiBwcmV2ZW50IGZ1bmN0aW9uIG5hbWUgaW5mZXJlbmNl
ICovIChyZXNvbHV0aW9uKSA9PiB7CiAgICAgICAgIGlmIChhbHJlYWR5UmVzb2x2ZWQpCiAgICAg
ICAgICAgICByZXR1cm4gQHVuZGVmaW5lZDsKICAgICAgICAgYWxyZWFkeVJlc29sdmVkID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gQHJlc29sdmVQcm9taXNlKHByb21pc2UsIHJlc29sdXRpb24p
OwotICAgIH0KKyAgICB9KTsKIAotICAgIGZ1bmN0aW9uIEByZWplY3QocmVhc29uKSB7CisgICAg
dmFyIHJlamVjdCA9ICgwLCAvKiBwcmV2ZW50IGZ1bmN0aW9uIG5hbWUgaW5mZXJlbmNlICovIChy
ZWFzb24pID0+IHsKICAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZlZCkKICAgICAgICAgICAgIHJl
dHVybiBAdW5kZWZpbmVkOwogICAgICAgICBhbHJlYWR5UmVzb2x2ZWQgPSB0cnVlOwogCiAgICAg
ICAgIHJldHVybiBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pOwotICAgIH0KKyAgICB9
KTsKIAotICAgIHJldHVybiB7IEByZXNvbHZlLCBAcmVqZWN0IH07CisgICAgcmV0dXJuIHsgQHJl
c29sdmU6IHJlc29sdmUsIEByZWplY3Q6IHJlamVjdCB9OwogfQogCiBAZ2xvYmFsUHJpdmF0ZQpA
QCAtMzMwLDIzICszMzAsMjMgQEAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zV2l0
aG91dFByb21pc2Uob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpCiAKICAgICB2YXIgYWxyZWFkeVJl
c29sdmVkID0gZmFsc2U7CiAKLSAgICBmdW5jdGlvbiBAcmVzb2x2ZShyZXNvbHV0aW9uKSB7Cisg
ICAgdmFyIHJlc29sdmUgPSAoMCwgLyogcHJldmVudCBmdW5jdGlvbiBuYW1lIGluZmVyZW5jZSAq
LyAocmVzb2x1dGlvbikgPT4gewogICAgICAgICBpZiAoYWxyZWFkeVJlc29sdmVkKQogICAgICAg
ICAgICAgcmV0dXJuIEB1bmRlZmluZWQ7CiAgICAgICAgIGFscmVhZHlSZXNvbHZlZCA9IHRydWU7
CiAKICAgICAgICAgQHJlc29sdmVXaXRob3V0UHJvbWlzZShyZXNvbHV0aW9uLCBvbkZ1bGZpbGxl
ZCwgb25SZWplY3RlZCk7Ci0gICAgfQorICAgIH0pOwogCi0gICAgZnVuY3Rpb24gQHJlamVjdChy
ZWFzb24pIHsKKyAgICB2YXIgcmVqZWN0ID0gKDAsIC8qIHByZXZlbnQgZnVuY3Rpb24gbmFtZSBp
bmZlcmVuY2UgKi8gKHJlYXNvbikgPT4gewogICAgICAgICBpZiAoYWxyZWFkeVJlc29sdmVkKQog
ICAgICAgICAgICAgcmV0dXJuIEB1bmRlZmluZWQ7CiAgICAgICAgIGFscmVhZHlSZXNvbHZlZCA9
IHRydWU7CiAKICAgICAgICAgQHJlamVjdFdpdGhvdXRQcm9taXNlKHJlYXNvbiwgb25GdWxmaWxs
ZWQsIG9uUmVqZWN0ZWQpOwotICAgIH0KKyAgICB9KTsKIAotICAgIHJldHVybiB7IEByZXNvbHZl
LCBAcmVqZWN0IH07CisgICAgcmV0dXJuIHsgQHJlc29sdmU6IHJlc29sdmUsIEByZWplY3Q6IHJl
amVjdCB9OwogfQogCiBAZ2xvYmFsUHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1Byb21pc2VQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvUHJvbWlzZVByb3RvdHlwZS5qcwppbmRleCBlYzVlM2IyM2I1NDEyOTQ3YTEw
MDdjMjVjNmM4YzNjNTZjYzYwMmQxLi4wOTk3MjU0ZjdhZDQ3YTRjOWU0YTdhNGQ1NDIwZmIxNzlh
MDY5MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlz
ZVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlz
ZVByb3RvdHlwZS5qcwpAQCAtMTAyLDcgKzEwMiw3IEBAIGZ1bmN0aW9uIGdldFRoZW5GaW5hbGx5
KG9uRmluYWxseSwgY29uc3RydWN0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0
dXJuIGZ1bmN0aW9uKHZhbHVlKQorICAgIHJldHVybiAodmFsdWUpID0+CiAgICAgewogICAgICAg
ICBAYXNzZXJ0KHR5cGVvZiBvbkZpbmFsbHkgPT09ICJmdW5jdGlvbiIpOwogICAgICAgICB2YXIg
cmVzdWx0ID0gb25GaW5hbGx5KCk7CkBAIC0xMTMsOSArMTEzLDcgQEAgZnVuY3Rpb24gZ2V0VGhl
bkZpbmFsbHkob25GaW5hbGx5LCBjb25zdHJ1Y3RvcikKICAgICAgICAgcmVzdWx0Q2FwYWJpbGl0
eS5AcmVzb2x2ZS5AY2FsbChAdW5kZWZpbmVkLCByZXN1bHQpOwogCiAgICAgICAgIHZhciBwcm9t
aXNlID0gcmVzdWx0Q2FwYWJpbGl0eS5AcHJvbWlzZTsKLSAgICAgICAgdmFyIHZhbHVlVGh1bmsg
PSBmdW5jdGlvbiAoKSB7IHJldHVybiB2YWx1ZTsgfTsKLQotICAgICAgICByZXR1cm4gcHJvbWlz
ZS50aGVuKHZhbHVlVGh1bmspOworICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKCgpID0+IHZh
bHVlKTsKICAgICB9CiB9CiAKQEAgLTEyNCw3ICsxMjIsNyBAQCBmdW5jdGlvbiBnZXRDYXRjaEZp
bmFsbHkob25GaW5hbGx5LCBjb25zdHJ1Y3RvcikKIHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAg
ICByZXR1cm4gZnVuY3Rpb24ocmVhc29uKQorICAgIHJldHVybiAocmVhc29uKSA9PgogICAgIHsK
ICAgICAgICAgQGFzc2VydCh0eXBlb2Ygb25GaW5hbGx5ID09PSAiZnVuY3Rpb24iKTsKICAgICAg
ICAgdmFyIHJlc3VsdCA9IG9uRmluYWxseSgpOwpAQCAtMTM1LDggKzEzMyw2IEBAIGZ1bmN0aW9u
IGdldENhdGNoRmluYWxseShvbkZpbmFsbHksIGNvbnN0cnVjdG9yKQogICAgICAgICByZXN1bHRD
YXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJlc3VsdCk7CiAKICAgICAgICAg
dmFyIHByb21pc2UgPSByZXN1bHRDYXBhYmlsaXR5LkBwcm9taXNlOwotICAgICAgICB2YXIgdGhy
b3dlciA9IGZ1bmN0aW9uICgpIHsgdGhyb3cgcmVhc29uOyB9OwotCi0gICAgICAgIHJldHVybiBw
cm9taXNlLnRoZW4odGhyb3dlcik7CisgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKCkgPT4g
eyB0aHJvdyByZWFzb247IH0pOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTVhYTViMTNjZDcwYzY4NTZkZjQ3OWI1Mjcw
OTE1OGFmOTk5Njc1YS4uZDhhYzgwMzNkNzU0OWUyZDY5MGNkNDgwODRjZGZmNzU0MDY2ODk4OSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAyMC0wNi0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CisKKyAgICAgICAgUHJvbWlzZSBidWlsdC1pbiBmdW5jdGlvbnMgc2hvdWxkIGJl
IGFub255bW91cyBub24tY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgMjAg
dGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTA2LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNo
dmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVzdDI2MiB0byBjb21taXQg
OGQzZGQyZDFhMGE1CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggMDA4MDMxOWJjYmU3
ZmNkODM1ZDNjMTBhMzJmZmY3ZjAwNzllYjY4ZS4uZWIxYTg2MDg2NGI3MmE4YWYyMzcxN2JmZDk0
ZDE2OGU1NWNkOWM0MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtOTk0LDMwICs5
OTQsNiBAQCB0ZXN0L2J1aWx0LWlucy9PYmplY3Qvc2VhbC9wcm94eS1uby1vd25rZXlzLXJldHVy
bmVkLWtleXMtb3JkZXIuanM6CiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvdmFsdWVzL29yZGVyLWFm
dGVyLWRlZmluZS1wcm9wZXJ0eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2IsIGFdIGFuZCBbYSwgYl0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9jcmVhdGUtcmVz
b2x2aW5nLWZ1bmN0aW9ucy1yZWplY3QuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVz
dEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdv
dCBmYWxzZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2
MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLXRlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvY3JlYXRlLXJlc29sdmluZy1mdW5jdGlvbnMtcmVzb2x2ZS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwotdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9leGVjdXRvci1m
dW5jdGlvbi1ub25jb25zdHJ1Y3Rvci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFs
c2XCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL1Byb21pc2UvcHJvdG90eXBlL2ZpbmFs
bHkvaW52b2tlcy10aGVuLXdpdGgtZnVuY3Rpb24uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IGZ1bGZpbGxtZW50IGhhbmRsZXIgaXMgbm90IGNvbnN0cnVjdG9yJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogZnVsZmlsbG1lbnQgaGFuZGxlciBpcyBub3QgY29uc3RydWN0b3In
Ci10ZXN0L2J1aWx0LWlucy9Qcm9taXNlL3Byb3RvdHlwZS9maW5hbGx5L3JlamVjdGVkLW9ic2Vy
dmFibGUtdGhlbi1jYWxscy1hcmd1bWVudC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6QXN5bmNU
ZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQg
Z290IGZhbHNlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0
MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwotdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9wcm90b3R5cGUvZmluYWxseS9yZXNvbHZlZC1vYnNlcnZhYmxl
LXRoZW4tY2FsbHMtYXJndW1lbnQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVzdEZh
aWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBm
YWxzZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVy
cm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLXRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvcmVqZWN0LWZ1bmN0aW9uLW5vbmNvbnN0cnVjdG9yLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9yZXNvbHZlLWZ1bmN0
aW9uLW5vbmNvbnN0cnVjdG9yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9i
dWlsdC1pbnMvUHJveHkvYXBwbHkvYXJndW1lbnRzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmdW5jdGlvbiBBcnJheSgpIHsnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmdW5jdGlvbiBB
cnJheSgpIHsnCkBAIC0yMTExLDEyICsyMDg3LDYgQEAgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9hc3luYy1nZW5lcmF0b3IvZ2VuZXJhdG9yLWNyZWF0ZWQtYWZ0ZXItZGVjbC1pbnN0LmpzOgog
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVj
dCBBc3luY0dlbmVyYXRvcl3Cuywgwqtbb2JqZWN0IEFzeW5jR2VuZXJhdG9yXcK7KSB0byBiZSBm
YWxzZScKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJhdG9yL25hbWVkLWV2
YWwtdmFyLXNjb3BlLXN5bnRheC1lcnIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwnCi10ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2FzeW5jLWdlbmVyYXRvci95
aWVsZC10aGVuYWJsZS1jcmVhdGUtcmVzb2x2aW5nLWZ1bmN0aW9ucy1yZWplY3QuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
OkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRy
dWUgYnV0IGdvdCBmYWxzZScKLXRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJh
dG9yL3lpZWxkLXRoZW5hYmxlLWNyZWF0ZS1yZXNvbHZpbmctZnVuY3Rpb25zLXJlc29sdmUuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIHRydWUgYnV0IGdvdCBmYWxzZScKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXdhaXQv
YXN5bmMtYXdhaXQtaW50ZXJsZWF2ZWQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVz
dEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtBd2FpdDogMSwg
UHJvbWlzZTogMSwgUHJvbWlzZTogMiwgQXdhaXQ6IDJdIGFuZCBbQXdhaXQ6IDEsIFByb21pc2U6
IDEsIEF3YWl0OiAyLCBQcm9taXNlOiAyXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBBc3lu
Yy9hd2FpdCBhbmQgcHJvbWlzZXMgc2hvdWxkIGJlIGludGVybGVhdmVkJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgW0F3YWl0OiAxLCBQcm9taXNlOiAxLCBQcm9taXNlOiAyLCBBd2FpdDogMl0gYW5k
IFtBd2FpdDogMSwgUHJvbWlzZTogMSwgQXdhaXQ6IDIsIFByb21pc2U6IDJdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuIEFzeW5jL2F3YWl0IGFuZCBwcm9taXNlcyBzaG91bGQgYmUgaW50ZXJs
ZWF2ZWQnCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402207</attachid>
            <date>2020-06-18 07:56:23 -0700</date>
            <delta_ts>2020-06-18 11:22:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213317-20200618175621.patch</filename>
            <type>text/plain</type>
            <size>12164</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZGJjY2FlMmU5Mzk2NzkzNjdmNTkyYmQ4NWY1N2M2OWY1NjEwZDkxLi5jNjU1YjdiNTc2NjcwYzc3
MDBhN2I1ZTZjM2M5NTdhNzA5M2NmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wNi0xOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUHJvbWlzZSBidWlsdC1pbiBmdW5jdGlvbnMgc2hvdWxkIGJlIGFu
b255bW91cyBub24tY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTMzMTcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIHVzZXJsYW5kLWV4cG9zZWQgUHJvbWlzZSBi
dWlsdC1pbiBmdW5jdGlvbnMKKyAgICAgICAgbm9uLWNvbnN0cnVjdG9ycyBhbmQgc2V0cyB0aGVp
ciAibmFtZSIgcHJvcGVydGllcyB0byBlbXB0eSBzdHJpbmdzCisgICAgICAgIGFzIHBlciBzcGVj
IFsxXSwgYWxpZ25pbmcgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAgICBA
Y3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zV2l0aG91dFByb21pc2UgY2hhbmdlIGlzIGNvdmVyZWQg
YnkgdGVzdDI2MidzCisgICAgICAgIGFzeW5jLWdlbmVyYXRvci95aWVsZC10aGVuYWJsZS1jcmVh
dGUtcmVzb2x2aW5nLWZ1bmN0aW9ucy0qLmpzIGNhc2VzLgorCisgICAgICAgIFByb21pc2UgbWlj
cm9iZW5jaG1hcmtzIGFyZSBuZXV0cmFsLiBQcm9taXNlIGNvbnN0cnVjdG9ycyBieXRlY29kZSBp
cworICAgICAgICB1bmNoYW5nZWQsIHdoaWxlIEBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMqIGJ5
dGVjb2RlIGlzIHJlZHVjZWQgYnkgMgorICAgICAgICBpbnN0cnVjdGlvbnMuCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWVjbWFzY3JpcHQtc3RhbmRhcmQtYnVp
bHQtaW4tb2JqZWN0cworCisgICAgICAgICogYnVpbHRpbnMvUHJvbWlzZUNvbnN0cnVjdG9yLmpz
OgorICAgICAgICAobmFrZWRDb25zdHJ1Y3Rvci5Qcm9taXNlKToKKyAgICAgICAgKG5ha2VkQ29u
c3RydWN0b3IuSW50ZXJuYWxQcm9taXNlKToKKyAgICAgICAgKiBidWlsdGlucy9Qcm9taXNlT3Bl
cmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2JhbFByaXZhdGUubmV3UHJvbWlzZUNhcGFiaWxpdHlT
bG93KToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUuY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKToK
KyAgICAgICAgKGdsb2JhbFByaXZhdGUuY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zV2l0aG91dFBy
b21pc2UpOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS5jcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMu
cmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChnbG9iYWxQcml2YXRlLmNyZWF0ZVJlc29sdmlu
Z0Z1bmN0aW9ucy5yZWplY3QpOiBEZWxldGVkLgorICAgICAgICAocmVzb2x2ZSk6IERlbGV0ZWQu
CisgICAgICAgIChyZWplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGJ1aWx0aW5zL1Byb21pc2VQ
cm90b3R5cGUuanM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLmdldFRoZW5GaW5hbGx5KToKKyAg
ICAgICAgKGdsb2JhbFByaXZhdGUuZ2V0Q2F0Y2hGaW5hbGx5KToKKyAgICAgICAgKHZhbHVlVGh1
bmspOiBEZWxldGVkLgorICAgICAgICAodGhyb3dlcik6IERlbGV0ZWQuCisKIDIwMjAtMDYtMTcg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBGcmVl
emUgSlNCaWdJbnQgd2hlbiBzZXR0aW5nIGl0IGFzIGEgY29uc3RhbnQgaW4gQUkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlQ29uc3RydWN0b3IuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZUNvbnN0cnVjdG9yLmpzCmlu
ZGV4IGRiYzg1ZWY3ZmY4YmRlM2RlMjY3NjE0NWEzYjA0ZmI2MmVhNTFkNTQuLjFjN2U1MDIwYmZm
NjMzNTYzZjQ3NGRiMzU5ODRjY2E1NjRjZTBhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9Qcm9taXNlQ29uc3RydWN0b3IuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VDb25zdHJ1Y3Rvci5qcwpAQCAtMjkxLDEwICsyOTEs
MTAgQEAgZnVuY3Rpb24gUHJvbWlzZShleGVjdXRvcikKIAogICAgIHRyeSB7CiAgICAgICAgIGV4
ZWN1dG9yKAotICAgICAgICAgICAgZnVuY3Rpb24gKHJlc29sdXRpb24pIHsKKyAgICAgICAgICAg
IChyZXNvbHV0aW9uKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEByZXNvbHZlUHJvbWlz
ZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENoZWNrKGNhcHR1cmVkUHJvbWlzZSwgcmVz
b2x1dGlvbik7CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKHJlYXNvbikg
eworICAgICAgICAgICAgKHJlYXNvbikgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBAcmVq
ZWN0UHJvbWlzZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENoZWNrKGNhcHR1cmVkUHJv
bWlzZSwgcmVhc29uKTsKICAgICAgICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycm9yKSB7CkBA
IC0zMTcsMTAgKzMxNywxMCBAQCBmdW5jdGlvbiBJbnRlcm5hbFByb21pc2UoZXhlY3V0b3IpCiAK
ICAgICB0cnkgewogICAgICAgICBleGVjdXRvcigKLSAgICAgICAgICAgIGZ1bmN0aW9uIChyZXNv
bHV0aW9uKSB7CisgICAgICAgICAgICAocmVzb2x1dGlvbikgPT4gewogICAgICAgICAgICAgICAg
IHJldHVybiBAcmVzb2x2ZVByb21pc2VXaXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlvbkNhbGxDaGVj
ayhjYXB0dXJlZFByb21pc2UsIHJlc29sdXRpb24pOwogICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIChyZWFzb24pIHsKKyAgICAgICAgICAgIChyZWFzb24pID0+IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gQHJlamVjdFByb21pc2VXaXRoRmlyc3RSZXNvbHZpbmdGdW5jdGlv
bkNhbGxDaGVjayhjYXB0dXJlZFByb21pc2UsIHJlYXNvbik7CiAgICAgICAgICAgICB9KTsKICAg
ICB9IGNhdGNoIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4IGFhMWFmNjlhMWZhNGY0Y2VlODIzNmE0N2Mw
NWNiMzdjMmQzNGY2ZmQuLjc5MmJlMjllNGIzYTNiOGMyNDU2NWUwMzcxNTYyOWVmZjEyODMxNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0
aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJh
dGlvbnMuanMKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFiaWxpdHlT
bG93KGNvbnN0cnVjdG9yKQogICAgICAgICBAcHJvbWlzZTogQHVuZGVmaW5lZCwKICAgICB9Owog
Ci0gICAgdmFyIHByb21pc2UgPSBuZXcgY29uc3RydWN0b3IoZnVuY3Rpb24gKHJlc29sdmUsIHJl
amVjdCkgeworICAgIHZhciBwcm9taXNlID0gbmV3IGNvbnN0cnVjdG9yKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKICAgICAgICAgaWYgKHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlICE9PSBAdW5k
ZWZpbmVkKQogICAgICAgICAgICAgQHRocm93VHlwZUVycm9yKCJyZXNvbHZlIGZ1bmN0aW9uIGlz
IGFscmVhZHkgc2V0Iik7CiAgICAgICAgIGlmIChwcm9taXNlQ2FwYWJpbGl0eS5AcmVqZWN0ICE9
PSBAdW5kZWZpbmVkKQpAQCAtMjM2LDI4ICsyMzYsMjcgQEAgZnVuY3Rpb24gcmVqZWN0UHJvbWlz
ZVdpdGhGaXJzdFJlc29sdmluZ0Z1bmN0aW9uQ2FsbENoZWNrKHByb21pc2UsIHJlYXNvbikKIGZ1
bmN0aW9uIGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9taXNlKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKLQogICAgIEBhc3NlcnQoQGlzUHJvbWlzZShwcm9taXNlKSk7CiAKICAgICB2YXIgYWxy
ZWFkeVJlc29sdmVkID0gZmFsc2U7CiAKLSAgICBmdW5jdGlvbiBAcmVzb2x2ZShyZXNvbHV0aW9u
KSB7CisgICAgdmFyIHJlc29sdmUgPSAoMCwgLyogcHJldmVudCBmdW5jdGlvbiBuYW1lIGluZmVy
ZW5jZSAqLyAocmVzb2x1dGlvbikgPT4gewogICAgICAgICBpZiAoYWxyZWFkeVJlc29sdmVkKQog
ICAgICAgICAgICAgcmV0dXJuIEB1bmRlZmluZWQ7CiAgICAgICAgIGFscmVhZHlSZXNvbHZlZCA9
IHRydWU7CiAKICAgICAgICAgcmV0dXJuIEByZXNvbHZlUHJvbWlzZShwcm9taXNlLCByZXNvbHV0
aW9uKTsKLSAgICB9CisgICAgfSk7CiAKLSAgICBmdW5jdGlvbiBAcmVqZWN0KHJlYXNvbikgewor
ICAgIHZhciByZWplY3QgPSAoMCwgLyogcHJldmVudCBmdW5jdGlvbiBuYW1lIGluZmVyZW5jZSAq
LyAocmVhc29uKSA9PiB7CiAgICAgICAgIGlmIChhbHJlYWR5UmVzb2x2ZWQpCiAgICAgICAgICAg
ICByZXR1cm4gQHVuZGVmaW5lZDsKICAgICAgICAgYWxyZWFkeVJlc29sdmVkID0gdHJ1ZTsKIAog
ICAgICAgICByZXR1cm4gQHJlamVjdFByb21pc2UocHJvbWlzZSwgcmVhc29uKTsKLSAgICB9Cisg
ICAgfSk7CiAKLSAgICByZXR1cm4geyBAcmVzb2x2ZSwgQHJlamVjdCB9OworICAgIHJldHVybiB7
IEByZXNvbHZlOiByZXNvbHZlLCBAcmVqZWN0OiByZWplY3QgfTsKIH0KIAogQGdsb2JhbFByaXZh
dGUKQEAgLTMzMCwyMyArMzI5LDIzIEBAIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9u
c1dpdGhvdXRQcm9taXNlKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKQogCiAgICAgdmFyIGFscmVh
ZHlSZXNvbHZlZCA9IGZhbHNlOwogCi0gICAgZnVuY3Rpb24gQHJlc29sdmUocmVzb2x1dGlvbikg
eworICAgIHZhciByZXNvbHZlID0gKDAsIC8qIHByZXZlbnQgZnVuY3Rpb24gbmFtZSBpbmZlcmVu
Y2UgKi8gKHJlc29sdXRpb24pID0+IHsKICAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZlZCkKICAg
ICAgICAgICAgIHJldHVybiBAdW5kZWZpbmVkOwogICAgICAgICBhbHJlYWR5UmVzb2x2ZWQgPSB0
cnVlOwogCiAgICAgICAgIEByZXNvbHZlV2l0aG91dFByb21pc2UocmVzb2x1dGlvbiwgb25GdWxm
aWxsZWQsIG9uUmVqZWN0ZWQpOwotICAgIH0KKyAgICB9KTsKIAotICAgIGZ1bmN0aW9uIEByZWpl
Y3QocmVhc29uKSB7CisgICAgdmFyIHJlamVjdCA9ICgwLCAvKiBwcmV2ZW50IGZ1bmN0aW9uIG5h
bWUgaW5mZXJlbmNlICovIChyZWFzb24pID0+IHsKICAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZl
ZCkKICAgICAgICAgICAgIHJldHVybiBAdW5kZWZpbmVkOwogICAgICAgICBhbHJlYWR5UmVzb2x2
ZWQgPSB0cnVlOwogCiAgICAgICAgIEByZWplY3RXaXRob3V0UHJvbWlzZShyZWFzb24sIG9uRnVs
ZmlsbGVkLCBvblJlamVjdGVkKTsKLSAgICB9CisgICAgfSk7CiAKLSAgICByZXR1cm4geyBAcmVz
b2x2ZSwgQHJlamVjdCB9OworICAgIHJldHVybiB7IEByZXNvbHZlOiByZXNvbHZlLCBAcmVqZWN0
OiByZWplY3QgfTsKIH0KIAogQGdsb2JhbFByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1Byb21pc2VQcm90b3R5cGUuanMKaW5kZXggZWM1ZTNiMjNiNTQxMjk0
N2ExMDA3YzI1YzZjOGMzYzU2Y2M2MDJkMS4uMDk5NzI1NGY3YWQ0N2E0YzllNGE3YTRkNTQyMGZi
MTc5YTA2OTA3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1By
b21pc2VQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1By
b21pc2VQcm90b3R5cGUuanMKQEAgLTEwMiw3ICsxMDIsNyBAQCBmdW5jdGlvbiBnZXRUaGVuRmlu
YWxseShvbkZpbmFsbHksIGNvbnN0cnVjdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAg
IHJldHVybiBmdW5jdGlvbih2YWx1ZSkKKyAgICByZXR1cm4gKHZhbHVlKSA9PgogICAgIHsKICAg
ICAgICAgQGFzc2VydCh0eXBlb2Ygb25GaW5hbGx5ID09PSAiZnVuY3Rpb24iKTsKICAgICAgICAg
dmFyIHJlc3VsdCA9IG9uRmluYWxseSgpOwpAQCAtMTEzLDkgKzExMyw3IEBAIGZ1bmN0aW9uIGdl
dFRoZW5GaW5hbGx5KG9uRmluYWxseSwgY29uc3RydWN0b3IpCiAgICAgICAgIHJlc3VsdENhcGFi
aWxpdHkuQHJlc29sdmUuQGNhbGwoQHVuZGVmaW5lZCwgcmVzdWx0KTsKIAogICAgICAgICB2YXIg
cHJvbWlzZSA9IHJlc3VsdENhcGFiaWxpdHkuQHByb21pc2U7Ci0gICAgICAgIHZhciB2YWx1ZVRo
dW5rID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH07Ci0KLSAgICAgICAgcmV0dXJuIHBy
b21pc2UudGhlbih2YWx1ZVRodW5rKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoKSA9
PiB2YWx1ZSk7CiAgICAgfQogfQogCkBAIC0xMjQsNyArMTIyLDcgQEAgZnVuY3Rpb24gZ2V0Q2F0
Y2hGaW5hbGx5KG9uRmluYWxseSwgY29uc3RydWN0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwog
Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKHJlYXNvbikKKyAgICByZXR1cm4gKHJlYXNvbikgPT4KICAg
ICB7CiAgICAgICAgIEBhc3NlcnQodHlwZW9mIG9uRmluYWxseSA9PT0gImZ1bmN0aW9uIik7CiAg
ICAgICAgIHZhciByZXN1bHQgPSBvbkZpbmFsbHkoKTsKQEAgLTEzNSw4ICsxMzMsNiBAQCBmdW5j
dGlvbiBnZXRDYXRjaEZpbmFsbHkob25GaW5hbGx5LCBjb25zdHJ1Y3RvcikKICAgICAgICAgcmVz
dWx0Q2FwYWJpbGl0eS5AcmVzb2x2ZS5AY2FsbChAdW5kZWZpbmVkLCByZXN1bHQpOwogCiAgICAg
ICAgIHZhciBwcm9taXNlID0gcmVzdWx0Q2FwYWJpbGl0eS5AcHJvbWlzZTsKLSAgICAgICAgdmFy
IHRocm93ZXIgPSBmdW5jdGlvbiAoKSB7IHRocm93IHJlYXNvbjsgfTsKLQotICAgICAgICByZXR1
cm4gcHJvbWlzZS50aGVuKHRocm93ZXIpOworICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKCgp
ID0+IHsgdGhyb3cgcmVhc29uOyB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI3NjI2NTNlZjQ1YzRkZTExZWQ5MTJm
Y2FkMDhiMDVhZmYzNTU2YWMuLmQxMGZhNTY4NzBmYTc2YzgxNzFiNDhmODYyYmNjNTIyMWM0OTBl
MGYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDYtMTggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxl
c2hAZ21haWwuY29tPgorCisgICAgICAgIFByb21pc2UgYnVpbHQtaW4gZnVuY3Rpb25zIHNob3Vs
ZCBiZSBhbm9ueW1vdXMgbm9uLWNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDIw
IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wNi0xNyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZyZWV6ZSBKU0JpZ0ludCB3aGVuIHNl
dHRpbmcgaXQgYXMgYSBjb25zdGFudCBpbiBBSQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmlu
ZGV4IDAwODAzMTliY2JlN2ZjZDgzNWQzYzEwYTMyZmZmN2YwMDc5ZWI2OGUuLmViMWE4NjA4NjRi
NzJhOGFmMjM3MTdiZmQ5NGQxNjhlNTVjZDljNDEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKQEAgLTk5NCwzMCArOTk0LDYgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L3NlYWwvcHJveHkt
bm8tb3dua2V5cy1yZXR1cm5lZC1rZXlzLW9yZGVyLmpzOgogdGVzdC9idWlsdC1pbnMvT2JqZWN0
L3ZhbHVlcy9vcmRlci1hZnRlci1kZWZpbmUtcHJvcGVydHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMuICcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBh
bmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL1By
b21pc2UvY3JlYXRlLXJlc29sdmluZy1mdW5jdGlvbnMtcmVqZWN0LmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rl
c3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBn
b3QgZmFsc2UnCi10ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2NyZWF0ZS1yZXNvbHZpbmctZnVuY3Rp
b25zLXJlc29sdmUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVz
dDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLXRlc3QvYnVpbHQtaW5zL1By
b21pc2UvZXhlY3V0b3ItZnVuY3Rpb24tbm9uY29uc3RydWN0b3IuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBi
ZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L3Byb3RvdHlwZS9maW5hbGx5L2ludm9rZXMtdGhlbi13aXRoLWZ1bmN0aW9uLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBmdWxmaWxsbWVudCBoYW5kbGVyIGlzIG5vdCBjb25zdHJ1Y3Rv
cicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGZ1bGZpbGxtZW50IGhhbmRsZXIgaXMg
bm90IGNvbnN0cnVjdG9yJwotdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9wcm90b3R5cGUvZmluYWxs
eS9yZWplY3RlZC1vYnNlcnZhYmxlLXRoZW4tY2FsbHMtYXJndW1lbnQuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5j
VGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0
IGdvdCBmYWxzZScKLXRlc3QvYnVpbHQtaW5zL1Byb21pc2UvcHJvdG90eXBlL2ZpbmFsbHkvcmVz
b2x2ZWQtb2JzZXJ2YWJsZS10aGVuLWNhbGxzLWFyZ3VtZW50LmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rlc3RG
YWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3Qg
ZmFsc2UnCi10ZXN0L2J1aWx0LWlucy9Qcm9taXNlL3JlamVjdC1mdW5jdGlvbi1ub25jb25zdHJ1
Y3Rvci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL1Byb21p
c2UvcmVzb2x2ZS1mdW5jdGlvbi1ub25jb25zdHJ1Y3Rvci5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCcKIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2FwcGx5L2FyZ3VtZW50cy1yZWFsbS5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZnVuY3Rpb24g
QXJyYXkoKSB7JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrZnVuY3Rpb24gQXJyYXkoKSB7JwpAQCAtMjExMSwxMiArMjA4Nyw2IEBAIHRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJhdG9yL2dlbmVyYXRvci1jcmVhdGVkLWFmdGVy
LWRlY2wtaW5zdC5qczoKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq1tvYmplY3QgQXN5bmNHZW5lcmF0b3JdwrssIMKrW29iamVjdCBBc3luY0dlbmVy
YXRvcl3CuykgdG8gYmUgZmFsc2UnCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2FzeW5jLWdl
bmVyYXRvci9uYW1lZC1ldmFsLXZhci1zY29wZS1zeW50YXgtZXJyLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9h
c3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUtY3JlYXRlLXJlc29sdmluZy1mdW5jdGlvbnMt
cmVqZWN0LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJF
cnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi10ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2FzeW5jLWdlbmVyYXRvci95aWVsZC10aGVuYWJsZS1jcmVhdGUtcmVzb2x2aW5nLWZ1bmN0
aW9ucy1yZXNvbHZlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRl
c3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCiB0ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2F3YWl0L2FzeW5jLWF3YWl0LWludGVybGVhdmVkLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBbQXdhaXQ6IDEsIFByb21pc2U6IDEsIFByb21pc2U6IDIsIEF3YWl0OiAyXSBhbmQgW0F3
YWl0OiAxLCBQcm9taXNlOiAxLCBBd2FpdDogMiwgUHJvbWlzZTogMl0gdG8gaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cy4gQXN5bmMvYXdhaXQgYW5kIHByb21pc2VzIHNob3VsZCBiZSBpbnRlcmxlYXZl
ZCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9y
OiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtBd2FpdDogMSwgUHJvbWlzZTogMSwgUHJvbWlzZTog
MiwgQXdhaXQ6IDJdIGFuZCBbQXdhaXQ6IDEsIFByb21pc2U6IDEsIEF3YWl0OiAyLCBQcm9taXNl
OiAyXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBBc3luYy9hd2FpdCBhbmQgcHJvbWlzZXMg
c2hvdWxkIGJlIGludGVybGVhdmVkJwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>