<?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>203456</bug_id>
          
          <creation_ts>2019-10-26 03:12:10 -0700</creation_ts>
          <short_desc>Align JSGlobalObject::defineOwnProperty() with the spec and other runtimes</short_desc>
          <delta_ts>2021-03-14 15:21:38 -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://github.com/web-platform-tests/wpt/pull/28037</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=223134</see_also>
          <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>yaohouyou</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>amir_mark</cc>
    
    <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>nisl_grammarly1</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584218</commentid>
    <comment_count>0</comment_count>
    <who name="">yaohouyou</who>
    <bug_when>2019-10-26 03:12:10 -0700</bug_when>
    <thetext>Version: d940b47

Testcase:
var NISLFuzzingFunc = function() {
    var tmp = Object.defineProperty(this, &quot;undefined&quot;, {
        configurable: true,
        get: function() {
            return false;
        }
    });
    print(tmp);
};
NISLFuzzingFunc();

Run steps:
WebKitBuild/Release/bin/jsc testcase.js

Output:
[object global]

Expected output:
Throw TypeError exception

Descriptions:
According to ECMAScript-262, JSC should throw TypeError exception when run the testcase above. So I suspect it is a bug.
The references of ECMAScript-262 are as follows:
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-undefined
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-definepropertyorthrow
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-validateandapplypropertydescriptor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584362</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-27 18:59:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/56658015&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615401</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-05 16:45:56 -0800</bug_when>
    <thetext>*** Bug 207310 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615404</commentid>
    <comment_count>3</comment_count>
      <attachid>389902</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-05 16:51:07 -0800</bug_when>
    <thetext>Created attachment 389902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615758</commentid>
    <comment_count>4</comment_count>
      <attachid>389985</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-06 13:28:49 -0800</bug_when>
    <thetext>Created attachment 389985
Patch

From EWS it appears that defineGetter and defineSetter are less dead than I thought. This patch is like the previous one except it does not remove them from JSGlobalObject.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628142</commentid>
    <comment_count>5</comment_count>
      <attachid>389985</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-10 01:37:13 -0700</bug_when>
    <thetext>Comment on attachment 389985
Patch

Looks like JSC tests etc. are failing. Can you review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628373</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-10 13:58:34 -0700</bug_when>
    <thetext>/review/revise/s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724657</commentid>
    <comment_count>7</comment_count>
      <attachid>418998</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-02 07:30:35 -0800</bug_when>
    <thetext>Created attachment 418998
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724662</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-02 07:39:27 -0800</bug_when>
    <thetext>*** Bug 220842 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724758</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-02 10:45:04 -0800</bug_when>
    <thetext>Dupe bug 220842, and change assignee to Alexey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726269</commentid>
    <comment_count>10</comment_count>
      <attachid>419461</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-05 14:08:16 -0800</bug_when>
    <thetext>Created attachment 419461
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728225</commentid>
    <comment_count>11</comment_count>
      <attachid>420024</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-11 12:13:40 -0800</bug_when>
    <thetext>Created attachment 420024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728226</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-11 12:14:27 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730475</commentid>
    <comment_count>13</comment_count>
      <attachid>420024</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-02-17 13:11:11 -0800</bug_when>
    <thetext>Comment on attachment 420024
Patch

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

This looks good to me overall, thanks for this patch!
r=me

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:1345
&gt; +    loadp CodeBlock[cfr], scratch

It is probably not very important, but the loads of CodeBlock[cfr] and then CodeBlock::m_globalObject are repeated here and in varInjectionCheck, they could probably be factored out of these macros.

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:-1478
&gt; -    slot.disallowVMEntry.reset();

We lose this slot.disallowVMEntry.reset() call. I don&apos;t understand why it is no longer necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738671</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-11 15:47:04 -0800</bug_when>
    <thetext>(In reply to Robin Morisset from comment #13)
&gt; This looks good to me overall, thanks for this patch!
&gt; r=me

Thank you for reviewing &amp; investigating the stress test failure.

&gt; It is probably not very important, but the loads of CodeBlock[cfr] and then
&gt; CodeBlock::m_globalObject are repeated here and in varInjectionCheck, they
&gt; could probably be factored out of these macros.

Yeah, it would be nice to pass a register with global object.

However, this would require a) changing signature of 32-bit varInjectionCheck() to accept a register and b) extracting varInjectionCheckWithGlobalObject() / varReadOnlyCheckWithGlobalObject() macros because double load happens only in .pGlobalVarWithVarInjectionChecks branch, which itself is rare.

Landing with FIXME comment for now.

&gt; We lose this slot.disallowVMEntry.reset() call. I don&apos;t understand why it is
&gt; no longer necessary.

`slot.disallowVMEntry.reset()` was necessary for VMInquiry PropertySlot (please see its constructor), which was removed in favor of using different symbolTableGet().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738693</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-11 16:08:14 -0800</bug_when>
    <thetext>Committed r274308 (235202@main): &lt;https://commits.webkit.org/235202@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738995</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-03-12 12:48:11 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 223134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739000</commentid>
    <comment_count>17</comment_count>
    <who name="Amir Mark Jr">amir_mark</who>
    <bug_when>2021-03-12 12:51:53 -0800</bug_when>
    <thetext>This is reverted because it may have caused an assertion failure with these three tests:

stress/global-object-define-own-property.js
stress/global-object-define-own-property-put-to-scope.js
stress/eval-func-decl-in-frozen-global.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739282</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-14 15:21:38 -0700</bug_when>
    <thetext>(In reply to Amir Mark Jr from comment #17)
&gt; This is reverted because it may have caused an assertion failure with these
&gt; three tests:
&gt; 
&gt; stress/global-object-define-own-property.js
&gt; stress/global-object-define-own-property-put-to-scope.js
&gt; stress/eval-func-decl-in-frozen-global.js

r274406 fixed the failed assertions.
Thank you for triaging!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389902</attachid>
            <date>2020-02-05 16:51:07 -0800</date>
            <delta_ts>2020-02-06 13:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch203456</filename>
            <type>text/plain</type>
            <size>6865</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Nzk3YmQ3ZTU1YjguLjkzNDYzZGUwYmE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA1ICBSb2Jp
biBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBpc3N1ZSBhYm91
dCByZWRlZmluaW5nIHVuZGVmaW5lZCBvZiB0aGlzIG9iamVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NjY1ODAxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgZml4IGluIHRoaXMgcGF0Y2ggcmV2ZWFsZWQgYSBidWcgaW4gdG8tdGhpcy1i
ZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0YXJ0cy1hcy1sZXhp
Y2FsLWVudmlyb25tZW50LmpzLAorICAgICAgICB3aGVyZSB0aGVyZSB3YXMgYW4gdW53YW50ZWQg
bmFtZSBjb25mbGljdC4gSSB2ZXJpZmllZCBpbiBDaHJvbWUgdGhhdCB0aGlzIHdhcyBhbiBlcnJv
ciBpbiB0aGUgb3JpZ2luYWwgdGVzdCwgbm90IGFuIGludGVuZGVkIHBhcnQgb2YgaXQuCisKKyAg
ICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtdW5kZWZpbmVkLW9uLWdsb2JhbC1vYmplY3QuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy90by10aGlzLWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9z
ZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52aXJvbm1lbnQuanM6CisKIDIw
MjAtMDItMDQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAg
ICAgIFF1YW50aWZpZXJzIGFmdGVyIGxvb2thaGVhZCBhc3NlcnRpb25zIHNob3VsZCBiZSBzeW50
YXggZXJyb3JzIGluIFVuaWNvZGUgcGF0dGVybnMgb25seQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvcmVkZWZpbmUtdW5kZWZpbmVkLW9uLWdsb2JhbC1vYmplY3QuanMgYi9KU1Rlc3RzL3N0
cmVzcy9yZWRlZmluZS11bmRlZmluZWQtb24tZ2xvYmFsLW9iamVjdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2ZhMTBlN2Q4NTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9yZWRlZmluZS11bmRlZmluZWQtb24tZ2xvYmFsLW9iamVjdC5qcwpA
QCAtMCwwICsxLDcgQEAKK09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAidW5kZWZpbmVkIiwg
eworICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgICBnZXQ6IGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorfSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3RvLXRoaXMtYmVmb3JlLWFycm93LWZ1bmN0aW9uLWNsb3Nlcy1vdmVyLXRoaXMtdGhhdC1zdGFy
dHMtYXMtbGV4aWNhbC1lbnZpcm9ubWVudC5qcyBiL0pTVGVzdHMvc3RyZXNzL3RvLXRoaXMtYmVm
b3JlLWFycm93LWZ1bmN0aW9uLWNsb3Nlcy1vdmVyLXRoaXMtdGhhdC1zdGFydHMtYXMtbGV4aWNh
bC1lbnZpcm9ubWVudC5qcwppbmRleCBkNTQ5YThhODQ3ZS4uMWExZmRmZmMyZDIgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3RvLXRoaXMtYmVmb3JlLWFycm93LWZ1bmN0aW9uLWNsb3Nlcy1v
dmVyLXRoaXMtdGhhdC1zdGFydHMtYXMtbGV4aWNhbC1lbnZpcm9ubWVudC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy90by10aGlzLWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlz
LXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52aXJvbm1lbnQuanMKQEAgLTE4LDcgKzE4LDcgQEAg
ZnVuY3Rpb24gZm9vKCkgewogICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7CiAgICAgICAgIGxldCB4
ID0gKCkgPT4gewogICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGRlZmluZVByb3BlcnR5
IG9uIGEgSlNMZXhpY2FsRW52aXJvbm1lbnQhIFRoYXQncyBhIGh1Z2UgYnVnLgotICAgICAgICAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJmb28iLCB7CisgICAgICAgICAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkodGhpcywgImJheiIsIHsKICAgICAgICAgICAgICAgICBnZXQ6IGZ1
bmN0aW9uKCkgeyB9LAogICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24oKSB7IH0KICAgICAg
ICAgICAgIH0pOwpAQCAtMzgsNyArMzgsNyBAQCBmdW5jdGlvbiBmb28yKCkgewogICAgIGZ1bmN0
aW9uIHdyYXBwZXIoKSB7CiAgICAgICAgIGxldCB4ID0gKCkgPT4gewogICAgICAgICAgICAgLy8g
VGhpcyBzaG91bGQgbm90IGRlZmluZVByb3BlcnR5IG9uIGEgSlNMZXhpY2FsRW52aXJvbm1lbnQh
IFRoYXQncyBhIGh1Z2UgYnVnLgotICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRo
aXMsICJmb28iLCB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImJh
ejIiLCB7CiAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgfSwKICAgICAgICAgICAg
ICAgICBzZXQ6IGZ1bmN0aW9uKCkgeyB9CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDVmMGE2OTg5M2I4Li42YTdjZWUwZmViNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDItMDUgIFJvYmluIE1vcmlzc2V0ICA8cm1v
cmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBBIGlzc3VlIGFib3V0IHJlZGVmaW5pbmcgdW5k
ZWZpbmVkIG9mIHRoaXMgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM0NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NjU4MDE1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY29yZGlu
ZyB0byBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wL2luZGV4
Lmh0bWwjc2VjLXVuZGVmaW5lZCwgSlNHbG9iYWxPYmplY3QgZ290IHByb3BlcnRpZXMgc3VjaCBh
cyAidW5kZWZpbmVkIiB3aGljaCBhcmUgbm9uLXdyaXRhYmxlIGFuZCBub24tY29uZmlndXJhYmxl
LgorICAgICAgICBTbyB0aGUgZm9sbG93aW5nIGNvZGUgc2hvdWxkIHRocm93IGEgdHlwZSBlcnJv
cjoKKyAgICAgICAgYGBgCisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAidW5k
ZWZpbmVkIiwgeworICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgICAgICAgICAg
Z2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgICAgICBgYGAKKyAgICAgICAgQW5kIGl0IGRvZXMgaW4g
Q2hyb21lLCBidXQgZGlkIG5vdCBpbiBTYWZhcmkuCisKKyAgICAgICAgVGhpcyB3YXMgY2F1c2Vk
IGJ5IGNvZGUgZnJvbSAyMDEyLCB3aGljaCBhcyBmYXIgYXMgSSBjYW4gdGVsbCBpcyBqdXN0IHVz
ZWxlc3MgYW5kIHdyb25nIGZvciBhbGwgbW9kZXJuIHZlcnNpb25zIG9mIEpTLgorICAgICAgICBJ
IGFsc28gcmVtb3ZlZCBkZWZpbmVHZXR0ZXIgYW5kIGRlZmluZVNldHRlciBvbiBKU0dsb2JhbE9i
amVjdCBhcyB0aGV5IHNlZW1lZCB0byBiZSBkZWFkIGNvZGUuCisKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6
CisKIDIwMjAtMDItMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBTdHJ1Y3R1cmU6OnNldE1heE9mZnNldCBhbmQgc2V0VHJhbnNpdGlvbk9mZnNl
dCBhcmUgcmFjeQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCmluZGV4IGIzYzk4MGE0NjYyLi4zOTg1OTM3MjIzZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBad2FyaWNoIChjd3p3
YXJpY2hAdXdhdGVybG9vLmNhKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTI4NCwxNiArMTI4NCw2
IEBAIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBCYXNlOjpwdXQodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KSk7CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpT
T2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9v
bCBzaG91bGRUaHJvdykKLXsKLSAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3QodGhpc09i
amVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7Ci0gICAg
Ly8gc2lsZW50bHkgaWdub3JlIGF0dGVtcHRzIHRvIGFkZCBhY2Nlc3NvcnMgYWxpYXNpbmcgdmFy
cy4KLSAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmIHN5bWJvbFRh
YmxlR2V0KHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkodGhpc09iamVjdCwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKLX0KLQog
dm9pZCBKU0dsb2JhbE9iamVjdDo6YWRkR2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImIGlkZW50
KQogewogICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUoKS0+bV9sb2Nr
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDFlNzZjMGIzNDZlLi5lNDUyYTEyYzdjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqICBDb3B5cmln
aHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU2NiwxMCArNTY2LDYgQEAgcHVibGljOgogICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEpT
R2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgYm9vbCBwdXQoSlNDZWxsKiwgSlNHbG9iYWxPYmplY3QqLCBQcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIHZvaWQgZGVmaW5lR2V0dGVyKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3Qq
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkZWZpbmVTZXR0ZXIoSlNPYmpl
Y3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmMs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29s
IGRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5h
bWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwotCiAgICAg
dm9pZCBhZGRWYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eShnbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389985</attachid>
            <date>2020-02-06 13:28:49 -0800</date>
            <delta_ts>2021-02-02 07:30:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch203456</filename>
            <type>text/plain</type>
            <size>6563</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZTgyODk3MDI0MDkuLjZmYzkxNWZlZGQzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA1ICBSb2Jp
biBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBpc3N1ZSBhYm91
dCByZWRlZmluaW5nIHVuZGVmaW5lZCBvZiB0aGlzIG9iamVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NjY1ODAxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgZml4IGluIHRoaXMgcGF0Y2ggcmV2ZWFsZWQgYSBidWcgaW4gdG8tdGhpcy1i
ZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0YXJ0cy1hcy1sZXhp
Y2FsLWVudmlyb25tZW50LmpzLAorICAgICAgICB3aGVyZSB0aGVyZSB3YXMgYW4gdW53YW50ZWQg
bmFtZSBjb25mbGljdC4gSSB2ZXJpZmllZCBpbiBDaHJvbWUgdGhhdCB0aGlzIHdhcyBhbiBlcnJv
ciBpbiB0aGUgb3JpZ2luYWwgdGVzdCwgbm90IGFuIGludGVuZGVkIHBhcnQgb2YgaXQuCisKKyAg
ICAgICAgKiBzdHJlc3MvcmVkZWZpbmUtdW5kZWZpbmVkLW9uLWdsb2JhbC1vYmplY3QuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy90by10aGlzLWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9z
ZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52aXJvbm1lbnQuanM6CisKIDIw
MjAtMDItMDUgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIERlbGV0aW5nIGEgcHJvcGVydHkgc2hvdWxkIG5vdCB0dXJuIHN0cnVjdHVyZXMgaW50
byB1bmNhY2hlYWJsZSBkaWN0aW9uYXJpZXMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Jl
ZGVmaW5lLXVuZGVmaW5lZC1vbi1nbG9iYWwtb2JqZWN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVk
ZWZpbmUtdW5kZWZpbmVkLW9uLWdsb2JhbC1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjdmYTEwZTdkODU2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvcmVkZWZpbmUtdW5kZWZpbmVkLW9uLWdsb2JhbC1vYmplY3QuanMKQEAgLTAsMCAr
MSw3IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgInVuZGVmaW5lZCIsIHsKKyAgICBj
b25maWd1cmFibGU6IHRydWUsCisgICAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KK30pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90by10aGlz
LWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxl
eGljYWwtZW52aXJvbm1lbnQuanMgYi9KU1Rlc3RzL3N0cmVzcy90by10aGlzLWJlZm9yZS1hcnJv
dy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52aXJv
bm1lbnQuanMKaW5kZXggZDU0OWE4YTg0N2UuLjFhMWZkZmZjMmQyIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy90by10aGlzLWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlz
LXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52aXJvbm1lbnQuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0
YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50LmpzCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9u
IGZvbygpIHsKICAgICBmdW5jdGlvbiB3cmFwcGVyKCkgewogICAgICAgICBsZXQgeCA9ICgpID0+
IHsKICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBkZWZpbmVQcm9wZXJ0eSBvbiBhIEpT
TGV4aWNhbEVudmlyb25tZW50ISBUaGF0J3MgYSBodWdlIGJ1Zy4KLSAgICAgICAgICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZm9vIiwgeworICAgICAgICAgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHRoaXMsICJiYXoiLCB7CiAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigp
IHsgfSwKICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKCkgeyB9CiAgICAgICAgICAgICB9
KTsKQEAgLTM4LDcgKzM4LDcgQEAgZnVuY3Rpb24gZm9vMigpIHsKICAgICBmdW5jdGlvbiB3cmFw
cGVyKCkgewogICAgICAgICBsZXQgeCA9ICgpID0+IHsKICAgICAgICAgICAgIC8vIFRoaXMgc2hv
dWxkIG5vdCBkZWZpbmVQcm9wZXJ0eSBvbiBhIEpTTGV4aWNhbEVudmlyb25tZW50ISBUaGF0J3Mg
YSBodWdlIGJ1Zy4KLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZm9v
IiwgeworICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJiYXoyIiwgewog
ICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IH0sCiAgICAgICAgICAgICAgICAgc2V0
OiBmdW5jdGlvbigpIHsgfQogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCA3YzIzMzAzYmRlOC4uNTEyNGJhMGFiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTA1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBh
cHBsZS5jb20+CisKKyAgICAgICAgQSBpc3N1ZSBhYm91dCByZWRlZmluaW5nIHVuZGVmaW5lZCBv
ZiB0aGlzIG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNDU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjY1ODAxNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY2NvcmRpbmcgdG8gaHR0
cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC9pbmRleC5odG1sI3Nl
Yy11bmRlZmluZWQsIEpTR2xvYmFsT2JqZWN0IGdvdCBwcm9wZXJ0aWVzIHN1Y2ggYXMgInVuZGVm
aW5lZCIgd2hpY2ggYXJlIG5vbi13cml0YWJsZSBhbmQgbm9uLWNvbmZpZ3VyYWJsZS4KKyAgICAg
ICAgU28gdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCB0aHJvdyBhIHR5cGUgZXJyb3I6CisgICAg
ICAgIGBgYAorICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgInVuZGVmaW5lZCIs
IHsKKyAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgICAgICAgICAgIGdldDogZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICB9KTsKKyAgICAgICAgYGBgCisgICAgICAgIEFuZCBpdCBkb2VzIGluIENocm9tZSwg
YnV0IGRpZCBub3QgaW4gU2FmYXJpLgorCisgICAgICAgIFRoaXMgd2FzIGNhdXNlZCBieSBjb2Rl
IGZyb20gMjAxMiwgd2hpY2ggYXMgZmFyIGFzIEkgY2FuIHRlbGwgaXMganVzdCB1c2VsZXNzIGFu
ZCB3cm9uZyBmb3IgYWxsIG1vZGVybiB2ZXJzaW9ucyBvZiBKUy4KKyAgICAgICAgSSBhbHNvIHJl
bW92ZWQgZGVmaW5lR2V0dGVyIGFuZCBkZWZpbmVTZXR0ZXIgb24gSlNHbG9iYWxPYmplY3QgYXMg
dGhleSBzZWVtZWQgdG8gYmUgZGVhZCBjb2RlLgorCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorCiAyMDIw
LTAyLTA1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAg
W1BsYXlTdGF0aW9uXSBCdWlsZCBhIHNoYXJlZCBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGIzYzk4MGE0
NjYyLi4zOTg1OTM3MjIzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMTI4NCwxNiArMTI4NCw2IEBAIGJvb2wgSlNHbG9iYWxPYmplY3Q6
OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
TmFtCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVjdCwg
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSk7CiB9CiAKLWJvb2wgSlNH
bG9iYWxPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKLXsKLSAgICBK
U0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVj
dCk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7Ci0gICAgLy8gc2lsZW50bHkgaWdub3JlIGF0dGVt
cHRzIHRvIGFkZCBhY2Nlc3NvcnMgYWxpYXNpbmcgdmFycy4KLSAgICBpZiAoZGVzY3JpcHRvci5p
c0FjY2Vzc29yRGVzY3JpcHRvcigpICYmIHN5bWJvbFRhYmxlR2V0KHRoaXNPYmplY3QsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmFzZTo6
ZGVmaW5lT3duUHJvcGVydHkodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKLX0KLQogdm9pZCBKU0dsb2JhbE9iamVjdDo6YWRk
R2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImIGlkZW50KQogewogICAgIENvbmN1cnJlbnRKU0xv
Y2tlciBsb2NrZXIoc3ltYm9sVGFibGUoKS0+bV9sb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDFlNzZjMGIzNDZlLi5jNTVlYTFj
NTdjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlk
ZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU2
OCw3ICs1NjgsNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9p
ZCBkZWZpbmVHZXR0ZXIoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIGdldHRlckZ1bmMsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyB2b2lkIGRlZmluZVNldHRlcihKU09iamVjdCosIEpTR2xvYmFsT2Jq
ZWN0KiwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuYywgdW5zaWduZWQgYXR0cmli
dXRlcyk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVmaW5lT3duUHJvcGVy
dHkoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAKICAgICB2b2lkIGFkZFZhcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418998</attachid>
            <date>2021-02-02 07:30:35 -0800</date>
            <delta_ts>2021-02-05 14:08:11 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-203456-20210202173033.patch</filename>
            <type>text/plain</type>
            <size>10027</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzIyMDYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTAyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBBbiBpc3N1ZSBhYm91dCByZWRlZmluaW5nIHVuZGVmaW5l
ZCBvZiAidGhpcyIgb2JqZWN0IChKU0dsb2JhbE9iamVjdCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2V2YWwtZnVuYy1kZWNsLWluLWZy
b3plbi1nbG9iYWwuanM6CisgICAgICAgIChPYmplY3QuZnJlZXplKToKKyAgICAgICAgKiBzdHJl
c3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0
YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50LmpzOgorCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVHlwZWRBcnJheSNmaWxs
IHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBDKysKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2V2YWwt
ZnVuYy1kZWNsLWluLWZyb3plbi1nbG9iYWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJl
c3MvZXZhbC1mdW5jLWRlY2wtaW4tZnJvemVuLWdsb2JhbC5qcwkocmV2aXNpb24gMjcxODY2KQor
KysgSlNUZXN0cy9zdHJlc3MvZXZhbC1mdW5jLWRlY2wtaW4tZnJvemVuLWdsb2JhbC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBhc3NlcnQoZ2xvYmFsTm9uV3JpdGFibGVEZXNj
cmlwdG9yLmVudW1lCiAKIE9iamVjdC5mcmVlemUodGhpcyk7CiB7Ci0gIHZhciBlcnJvciA9IGZh
bHNlOworICBsZXQgZXJyb3IgPSBmYWxzZTsKICAgdHJ5IHsKICAgICBldmFsKCd7IGZ1bmN0aW9u
IGJvbygpIHt9IH0nKTsKICAgfSBjYXRjaCAoZSkgewpJbmRleDogSlNUZXN0cy9zdHJlc3MvdG8t
dGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0YXJ0cy1h
cy1sZXhpY2FsLWVudmlyb25tZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3Rv
LXRoaXMtYmVmb3JlLWFycm93LWZ1bmN0aW9uLWNsb3Nlcy1vdmVyLXRoaXMtdGhhdC1zdGFydHMt
YXMtbGV4aWNhbC1lbnZpcm9ubWVudC5qcwkocmV2aXNpb24gMjcxODY2KQorKysgSlNUZXN0cy9z
dHJlc3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0
LXN0YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw3
ICsxOCw3IEBAIGZ1bmN0aW9uIGZvbygpIHsKICAgICBmdW5jdGlvbiB3cmFwcGVyKCkgewogICAg
ICAgICBsZXQgeCA9ICgpID0+IHsKICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBkZWZp
bmVQcm9wZXJ0eSBvbiBhIEpTTGV4aWNhbEVudmlyb25tZW50ISBUaGF0J3MgYSBodWdlIGJ1Zy4K
LSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZm9vIiwgeworICAgICAg
ICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJiYXoiLCB7CiAgICAgICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgfSwKICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKCkg
eyB9CiAgICAgICAgICAgICB9KTsKQEAgLTM4LDcgKzM4LDcgQEAgZnVuY3Rpb24gZm9vMigpIHsK
ICAgICBmdW5jdGlvbiB3cmFwcGVyKCkgewogICAgICAgICBsZXQgeCA9ICgpID0+IHsKICAgICAg
ICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBkZWZpbmVQcm9wZXJ0eSBvbiBhIEpTTGV4aWNhbEVu
dmlyb25tZW50ISBUaGF0J3MgYSBodWdlIGJ1Zy4KLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh0aGlzLCAiZm9vIiwgeworICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHRoaXMsICJiYXoyIiwgewogICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IH0sCiAg
ICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbigpIHsgfQogICAgICAgICAgICAgfSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTg2NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAy
MS0wMi0wMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAg
ICAgQW4gaXNzdWUgYWJvdXQgcmVkZWZpbmluZyB1bmRlZmluZWQgb2YgInRoaXMiIG9iamVjdCAo
SlNHbG9iYWxPYmplY3QpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0Lmg6CisgICAgICAg
IChKU0M6OnN5bWJvbFRhYmxlR2V0KToKKwogMjAyMS0wMS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBhdmFpbGFiaWxpdHkgYW5ub3RhdGlvbnMg
dG8gbWF0Y2ggdGhlIG1hY09TIDExLjAgYW5kIGlPUyAxNC4wIEdNIFNES3MKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlz
aW9uIDI3MTg2NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ1MCw2ICsxNDUwLDEzIEBAIGNhcGl0YWxOYW1l
ICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMKICAgICBmaXh1cFByb3RvdHlwZUNoYWluV2l0
aE9iamVjdFByb3RvdHlwZSh2bSk7CiB9CiAKK2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAg
aWYgKHN5bWJvbFRhYmxlR2V0KGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCksIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Cit9CisKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0xNDczLDEzICsxNDgwLDM0IEBAIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1
dChKU0NlbGwqIGNlbGwsIEoKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OmRlZmluZU93blByb3BlcnR5
KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwg
Ym9vbCBzaG91bGRUaHJvdykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTR2xvYmFsT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIC8vIHNpbGVudGx5IGlnbm9yZSBhdHRlbXB0cyB0
byBhZGQgYWNjZXNzb3JzIGFsaWFzaW5nIHZhcnMuCi0gICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nl
c3NvckRlc2NyaXB0b3IoKSAmJiBzeW1ib2xUYWJsZUdldCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc2xvdC5kaXNhbGxvd1ZNRW50
cnkucmVzZXQoKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkodGhpc09iamVj
dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
KworICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnk7CisgICAgUHJvcGVydHlEZXNjcmlwdG9yIGN1
cnJlbnREZXNjcmlwdG9yOworICAgIGlmIChzeW1ib2xUYWJsZUdldCh0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGVudHJ5LCBjdXJyZW50RGVzY3JpcHRvcikpIHsKKyAgICAgICAgYm9vbCBpc0V4
dGVuc2libGUgPSBmYWxzZTsgLy8gaWdub3JlZCBzaW5jZSBjdXJyZW50IGRlc2NyaXB0b3IgaXMg
cHJlc2VudAorICAgICAgICBib29sIGlzQ3VycmVudERlZmluZWQgPSB0cnVlOworICAgICAgICBi
b29sIGlzQ29tcGF0aWJsZURlc2NyaXB0b3IgPSB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbE9iamVjdCwgbnVsbHB0ciwgcHJvcGVydHlOYW1lLCBpc0V4dGVuc2libGUs
IGRlc2NyaXB0b3IsIGlzQ3VycmVudERlZmluZWQsIGN1cnJlbnREZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKCFpc0NvbXBhdGlibGVEZXNjcmlwdG9yKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkpIHsKKyAgICAgICAgICAgIGJvb2wg
aWdub3JlUmVhZE9ubHlFcnJvcnMgPSB0cnVlOworICAgICAgICAgICAgYm9vbCBwdXRSZXN1bHQg
PSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNl
dCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci52YWx1
ZSgpLCBzaG91bGRUaHJvdywgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1dFJlc3VsdCkpCisgICAg
ICAgICAgICAgICAgQVNTRVJUKHB1dFJlc3VsdCk7CisgICAgICAgICAgICBzY29wZS5hc3NlcnRO
b0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxl
UHJlc2VudCgpICYmICFkZXNjcmlwdG9yLndyaXRhYmxlKCkgJiYgIWVudHJ5LmlzUmVhZE9ubHko
KSkgeworICAgICAgICAgICAgZW50cnkuc2V0QXR0cmlidXRlcyhzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0
LT5zeW1ib2xUYWJsZSgpLT5zZXQocHJvcGVydHlOYW1lLnVpZCgpLCBlbnRyeSk7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpKTsKIH0KIAogdm9pZCBKU0ds
b2JhbE9iamVjdDo6YWRkR2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImIGlkZW50KQpAQCAtMjEx
MiwxMyArMjE0MCw2IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRpY0dsb2JhbHMoR2wK
ICAgICB9CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09i
amVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgaWYgKEJhc2U6OmdldE93
blByb3BlcnR5U2xvdChvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0KGpzQ2FzdDxK
U0dsb2JhbE9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmNsZWFyUmFyZURhdGEoSlNDZWxsKiBjZWxsKQogewogICAgIGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpLT5tX3JhcmVEYXRhID0gbnVsbHB0cjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkocmV2aXNp
b24gMjcxODY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjEzLDkgKzYxMyw2IEBAIHB1YmxpYzoKIAogICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCos
IEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBwdXQoSlNDZWxsKiwgSlNHbG9iYWxPYmplY3QqLCBQ
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotCi0gICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIHZvaWQgZGVmaW5lR2V0dGVyKEpTT2JqZWN0KiwgSlNHbG9iYWxPYmpl
Y3QqLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkZWZpbmVTZXR0ZXIoSlNP
YmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1
bmMsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBi
b29sIGRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogCiAg
ICAgdm9pZCBhZGRWYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTeW1ib2xUYWJsZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAkocmV2aXNpb24gMjcxODY2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC05OSwxNCArOTksMTQgQEAgaW5saW5lIGJvb2wgc3ltYm9sVGFibGVHZXQoCiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KIGlubGluZSBib29sIHN5
bWJvbFRhYmxlR2V0KAotICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCisgICAg
U3ltYm9sVGFibGVPYmplY3RUeXBlKiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IFN5bWJvbFRhYmxlRW50cnkmIGVudHJ5LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CiB7CiAgICAgU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlID0gKm9iamVjdC0+c3ltYm9sVGFibGUo
KTsKICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLm1fbG9jayk7CiAg
ICAgU3ltYm9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgaXRlciA9IHN5bWJvbFRhYmxlLmZpbmQobG9j
a2VyLCBwcm9wZXJ0eU5hbWUudWlkKCkpOwogICAgIGlmIChpdGVyID09IHN5bWJvbFRhYmxlLmVu
ZChsb2NrZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3ltYm9sVGFibGVFbnRyeTo6
RmFzdCBlbnRyeSA9IGl0ZXItPnZhbHVlOworICAgIGVudHJ5ID0gaXRlci0+dmFsdWU7CiAgICAg
QVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CiAKICAgICBTY29wZU9mZnNldCBvZmZzZXQgPSBlbnRy
eS5zY29wZU9mZnNldCgpOwpAQCAtMTE5LDI5ICsxMTksNiBAQCBpbmxpbmUgYm9vbCBzeW1ib2xU
YWJsZUdldCgKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3ltYm9sVGFibGVPYmplY3RUeXBlPgot
aW5saW5lIGJvb2wgc3ltYm9sVGFibGVHZXQoCi0gICAgU3ltYm9sVGFibGVPYmplY3RUeXBlKiBv
YmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCwKLSAg
ICBib29sJiBzbG90SXNXcml0ZWFibGUpCi17Ci0gICAgU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxl
ID0gKm9iamVjdC0+c3ltYm9sVGFibGUoKTsKLSAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2Vy
KHN5bWJvbFRhYmxlLm1fbG9jayk7Ci0gICAgU3ltYm9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgaXRl
ciA9IHN5bWJvbFRhYmxlLmZpbmQobG9ja2VyLCBwcm9wZXJ0eU5hbWUudWlkKCkpOwotICAgIGlm
IChpdGVyID09IHN5bWJvbFRhYmxlLmVuZChsb2NrZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgU3ltYm9sVGFibGVFbnRyeTo6RmFzdCBlbnRyeSA9IGl0ZXItPnZhbHVlOwotICAgIEFT
U0VSVCghZW50cnkuaXNOdWxsKCkpOwotCi0gICAgU2NvcGVPZmZzZXQgb2Zmc2V0ID0gZW50cnku
c2NvcGVPZmZzZXQoKTsKLSAgICAvLyBEZWZlbmQgYWdhaW5zdCB0aGUgaW5zcGVjdG9yIGFza2lu
ZyBmb3IgYSB2YXIgYWZ0ZXIgaXQgaGFzIGJlZW4gb3B0aW1pemVkIG91dC4KLSAgICBpZiAoIW9i
amVjdC0+aXNWYWxpZFNjb3BlT2Zmc2V0KG9mZnNldCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHNsb3Quc2V0VmFsdWUob2JqZWN0LCBlbnRyeS5nZXRBdHRyaWJ1dGVzKCkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSwgb2JqZWN0LT52YXJpYWJsZUF0KG9mZnNldCkuZ2V0
KCkpOwotICAgIHNsb3RJc1dyaXRlYWJsZSA9ICFlbnRyeS5pc1JlYWRPbmx5KCk7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4K
IEFMV0FZU19JTkxJTkUgdm9pZCBzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNldChWTSYg
dm0sIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiByZWcsIFdhdGNo
cG9pbnRTZXQqIHNldCkKIHsKICAgICByZWctPnNldCh2bSwgb2JqZWN0LCB2YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419461</attachid>
            <date>2021-02-05 14:08:16 -0800</date>
            <delta_ts>2021-02-11 12:13:35 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-203456-20210206000814.patch</filename>
            <type>text/plain</type>
            <size>25717</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzI0MzcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBBbiBpc3N1ZSBhYm91dCByZWRlZmluaW5nIHVuZGVmaW5l
ZCBvZiAidGhpcyIgb2JqZWN0IChKU0dsb2JhbE9iamVjdCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2V2YWwtZnVuYy1kZWNsLWluLWZy
b3plbi1nbG9iYWwuanM6CisgICAgICAgIChPYmplY3QuZnJlZXplKToKKyAgICAgICAgKiBzdHJl
c3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0
YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50LmpzOgorCiAyMDIxLTAyLTA1ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdkLCB1cGRhdGUgdGVz
dDI2Mi9jb25maWcueWFtbApJbmRleDogSlNUZXN0cy9zdHJlc3MvZXZhbC1mdW5jLWRlY2wtaW4t
ZnJvemVuLWdsb2JhbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9ldmFsLWZ1bmMt
ZGVjbC1pbi1mcm96ZW4tZ2xvYmFsLmpzCShyZXZpc2lvbiAyNzE5NzUpCisrKyBKU1Rlc3RzL3N0
cmVzcy9ldmFsLWZ1bmMtZGVjbC1pbi1mcm96ZW4tZ2xvYmFsLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw3ICszNiw3IEBAIGFzc2VydChnbG9iYWxOb25Xcml0YWJsZURlc2NyaXB0b3IuZW51bWUK
IAogT2JqZWN0LmZyZWV6ZSh0aGlzKTsKIHsKLSAgdmFyIGVycm9yID0gZmFsc2U7CisgIGxldCBl
cnJvciA9IGZhbHNlOwogICB0cnkgewogICAgIGV2YWwoJ3sgZnVuY3Rpb24gYm9vKCkge30gfScp
OwogICB9IGNhdGNoIChlKSB7CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy90by10aGlzLWJlZm9yZS1h
cnJvdy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxleGljYWwtZW52
aXJvbm1lbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvdG8tdGhpcy1iZWZvcmUt
YXJyb3ctZnVuY3Rpb24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0YXJ0cy1hcy1sZXhpY2FsLWVu
dmlyb25tZW50LmpzCShyZXZpc2lvbiAyNzE5NzUpCisrKyBKU1Rlc3RzL3N0cmVzcy90by10aGlz
LWJlZm9yZS1hcnJvdy1mdW5jdGlvbi1jbG9zZXMtb3Zlci10aGlzLXRoYXQtc3RhcnRzLWFzLWxl
eGljYWwtZW52aXJvbm1lbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgZnVu
Y3Rpb24gZm9vKCkgewogICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7CiAgICAgICAgIGxldCB4ID0g
KCkgPT4gewogICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGRlZmluZVByb3BlcnR5IG9u
IGEgSlNMZXhpY2FsRW52aXJvbm1lbnQhIFRoYXQncyBhIGh1Z2UgYnVnLgotICAgICAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJmb28iLCB7CisgICAgICAgICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkodGhpcywgImJheiIsIHsKICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0
aW9uKCkgeyB9LAogICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24oKSB7IH0KICAgICAgICAg
ICAgIH0pOwpAQCAtMzgsNyArMzgsNyBAQCBmdW5jdGlvbiBmb28yKCkgewogICAgIGZ1bmN0aW9u
IHdyYXBwZXIoKSB7CiAgICAgICAgIGxldCB4ID0gKCkgPT4gewogICAgICAgICAgICAgLy8gVGhp
cyBzaG91bGQgbm90IGRlZmluZVByb3BlcnR5IG9uIGEgSlNMZXhpY2FsRW52aXJvbm1lbnQhIFRo
YXQncyBhIGh1Z2UgYnVnLgotICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMs
ICJmb28iLCB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImJhejIi
LCB7CiAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgfSwKICAgICAgICAgICAgICAg
ICBzZXQ6IGZ1bmN0aW9uKCkgeyB9CiAgICAgICAgICAgICB9KTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMjcxOTc1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTA1ICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBBbiBpc3N1ZSBh
Ym91dCByZWRlZmluaW5nIHVuZGVmaW5lZCBvZiAidGhpcyIgb2JqZWN0IChKU0dsb2JhbE9iamVj
dCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVsZXRlUHJv
cGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjpKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6OmFkZEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50
aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6c3ltYm9sVGFibGVHZXQp
OgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OmRlbGV0ZVByb3Bl
cnR5TW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGU6On5EZWxldGVQcm9wZXJ0eU1vZGVTY29wZSk6IERl
bGV0ZWQuCisKIDIwMjEtMDEtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcxMTg2LgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDI3
MTk3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NzEsOCArNTcxLDggQEAgYm9vbCBKU0Z1bmN0aW9uOjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqIAogICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5j
dGlvbigpKSB7CiAgICAgICAgIHRoaXNPYmplY3QtPnJlaWZ5TGF6eVByb3BlcnR5Rm9ySG9zdE9y
QnVpbHRpbklmTmVlZGVkKHZtLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHZtLmRl
bGV0ZVByb3BlcnR5TW9kZSgpICE9IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZp
Z3VyYWJsZSkgewotICAgICAgICAvLyBGb3Igbm9uLWhvc3QgZnVuY3Rpb25zLCBkb24ndCBsZXQg
dGhlc2UgcHJvcGVydGllcyBieSBkZWxldGVkIC0gZXhjZXB0IGJ5IERlZmluZU93blByb3BlcnR5
LgorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZvciBub24taG9zdCBmdW5jdGlvbnMsIGRvbid0
IGxldCB0aGVzZSBwcm9wZXJ0aWVzIGJlIGRlbGV0ZWQuCiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSA9IHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVyIHx8
IHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpICYmIGV4ZWN1dGFi
bGUtPmhhc0NhbGxlckFuZEFyZ3VtZW50c1Byb3BlcnRpZXMoKSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDI3
MTk3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ0NSw2ICsxNDQ1LDEzIEBAIGNhcGl0YWxOYW1lICMjIENv
bnN0cnVjdG9yKiBsb3dlck5hbWUgIyMKICAgICBmaXh1cFByb3RvdHlwZUNoYWluV2l0aE9iamVj
dFByb3RvdHlwZSh2bSk7CiB9CiAKK2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgaWYgKHN5
bWJvbFRhYmxlR2V0KGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3Qob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9
CisKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0xNDY4LDEzICsxNDc1LDM0IEBAIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0Nl
bGwqIGNlbGwsIEoKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2Jq
ZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCBz
aG91bGRUaHJvdykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTR2xvYmFsT2JqZWN0KiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBQcm9wZXJ0
eVNsb3Qgc2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6
Vk1JbnF1aXJ5LCAmdm0pOwotICAgIC8vIHNpbGVudGx5IGlnbm9yZSBhdHRlbXB0cyB0byBhZGQg
YWNjZXNzb3JzIGFsaWFzaW5nIHZhcnMuCi0gICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRl
c2NyaXB0b3IoKSAmJiBzeW1ib2xUYWJsZUdldCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc2xvdC5kaXNhbGxvd1ZNRW50cnkucmVz
ZXQoKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkodGhpc09iamVjdCwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKworICAg
IFN5bWJvbFRhYmxlRW50cnkgZW50cnk7CisgICAgUHJvcGVydHlEZXNjcmlwdG9yIGN1cnJlbnRE
ZXNjcmlwdG9yOworICAgIGlmIChzeW1ib2xUYWJsZUdldCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGVudHJ5LCBjdXJyZW50RGVzY3JpcHRvcikpIHsKKyAgICAgICAgYm9vbCBpc0V4dGVuc2li
bGUgPSBmYWxzZTsgLy8gaWdub3JlZCBzaW5jZSBjdXJyZW50IGRlc2NyaXB0b3IgaXMgcHJlc2Vu
dAorICAgICAgICBib29sIGlzQ3VycmVudERlZmluZWQgPSB0cnVlOworICAgICAgICBib29sIGlz
Q29tcGF0aWJsZURlc2NyaXB0b3IgPSB2YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbE9iamVjdCwgbnVsbHB0ciwgcHJvcGVydHlOYW1lLCBpc0V4dGVuc2libGUsIGRlc2Ny
aXB0b3IsIGlzQ3VycmVudERlZmluZWQsIGN1cnJlbnREZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgaWYg
KCFpc0NvbXBhdGlibGVEZXNjcmlwdG9yKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlKCkpIHsKKyAgICAgICAgICAgIGJvb2wgaWdub3Jl
UmVhZE9ubHlFcnJvcnMgPSB0cnVlOworICAgICAgICAgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGlmIChzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNldCh0aGlz
T2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci52YWx1ZSgpLCBz
aG91bGRUaHJvdywgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1dFJlc3VsdCkpCisgICAgICAgICAg
ICAgICAgQVNTRVJUKHB1dFJlc3VsdCk7CisgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2Vw
dGlvbigpOworICAgICAgICB9CisgICAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxlUHJlc2Vu
dCgpICYmICFkZXNjcmlwdG9yLndyaXRhYmxlKCkgJiYgIWVudHJ5LmlzUmVhZE9ubHkoKSkgewor
ICAgICAgICAgICAgZW50cnkuc2V0QXR0cmlidXRlcyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5zeW1i
b2xUYWJsZSgpLT5zZXQocHJvcGVydHlOYW1lLnVpZCgpLCBlbnRyeSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9i
amVjdDo6YWRkR2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImIGlkZW50KQpAQCAtMTQ5MywxMSAr
MTUyMSw4IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZEdsb2JhbFZhcihjb25zdCAKICAgICBS
RUxFQVNFX0FTU0VSVChvZmZzZXRGb3JBc3NlcnQgPT0gb2Zmc2V0KTsKIH0KIAotdm9pZCBKU0ds
b2JhbE9iamVjdDo6YWRkRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQordm9pZCBKU0dsb2JhbE9iamVjdDo6YWRkRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7
Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKLSAgICBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lKTsKICAgICBhZGRHbG9iYWxWYXIocHJvcGVydHlOYW1lKTsKIH0KIApAQCAt
MjEwNywxMyArMjEzMiw2IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRpY0dsb2JhbHMo
R2wKICAgICB9CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChK
U09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgaWYgKEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdChvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0KGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OmNsZWFyUmFyZURhdGEoSlNDZWxsKiBjZWxsKQogewogICAgIGpz
Q2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpLT5tX3JhcmVEYXRhID0gbnVsbHB0cjsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDI3
MTk3NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjAzMSw3ICsyMDMxLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiBjZQogICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXRpYyB0YWJsZSBjb250
YWlucyBhIG5vbi1jb25maWd1cmFibGUgKERvbnREZWxldGUpIHByb3BlcnR5IHRoZW4gd2UgY2Fu
IHJldHVybiBlYXJseTsKICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgcHJvcGVydHkgaW4g
dGhlIHN0b3JhZ2UgYXJyYXkgaXQgdG9vIG11c3QgYmUgbm9uLWNvbmZpZ3VyYWJsZSAodGhlIGxh
bmd1YWdlIGRvZXMKICAgICAgICAgICAgIC8vIG5vdCBhbGxvdyByZXBhY2VtZW50IG9mIGEgbm9u
LWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSB3aXRoIGEgY29uZmlndXJhYmxlIG9uZSkuCi0gICAgICAg
ICAgICBpZiAoZW50cnktPnZhbHVlLT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSAmJiB2bS5kZWxldGVQcm9wZXJ0eU1vZGUoKSAhPSBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpIHsKKyAgICAgICAgICAgIGlmIChlbnRyeS0+dmFs
dWUtPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKSB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKCFpc1ZhbGlkT2Zmc2V0KHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2
bSktPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSkgfHwgYXR0cmlidXRlcyAmIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICB9CkBAIC0yMDQzLDcgKzIwNDMsNyBAQCBib29sIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlCiAKICAgICBib29sIHByb3BlcnR5SXNQcmVzZW50ID0g
aXNWYWxpZE9mZnNldChzdHJ1Y3R1cmUtPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVz
KSk7CiAgICAgaWYgKHByb3BlcnR5SXNQcmVzZW50KSB7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVz
ICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgJiYgdm0uZGVsZXRlUHJvcGVydHlNb2Rl
KCkgIT0gVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKSB7CisgICAg
ICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpIHsKICAg
ICAgICAgICAgIHNsb3Quc2V0Tm9uY29uZmlndXJhYmxlKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3ltYm9sVGFibGVPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgJKHJldmlzaW9uIDI3MTk3NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtOTksMTQgKzk5LDE0IEBAIGlubGluZSBib29sIHN5bWJvbFRhYmxlR2V0KAogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBTeW1ib2xUYWJsZU9iamVjdFR5cGU+CiBpbmxpbmUgYm9vbCBzeW1i
b2xUYWJsZUdldCgKLSAgICBTeW1ib2xUYWJsZU9iamVjdFR5cGUqIG9iamVjdCwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorICAgIFN5
bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBT
eW1ib2xUYWJsZUVudHJ5JiBlbnRyeSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQog
ewogICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9ICpvYmplY3QtPnN5bWJvbFRhYmxlKCk7
CiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihzeW1ib2xUYWJsZS5tX2xvY2spOwogICAg
IFN5bWJvbFRhYmxlOjpNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBzeW1ib2xUYWJsZS5maW5kKGxvY2tl
ciwgcHJvcGVydHlOYW1lLnVpZCgpKTsKICAgICBpZiAoaXRlciA9PSBzeW1ib2xUYWJsZS5lbmQo
bG9ja2VyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFN5bWJvbFRhYmxlRW50cnk6OkZh
c3QgZW50cnkgPSBpdGVyLT52YWx1ZTsKKyAgICBlbnRyeSA9IGl0ZXItPnZhbHVlOwogICAgIEFT
U0VSVCghZW50cnkuaXNOdWxsKCkpOwogCiAgICAgU2NvcGVPZmZzZXQgb2Zmc2V0ID0gZW50cnku
c2NvcGVPZmZzZXQoKTsKQEAgLTExOSwyOSArMTE5LDYgQEAgaW5saW5lIGJvb2wgc3ltYm9sVGFi
bGVHZXQoCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KLWlu
bGluZSBib29sIHN5bWJvbFRhYmxlR2V0KAotICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2Jq
ZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QsCi0gICAg
Ym9vbCYgc2xvdElzV3JpdGVhYmxlKQotewotICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9
ICpvYmplY3QtPnN5bWJvbFRhYmxlKCk7Ci0gICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihz
eW1ib2xUYWJsZS5tX2xvY2spOwotICAgIFN5bWJvbFRhYmxlOjpNYXA6Oml0ZXJhdG9yIGl0ZXIg
PSBzeW1ib2xUYWJsZS5maW5kKGxvY2tlciwgcHJvcGVydHlOYW1lLnVpZCgpKTsKLSAgICBpZiAo
aXRlciA9PSBzeW1ib2xUYWJsZS5lbmQobG9ja2VyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIFN5bWJvbFRhYmxlRW50cnk6OkZhc3QgZW50cnkgPSBpdGVyLT52YWx1ZTsKLSAgICBBU1NF
UlQoIWVudHJ5LmlzTnVsbCgpKTsKLQotICAgIFNjb3BlT2Zmc2V0IG9mZnNldCA9IGVudHJ5LnNj
b3BlT2Zmc2V0KCk7Ci0gICAgLy8gRGVmZW5kIGFnYWluc3QgdGhlIGluc3BlY3RvciBhc2tpbmcg
Zm9yIGEgdmFyIGFmdGVyIGl0IGhhcyBiZWVuIG9wdGltaXplZCBvdXQuCi0gICAgaWYgKCFvYmpl
Y3QtPmlzVmFsaWRTY29wZU9mZnNldChvZmZzZXQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBzbG90LnNldFZhbHVlKG9iamVjdCwgZW50cnkuZ2V0QXR0cmlidXRlcygpIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUsIG9iamVjdC0+dmFyaWFibGVBdChvZmZzZXQpLmdldCgp
KTsKLSAgICBzbG90SXNXcml0ZWFibGUgPSAhZW50cnkuaXNSZWFkT25seSgpOwotICAgIHJldHVy
biB0cnVlOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBTeW1ib2xUYWJsZU9iamVjdFR5cGU+CiBB
TFdBWVNfSU5MSU5FIHZvaWQgc3ltYm9sVGFibGVQdXRUb3VjaFdhdGNocG9pbnRTZXQoVk0mIHZt
LCBTeW1ib2xUYWJsZU9iamVjdFR5cGUqIG9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogcmVnLCBXYXRjaHBv
aW50U2V0KiBzZXQpCiB7CiAgICAgcmVnLT5zZXQodm0sIG9iamVjdCwgdmFsdWUpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyNzE5NzUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NTMsMzggKzc1
Myw2IEBAIHB1YmxpYzoKIAogICAgIFdlYWtHQ01hcDxTeW1ib2xJbXBsKiwgU3ltYm9sLCBQdHJI
YXNoPFN5bWJvbEltcGwqPj4gc3ltYm9sSW1wbFRvU3ltYm9sTWFwOwogCi0gICAgZW51bSBjbGFz
cyBEZWxldGVQcm9wZXJ0eU1vZGUgewotICAgICAgICAvLyBEZWZhdWx0IGJlaGF2aW91ciBvZiBk
ZWxldGVQcm9wZXJ0eSwgbWF0Y2hpbmcgdGhlIHNwZWMuCi0gICAgICAgIERlZmF1bHQsCi0gICAg
ICAgIC8vIFRoaXMgc2V0dGluZyBjYXVzZXMgZGVsZXRlUHJvcGVydHkgdG8gZm9yY2UgZGVsZXRp
b24gb2YgYWxsCi0gICAgICAgIC8vIHByb3BlcnRpZXMgaW5jbHVkaW5nIHRob3NlIHRoYXQgYXJl
IG5vbi1jb25maWd1cmFibGUgKERvbnREZWxldGUpLgotICAgICAgICBJZ25vcmVDb25maWd1cmFi
bGUKLSAgICB9OwotCi0gICAgRGVsZXRlUHJvcGVydHlNb2RlIGRlbGV0ZVByb3BlcnR5TW9kZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gbV9kZWxldGVQcm9wZXJ0eU1vZGU7Ci0gICAgfQotCi0g
ICAgY2xhc3MgRGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgewotICAgIHB1YmxpYzoKLSAgICAgICAg
RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUoVk0mIHZtLCBEZWxldGVQcm9wZXJ0eU1vZGUgbW9kZSkK
LSAgICAgICAgICAgIDogbV92bSh2bSkKLSAgICAgICAgICAgICwgbV9wcmV2aW91c01vZGUodm0u
bV9kZWxldGVQcm9wZXJ0eU1vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fdm0ubV9kZWxl
dGVQcm9wZXJ0eU1vZGUgPSBtb2RlOwotICAgICAgICB9Ci0KLSAgICAgICAgfkRlbGV0ZVByb3Bl
cnR5TW9kZVNjb3BlKCkKLSAgICAgICAgewotICAgICAgICAgICAgbV92bS5tX2RlbGV0ZVByb3Bl
cnR5TW9kZSA9IG1fcHJldmlvdXNNb2RlOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICBWTSYgbV92bTsKLSAgICAgICAgRGVsZXRlUHJvcGVydHlNb2RlIG1fcHJldmlvdXNNb2Rl
OwotICAgIH07Ci0KICAgICBzdGF0aWMgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VBc3Nl
bWJsZXIoKTsKICAgICBzdGF0aWMgYm9vbCBpc0luTWluaU1vZGUoKQogICAgIHsKQEAgLTExOTIs
NyArMTE2MCw2IEBAIHB1YmxpYzoKICAgICBib29sIGRpZEVudGVyVk0geyBmYWxzZSB9OwogcHJp
dmF0ZToKICAgICBib29sIG1fZmFpbE5leHROZXdDb2RlQmxvY2sgeyBmYWxzZSB9OwotICAgIERl
bGV0ZVByb3BlcnR5TW9kZSBtX2RlbGV0ZVByb3BlcnR5TW9kZSB7IERlbGV0ZVByb3BlcnR5TW9k
ZTo6RGVmYXVsdCB9OwogICAgIGJvb2wgbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRU
aHJvdyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBp
bmcgeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxOTc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDItMDUgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEFuIGlzc3VlIGFi
b3V0IHJlZGVmaW5pbmcgdW5kZWZpbmVkIG9mICJ0aGlzIiBvYmplY3QgKEpTR2xvYmFsT2JqZWN0
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JIZWxw
ZXJNZXRob2RzKToKKwogMjAyMS0wMS0yNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1h
bm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjQzMjY2KTogU1ZHU3RvcEVs
ZW1lbnQgZG9lcyBub3QgcmVhY3QgdXBvbiAnb2Zmc2V0JyBhdHRyaWJ1dGUgY2hhbmdlcwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAkocmV2aXNpb24gMjcxOTc1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsMTMgKzI0NywxOSBAQCBib29s
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPCiAgICAgLy8gKFBhcnRpY3VsYXJs
eSwgaXMgaXQgY29ycmVjdCB0aGF0IHRoaXMgZXhpc3RzIGhlcmUgYnV0IG5vdCBpbiBnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4PykKICAgICBzbG90LnNldFdhdGNocG9pbnRTZXQodGhpc09iamVj
dC0+bV93aW5kb3dDbG9zZVdhdGNocG9pbnRzLmdldCgpKTsKIAorICAgIGF1dG8mIGJ1aWx0aW5O
YW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4obGV4aWNhbEdsb2JhbE9iamVjdC0+
dm0oKS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7CisKICAgICAvLyAoMikgUmVndWxhciBv
d24gcHJvcGVydGllcy4KKworICAgIGlmIChzbG90LmludGVybmFsTWV0aG9kVHlwZSgpID09IFBy
b3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSAmJiAocHJvcGVy
dHlOYW1lID09IGJ1aWx0aW5OYW1lcy5kb2N1bWVudFB1YmxpY05hbWUoKSB8fCBwcm9wZXJ0eU5h
bWUgPT0gYnVpbHRpbk5hbWVzLndpbmRvd1B1YmxpY05hbWUoKSkpCisgICAgICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdENvcHkgPSBz
bG90OwogICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgbGV4aWNh
bEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICBhdXRvKiBmcmFt
ZSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5mcmFtZSgpOwogCiAgICAgICAgIC8vIERldGVjdCB3
aGVuIHdlJ3JlIGdldHRpbmcgdGhlIHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlz
IGRpc2FibGVkLCBhbmQgaGFzIGl0cyBvcmlnaW5hbCB2YWx1ZS4KLSAgICAgICAgYm9vbCBpc1No
b3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpLmNsaWVudERhdGEpLT5i
dWlsdGluTmFtZXMoKS5zaG93TW9kYWxEaWFsb2dQdWJsaWNOYW1lKCkKKyAgICAgICAgYm9vbCBp
c1Nob3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5h
bWVzLnNob3dNb2RhbERpYWxvZ1B1YmxpY05hbWUoKQogICAgICAgICAgICAgJiYgKCFmcmFtZSB8
fCAhRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coKmZyYW1lKSkKICAgICAgICAgICAgICYm
IHNsb3QuaXNWYWx1ZSgpICYmIGlzSG9zdEZ1bmN0aW9uKHNsb3QuZ2V0VmFsdWUobGV4aWNhbEds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKSwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX3No
b3dNb2RhbERpYWxvZyk7CiAgICAgICAgIC8vIFVubGVzcyB3ZSdyZSBpbiB0aGUgc2hvd01vZGFs
RGlhbG9nIHNwZWNpYWwgY2FzZSwgd2UncmUgZG9uZS4KQEAgLTI2NSw3ICsyNzEsNyBAQCBib29s
IEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCi0gICAgaWYgKHByb3BlcnR5
TmFtZSA9PSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxPYmplY3Qt
PnZtKCkuY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLndlYmtpdFB1YmxpY05hbWUoKSAmJiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2hvdWxkSGF2ZVdlYktpdE5hbWVzcGFjZUZvcldvcmxkKHRo
aXNPYmplY3QtPndvcmxkKCkpKSB7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBidWlsdGluTmFt
ZXMud2Via2l0UHVibGljTmFtZSgpICYmIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zaG91bGRIYXZl
V2ViS2l0TmFtZXNwYWNlRm9yV29ybGQodGhpc09iamVjdC0+d29ybGQoKSkpIHsKICAgICAgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCBqc0RPTVdp
bmRvd193ZWJraXQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC00NzAsMjAgKzQ3
NiwxNiBAQCB2b2lkIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTCiAKIGJvb2wg
SlNET01XaW5kb3c6OmRlZmluZU93blByb3BlcnR5KEpTQzo6SlNPYmplY3QqIG9iamVjdCwgSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBjb25zdCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwg
Ym9vbCBzaG91bGRUaHJvdykKIHsKLSAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmpl
Y3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCiAg
ICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3Qp
OwogICAgIC8vIE9ubHkgYWxsb3cgZGVmaW5pbmcgcHJvcGVydGllcyBpbiB0aGlzIHdheSBieSBm
cmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLCBhcyBpdCBhbGxvd3Mgc2V0dGVycyB0byBiZSBpbnRy
b2R1Y2VkLgogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9N
V2luZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dT
ZWN1cml0eUVycm9yKSkKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmYWxzZSk7
Ci0KLSAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7Ci0gICAgLy8gRG9u
J3QgYWxsb3cgc2hhZG93aW5nIGxvY2F0aW9uIHVzaW5nIGFjY2Vzc29yIHByb3BlcnRpZXMuCi0g
ICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSAmJiBwcm9wZXJ0eU5hbWUg
PT0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxvY2F0aW9uIikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6ZGVmaW5lT3du
UHJvcGVydHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yLCBzaG91bGRUaHJvdykpOworICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4obGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKS5jbGllbnRE
YXRhKS0+YnVpbHRpbk5hbWVzKCk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBidWlsdGluTmFt
ZXMuZG9jdW1lbnRQdWJsaWNOYW1lKCkgfHwgcHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy53
aW5kb3dQdWJsaWNOYW1lKCkpCisgICAgICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yLCBzaG91bGRUaHJvdyk7CisKKyAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVy
dHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OmdldFByb3RvdHlw
ZShKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCShyZXZpc2lvbiAyNzE5NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDU4OCw5ICs0NTg4
LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBoYXNEaXNhYmxlZFJ1
bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRu
YW1lXCIpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYm9vbCByZXN1bHQgPSBKU0NlbGw6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJl
c3VsdCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKICAgICAgICAgfQpAQCAtNzg0Niw5ICs3ODQ1LDggQEAgc3ViIEdlbmVyYXRlQ29u
c3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAgICAgIG15ICRuYW1lID0gJG9wZXJhdGlvbk9yQXR0
cmlidXRlLT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCEke3J1
bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30pIHtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxl
bihcIiRuYW1lXCIpKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBib29sIHJlc3VsdCA9IEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQpO1xuIik7
CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgfQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjcxOTc1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMDUgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEFuIGlzc3VlIGFib3V0IHJlZGVmaW5p
bmcgdW5kZWZpbmVkIG9mICJ0aGlzIiBvYmplY3QgKEpTR2xvYmFsT2JqZWN0KQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cv
TG9jYXRpb24vd2luZG93LW92ZXJyaWRlLXdpbmRvdy11c2luZy1kZWZpbmVHZXR0ZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJp
ZGUtd2luZG93LXVzaW5nLWRlZmluZUdldHRlci5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2dl
dHRlci1vbi13aW5kb3ctb2JqZWN0Mi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20v
Z2V0dGVyLW9uLXdpbmRvdy1vYmplY3QyLmh0bWw6CisKIDIwMjEtMDEtMjcgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI0MzI2Nik6IFNWR1N0b3BFbGVtZW50IGRvZXMgbm90IHJlYWN0IHVwb24gJ29mZnNldCcgYXR0
cmlidXRlIGNoYW5nZXMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2dldHRlci1vbi13aW5k
b3ctb2JqZWN0Mi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2V0dGVyLW9uLXdpbmRvdy1vYmplY3QyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjcxOTc1
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0dGVyLW9uLXdpbmRvdy1vYmplY3QyLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywxMCArMywxNiBAQCBUaGlzIHBhZ2UgdGVzdHMg
d2hhdCBoYXBwZW5zIHdoZW4gYSBnZXR0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAor
UEFTUyBmdW5jdGlvbiAoKSB7CisgICAgd2luZG93Ll9fZGVmaW5lR2V0dGVyX18oIngiLCBmdW5j
dGlvbigpIHsgcmV0dXJuICJ3aW5kb3cueCBfX2dldHRlcl9fIjsgfSk7Cit9IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1
dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgogUEFTUyB3aW5kb3cueCBpcyAxCiBQQVNT
IHR5cGVvZiB3aW5kb3cuX19sb29rdXBHZXR0ZXJfXygneCcpIGlzICd1bmRlZmluZWQnCiBQQVNT
IHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ3gnKS5nZXQg
aXMgJ3VuZGVmaW5lZCcKIAorUEFTUyBmdW5jdGlvbiAoKSB7Cit3aW5kb3cuX19kZWZpbmVTZXR0
ZXJfXygieCIsIGZ1bmN0aW9uKCkgeyBkZWJ1Zygid2luZG93LnggX19zZXR0ZXJfXyBjYWxsZWQi
KTsgfSk7Cit9IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdl
IGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgogUEFT
UyB3aW5kb3cueCBpcyAyCiBQQVNTIHR5cGVvZiB3aW5kb3cuX19sb29rdXBHZXR0ZXJfXygneCcp
IGlzICd1bmRlZmluZWQnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgJ3gnKS5nZXQgaXMgJ3VuZGVmaW5lZCcKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL2dldHRlci1vbi13aW5kb3ctb2JqZWN0Mi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL2dldHRlci1vbi13aW5kb3ctb2JqZWN0Mi5odG1sCShyZXZpc2lvbiAy
NzE5NzUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXR0ZXItb24td2luZG93LW9iamVjdDIu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHBh
Z2UgdGVzdHMgd2hhdCBoYXBwZW5zIHdoZW4gYSBnZXR0ZXIgLyBzZXR0ZXIgb24gdGhlIHdpbmRv
dyBvYmplY3QgY29uZmxpY3RzIHdpdGggYW5vdGhlciBwcm9wZXJ0eSBvciBkZWNsYXJlZCB2YXJp
YWJsZSIpOwogCiB2YXIgeCA9IDE7Ci10cnkgeworc2hvdWxkVGhyb3dFcnJvck5hbWUoZnVuY3Rp
b24oKSB7CiAgICAgd2luZG93Ll9fZGVmaW5lR2V0dGVyX18oIngiLCBmdW5jdGlvbigpIHsgcmV0
dXJuICJ3aW5kb3cueCBfX2dldHRlcl9fIjsgfSk7Ci19IGNhdGNoKGUpIHsgZGVidWcoZSk7IH0K
K30sICJUeXBlRXJyb3IiKTsKIAogc2hvdWxkQmUoIndpbmRvdy54IiwgIjEiKTsKIHNob3VsZEJl
KCJ0eXBlb2Ygd2luZG93Ll9fbG9va3VwR2V0dGVyX18oJ3gnKSIsICIndW5kZWZpbmVkJyIpOwpA
QCAtMTQsOSArMTQsOSBAQCBzaG91bGRCZSgidHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
CiBkZWJ1ZygiIik7CiAKIAotdHJ5IHsKK3Nob3VsZFRocm93RXJyb3JOYW1lKGZ1bmN0aW9uKCkg
ewogd2luZG93Ll9fZGVmaW5lU2V0dGVyX18oIngiLCBmdW5jdGlvbigpIHsgZGVidWcoIndpbmRv
dy54IF9fc2V0dGVyX18gY2FsbGVkIik7IH0pOwotfSBjYXRjaChlKSB7IGRlYnVnKGUpOyB9Cit9
LCAiVHlwZUVycm9yIik7CiB4ID0gMjsKIAogc2hvdWxkQmUoIndpbmRvdy54IiwgIjIiKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUt
d2luZG93LXVzaW5nLWRlZmluZUdldHRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS13aW5kb3ct
dXNpbmctZGVmaW5lR2V0dGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjcxOTc1KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS13aW5kb3ct
dXNpbmctZGVmaW5lR2V0dGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDYgQEAKK1BBU1MgZnVuY3Rpb24gKCkgeworICAgICAgICB3aW5kb3cuX19kZWZpbmVHZXR0ZXJf
Xygid2luZG93IiwgKCkgPT4gKHsgbG9jYXRpb246ICJoYXhvcmVkIiB9KSk7CisgICAgfSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBjb25maWd1cmFibGUg
YXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5Li4KIFBBU1MgcmVzdWx0IGlzIGNv
cnJlY3RWYWx1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LW92ZXJyaWRlLXdpbmRvdy11
c2luZy1kZWZpbmVHZXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvTG9jYXRpb24vd2luZG93LW92ZXJyaWRlLXdpbmRvdy11c2luZy1kZWZpbmVHZXR0
ZXIuaHRtbAkocmV2aXNpb24gMjcxOTc1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS13aW5kb3ctdXNpbmctZGVmaW5lR2V0dGVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTUsOSArNSw5IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+
Ci0gICAgd2luZG93Ll9fZGVmaW5lR2V0dGVyX18oIndpbmRvdyIsIGZ1bmN0aW9uKCkgewotICAg
ICAgICByZXR1cm4geyBsb2NhdGlvbjogImhheG9yZWQiIH07Ci0gICAgfSk7CisgICAgc2hvdWxk
VGhyb3dFcnJvck5hbWUoZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5fX2RlZmluZUdldHRl
cl9fKCJ3aW5kb3ciLCAoKSA9PiAoeyBsb2NhdGlvbjogImhheG9yZWQiIH0pKTsKKyAgICB9LCAi
VHlwZUVycm9yIik7CiAKICAgICB2YXIgcmVzdWx0ID0gbm9ybWFsaXplVVJMKFN0cmluZyh3aW5k
b3cubG9jYXRpb24pKTsKICAgICB2YXIgY29ycmVjdFZhbHVlID0gbm9ybWFsaXplVVJMKGRvY3Vt
ZW50LlVSTCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420024</attachid>
            <date>2021-02-11 12:13:40 -0800</date>
            <delta_ts>2021-02-17 13:11:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203456-20210211221339.patch</filename>
            <type>text/plain</type>
            <size>43118</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzI3NDEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTAyLTExICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBBbGlnbiBKU0dsb2JhbE9iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkoKSB3aXRoIHRoZSBzcGVjIGFuZCBvdGhlciBydW50aW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZ2xvYmFs
LXZhci1wdXQtdG8tc2NvcGUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9ldmFsLWZ1bmMt
ZGVjbC1pbi1mcm96ZW4tZ2xvYmFsLmpzOgorICAgICAgICBPYmplY3QuZnJlZXplKCkgcmVkZWZp
bmVzIGFsbCBnbG9iYWwgdmFyaWFibGVzIGFzIFJlYWRPbmx5LCBpbmNsdWRpbmcgaG9pc3RlZCBg
dmFyIGVycm9yYC4KKyAgICAgICAgQWxpZ25zIHdpdGggVjguCisKKyAgICAgICAgKiBzdHJlc3Mv
Z2xvYmFsLW9iamVjdC1kZWZpbmUtb3duLXByb3BlcnR5LXB1dC10by1zY29wZS5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1vYmplY3QtZGVmaW5lLW93bi1wcm9wZXJ0eS5qczog
QWRkZWQuCisgICAgICAgICogc3RyZXNzL3RvLXRoaXMtYmVmb3JlLWFycm93LWZ1bmN0aW9uLWNs
b3Nlcy1vdmVyLXRoaXMtdGhhdC1zdGFydHMtYXMtbGV4aWNhbC1lbnZpcm9ubWVudC5qczoKKyAg
ICAgICAgRml4IHVud2FudGVkIG5hbWUgY29uZmxpY3QsIHdoaWNoIHdhcyBhbiBlcnJvciBpbiB0
aGUgb3JpZ2luYWwgdGVzdCwgbm90IGFuIGludGVuZGVkIHBhcnQgb2YgaXQuCisgICAgICAgIEFs
c28sIHJlbW92ZSBtaXNsZWFkaW5nIGNvbW1lbnQgb24gYGRlZmluZVByb3BlcnR5YCBhbmQgYXNz
ZXJ0IGFjY2Vzc29ycyBhcmUgY3JlYXRlZCBvbiBnbG9iYWwgb2JqZWN0LgorICAgICAgICBBbGln
bnMgd2l0aCBWOC4KKwogMjAyMS0wMi0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIEMrKyBpdGVyYXRpb24gc2hvdWxkIHN1cHBvcnQgZmFzdCBp
dGVyYXRvciBwcm90b2NvbApJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZ2xvYmFsLXZh
ci1wdXQtdG8tc2NvcGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
Z2xvYmFsLXZhci1wdXQtdG8tc2NvcGUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvZ2xvYmFsLXZhci1wdXQtdG8tc2NvcGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0IEBACit2YXIgazAgPSAwLCBrMSA9IDAsIGsyID0gMCwgazMgPSAwLCBrNCA9IDAs
IGs1ID0gMCwgazYgPSAwLCBrNyA9IDAsIGs4ID0gMCwgazkgPSAwLCBrMTAgPSAwLCBrMTEgPSAw
LCBrMTIgPSAwLCBrMTMgPSAwLCBrMTQgPSAwLCBrMTUgPSAwLCBrMTYgPSAwLCBrMTcgPSAwLCBr
MTggPSAwLCBrMTkgPSAwLCBrMjAgPSAwLCBrMjEgPSAwLCBrMjIgPSAwLCBrMjMgPSAwLCBrMjQg
PSAwLCBrMjUgPSAwLCBrMjYgPSAwLCBrMjcgPSAwLCBrMjggPSAwLCBrMjkgPSAwLCBrMzAgPSAw
LCBrMzEgPSAwLCBrMzIgPSAwLCBrMzMgPSAwLCBrMzQgPSAwLCBrMzUgPSAwLCBrMzYgPSAwLCBr
MzcgPSAwLCBrMzggPSAwLCBrMzkgPSAwLCBrNDAgPSAwLCBrNDEgPSAwLCBrNDIgPSAwLCBrNDMg
PSAwLCBrNDQgPSAwLCBrNDUgPSAwLCBrNDYgPSAwLCBrNDcgPSAwLCBrNDggPSAwLCBrNDkgPSAw
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNzsgaSsrKQorICAgIGswID0gaTsgazEgPSBpOyBr
MiA9IGk7IGszID0gaTsgazQgPSBpOyBrNSA9IGk7IGs2ID0gaTsgazcgPSBpOyBrOCA9IGk7IGs5
ID0gaTsgazEwID0gaTsgazExID0gaTsgazEyID0gaTsgazEzID0gaTsgazE0ID0gaTsgazE1ID0g
aTsgazE2ID0gaTsgazE3ID0gaTsgazE4ID0gaTsgazE5ID0gaTsgazIwID0gaTsgazIxID0gaTsg
azIyID0gaTsgazIzID0gaTsgazI0ID0gaTsgazI1ID0gaTsgazI2ID0gaTsgazI3ID0gaTsgazI4
ID0gaTsgazI5ID0gaTsgazMwID0gaTsgazMxID0gaTsgazMyID0gaTsgazMzID0gaTsgazM0ID0g
aTsgazM1ID0gaTsgazM2ID0gaTsgazM3ID0gaTsgazM4ID0gaTsgazM5ID0gaTsgazQwID0gaTsg
azQxID0gaTsgazQyID0gaTsgazQzID0gaTsgazQ0ID0gaTsgazQ1ID0gaTsgazQ2ID0gaTsgazQ3
ID0gaTsgazQ4ID0gaTsgazQ5ID0gaTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2V2YWwtZnVuYy1k
ZWNsLWluLWZyb3plbi1nbG9iYWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvZXZh
bC1mdW5jLWRlY2wtaW4tZnJvemVuLWdsb2JhbC5qcwkocmV2aXNpb24gMjcyNzQxKQorKysgSlNU
ZXN0cy9zdHJlc3MvZXZhbC1mdW5jLWRlY2wtaW4tZnJvemVuLWdsb2JhbC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBhc3NlcnQoZ2xvYmFsTm9uV3JpdGFibGVEZXNjcmlwdG9y
LmVudW1lCiAKIE9iamVjdC5mcmVlemUodGhpcyk7CiB7Ci0gIHZhciBlcnJvciA9IGZhbHNlOwor
ICBsZXQgZXJyb3IgPSBmYWxzZTsKICAgdHJ5IHsKICAgICBldmFsKCd7IGZ1bmN0aW9uIGJvbygp
IHt9IH0nKTsKICAgfSBjYXRjaCAoZSkgewpJbmRleDogSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLW9i
amVjdC1kZWZpbmUtb3duLXByb3BlcnR5LXB1dC10by1zY29wZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
U1Rlc3RzL3N0cmVzcy9nbG9iYWwtb2JqZWN0LWRlZmluZS1vd24tcHJvcGVydHktcHV0LXRvLXNj
b3BlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL2dsb2JhbC1vYmplY3QtZGVm
aW5lLW93bi1wcm9wZXJ0eS1wdXQtdG8tc2NvcGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4NSBAQAorZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXhwZWN0ZWRNZXNzYWdlKSB7Cisg
ICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOwor
ICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGV4cGVjdGVkTWVzc2FnZSkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcihgQmFkIGVycm9yOiAke2Vycm9yfWApCisgICAgfQorICAgIGlmICghZXJy
b3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGlkbid0IHRocm93ISIpOworfQor
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIHZhbHVlOiAke2FjdHVh
bH0hYCk7Cit9CisKK3ZhciBmb28gPSAxOworZXZhbCgidmFyIGJhciIpOworZnVuY3Rpb24gZnVu
YygpIHt9CisKK3Nob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
VGhpcywgImZvbyIpLnZhbHVlLCAxKTsKK3Nob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsVGhpcywgImJhciIpLnZhbHVlLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsVGhpcywgImZ1bmMi
KS52YWx1ZSwgImZ1bmN0aW9uIik7CisKK2ZvbyA9IDI7CitiYXIgPSAyOworZnVuYyA9IDI7CisK
K3Nob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsVGhpcywgImZv
byIpLnZhbHVlLCAyKTsKK3Nob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsVGhpcywgImJhciIpLnZhbHVlLCAyKTsKK3Nob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsVGhpcywgImZ1bmMiKS52YWx1ZSwgMik7CisKK2ZvbyA9IDM7
CitiYXIgPSAzOworZnVuYyA9IDM7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlz
LCAiZm9vIiwgeyB2YWx1ZTogNCB9KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlz
LCAiYmFyIiwgeyB2YWx1ZTogNCB9KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlz
LCAiZnVuYyIsIHsgdmFsdWU6IDQgfSk7CisKK3Nob3VsZEJlKGZvbywgNCk7CitzaG91bGRCZShi
YXIsIDQpOworc2hvdWxkQmUoZnVuYywgNCk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9i
YWxUaGlzLCAiZm9vIiwgeyB3cml0YWJsZTogZmFsc2UgfSk7CitPYmplY3QuZGVmaW5lUHJvcGVy
dHkoZ2xvYmFsVGhpcywgImJhciIsIHsgd3JpdGFibGU6IGZhbHNlIH0pOworT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KGdsb2JhbFRoaXMsICJmdW5jIiwgeyB3cml0YWJsZTogZmFsc2UgfSk7CisKK2Zv
byA9IDU7CitiYXIgPSA1OworZnVuYyA9IDU7CisKK3Nob3VsZEJlKGZvbywgNCk7CitzaG91bGRC
ZShiYXIsIDQpOworc2hvdWxkQmUoZnVuYywgNCk7CisKK3Nob3VsZFRocm93KCgpID0+IHsgInVz
ZSBzdHJpY3QiOyBmb28gPSA0OyB9LCAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRv
IHJlYWRvbmx5IHByb3BlcnR5LiIpOworc2hvdWxkVGhyb3coKCkgPT4geyAidXNlIHN0cmljdCI7
IGJhciA9IDQ7IH0sICJUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkg
cHJvcGVydHkuIik7CitzaG91bGRUaHJvdygoKSA9PiB7ICJ1c2Ugc3RyaWN0IjsgZnVuYyA9IDQ7
IH0sICJUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHku
Iik7CisKK2V2YWwoInZhciB4ID0gMSIpOwordmFyIHkgPSAxOworZnVuY3Rpb24gc2V0VmFycyh2
YWwpIHsgeCA9IHZhbDsgeSA9IHZhbDsgfQorbm9JbmxpbmUoc2V0VmFycyk7Citjb25zdCB3cml0
YWJsZVRocmVzaG9sZCA9IDllNjsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMGU2OyBpKyspIHsK
KyAgICBzZXRWYXJzKGkpOworCisgICAgaWYgKGkgPCB3cml0YWJsZVRocmVzaG9sZCkgeworICAg
ICAgICBzaG91bGRCZSh4LCBpKTsKKyAgICAgICAgc2hvdWxkQmUoeSwgaSk7CisgICAgfSBlbHNl
IGlmIChpID09PSB3cml0YWJsZVRocmVzaG9sZCkgeworICAgICAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoZ2xvYmFsVGhpcywgIngiLCB7IHdyaXRhYmxlOiBmYWxzZSB9KTsKKyAgICAgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsICJ5IiwgeyB3cml0YWJsZTogZmFsc2UgfSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUoeCwgd3JpdGFibGVUaHJlc2hvbGQpOwor
ICAgICAgICBzaG91bGRCZSh5LCB3cml0YWJsZVRocmVzaG9sZCk7CisgICAgfQorfQorCitzaG91
bGRUaHJvdygoKSA9PiB7ICJ1c2Ugc3RyaWN0IjsgeCA9IHdyaXRhYmxlVGhyZXNob2xkOyB9LCAi
VHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LiIpOwor
c2hvdWxkVGhyb3coKCkgPT4geyAidXNlIHN0cmljdCI7IHkgPSB3cml0YWJsZVRocmVzaG9sZDsg
fSwgIlR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4i
KTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2dsb2JhbC1vYmplY3QtZGVmaW5lLW93bi1wcm9wZXJ0
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9nbG9iYWwtb2JqZWN0LWRlZmluZS1v
d24tcHJvcGVydHkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLW9i
amVjdC1kZWZpbmUtb3duLXByb3BlcnR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYg
QEAKKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXhwZWN0ZWRN
ZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAg
ICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGVycm9yVGhyb3duID0g
dHJ1ZTsKKyAgICAgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGV4cGVjdGVkTWVzc2FnZSkKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIGVycm9yOiAke2Vycm9yfWApCisgICAgfQor
ICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGlkbid0IHRo
cm93ISIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIHZh
bHVlOiAke2FjdHVhbH0hYCk7Cit9CisKK2ZvciAoY29uc3Qga2V5IG9mIFsiSW5maW5pdHkiLCAi
TmFOIiwgInVuZGVmaW5lZCJdKSB7CisgICAgY29uc3QgdmFsdWUgPSBnbG9iYWxUaGlzW2tleV07
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwge30pOworICAgIHNo
b3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZhbHVlIH0p
LCB0cnVlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZh
bHVlLCB3cml0YWJsZTogZmFsc2UgfSk7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9w
ZXJ0eShnbG9iYWxUaGlzLCBrZXksIHsgdmFsdWUsIHdyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJs
ZTogZmFsc2UgfSksIHRydWUpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlz
LCBrZXksIHsgdmFsdWUsIHdyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZp
Z3VyYWJsZTogZmFsc2UgfSk7CisKKyAgICBzaG91bGRCZShSZWZsZWN0LmRlZmluZVByb3BlcnR5
KGdsb2JhbFRoaXMsIGtleSwgeyB2YWx1ZToge30gfSksIGZhbHNlKTsKKyAgICBzaG91bGRUaHJv
dygoKSA9PiB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBrZXksIHsgd3JpdGFi
bGU6IHRydWUgfSk7IH0sICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIHdyaXRhYmxl
IGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKTsKKyAgICBzaG91bGRCZShS
ZWZsZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVl
IH0pLCBmYWxzZSk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geyBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoZ2xvYmFsVGhpcywga2V5LCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTsgfSwgIlR5cGVFcnJv
cjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZp
Z3VyYWJsZSBwcm9wZXJ0eS4iKQorICAgIHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHko
Z2xvYmFsVGhpcywga2V5LCB7IGdldCgpIHt9IH0pLCBmYWxzZSk7CisgICAgc2hvdWxkVGhyb3co
KCkgPT4geyBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IGdldCgpIHt9
LCBzZXQoKSB7fSB9KTsgfSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgYWNjZXNz
IG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIik7Cit9CisKK3ZhciBm
b28gPSAxOwordmFyIGJhcjsKK2Z1bmN0aW9uIGZ1bmMoKSB7fQorCitmb3IgKGNvbnN0IGtleSBv
ZiBbImZvbyIsICJiYXIiLCAiZnVuYyJdKSB7CisgICAgY29uc3QgdmFsdWUgPSBnbG9iYWxUaGlz
W2tleV07CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwge30pOwor
ICAgIHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZh
bHVlIH0pLCB0cnVlKTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5
LCB7IHZhbHVlLCB3cml0YWJsZTogdHJ1ZSB9KTsKKyAgICBzaG91bGRCZShSZWZsZWN0LmRlZmlu
ZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyB2YWx1ZSwgd3JpdGFibGU6IHRydWUsIGVudW1l
cmFibGU6IHRydWUgfSksIHRydWUpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxU
aGlzLCBrZXksIHsgdmFsdWUsIHdyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25m
aWd1cmFibGU6IGZhbHNlIH0pOworCisgICAgc2hvdWxkQmUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0
eShnbG9iYWxUaGlzLCBrZXksIHsgdmFsdWU6IGtleSB9KSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUo
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWxUaGlzLCBrZXkpLnZhbHVlLCBr
ZXkpOworICAgIHNob3VsZEJlKGdsb2JhbFRoaXNba2V5XSwga2V5KTsKKworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBrZXksIHsgd3JpdGFibGU6IGZhbHNlIH0pOworICAg
IHNob3VsZEJlKFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbFRoaXMsIGtl
eSkud3JpdGFibGUsIGZhbHNlKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7IGdsb2JhbFRoaXNb
a2V5XSA9IHt9OyB9LCAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5
IHByb3BlcnR5LiIpOworICAgIHNob3VsZEJlKGdsb2JhbFRoaXNba2V5XSwga2V5KTsKKworICAg
IHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHdyaXRh
YmxlOiB0cnVlIH0pLCBmYWxzZSk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geyBPYmplY3QuZGVm
aW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZhbHVlOiB7fSB9KTsgfSwgIlR5cGVFcnJv
cjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgdmFsdWUgb2YgYSByZWFkb25seSBwcm9wZXJ0eS4iKTsK
KyAgICBzaG91bGRCZShnbG9iYWxUaGlzW2tleV0sIGtleSk7CisKKyAgICBzaG91bGRUaHJvdygo
KSA9PiB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBrZXksIHsgZW51bWVyYWJs
ZTogZmFsc2UgfSk7IH0sICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGVudW1lcmFi
bGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOworICAgIHNob3VsZEJl
KFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IGNvbmZpZ3VyYWJsZTog
dHJ1ZSB9KSwgZmFsc2UpOworICAgIHNob3VsZFRocm93KCgpID0+IHsgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyBnZXQoKSB7fSwgc2V0KCkge30gfSk7IH0sICJUeXBl
RXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29u
ZmlndXJhYmxlIHByb3BlcnR5LiIpOworICAgIHNob3VsZEJlKFJlZmxlY3QuZGVmaW5lUHJvcGVy
dHkoZ2xvYmFsVGhpcywga2V5LCB7IGdldCgpIHt9LCBzZXQoKSB7fSB9KSwgZmFsc2UpOworfQpJ
bmRleDogSlNUZXN0cy9zdHJlc3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rpb24tY2xvc2Vz
LW92ZXItdGhpcy10aGF0LXN0YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3RvLXRoaXMtYmVmb3JlLWFycm93LWZ1bmN0aW9uLWNsb3Nl
cy1vdmVyLXRoaXMtdGhhdC1zdGFydHMtYXMtbGV4aWNhbC1lbnZpcm9ubWVudC5qcwkocmV2aXNp
b24gMjcyNzQxKQorKysgSlNUZXN0cy9zdHJlc3MvdG8tdGhpcy1iZWZvcmUtYXJyb3ctZnVuY3Rp
b24tY2xvc2VzLW92ZXItdGhpcy10aGF0LXN0YXJ0cy1hcy1sZXhpY2FsLWVudmlyb25tZW50Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw4ICsxNyw3IEBAIGZ1bmN0aW9uIGZvbygpIHsKICAgICBm
dW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4gd3JhcHBlcjsgfQogICAgIGZ1bmN0aW9uIHdyYXBw
ZXIoKSB7CiAgICAgICAgIGxldCB4ID0gKCkgPT4gewotICAgICAgICAgICAgLy8gVGhpcyBzaG91
bGQgbm90IGRlZmluZVByb3BlcnR5IG9uIGEgSlNMZXhpY2FsRW52aXJvbm1lbnQhIFRoYXQncyBh
IGh1Z2UgYnVnLgotICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJmb28i
LCB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImJheiIsIHsKICAg
ICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyB9LAogICAgICAgICAgICAgICAgIHNldDog
ZnVuY3Rpb24oKSB7IH0KICAgICAgICAgICAgIH0pOwpAQCAtMzcsMTEgKzM2LDExIEBAIGZ1bmN0
aW9uIGZvbzIoKSB7CiAgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHdyYXBwZXI7IH0K
ICAgICBmdW5jdGlvbiB3cmFwcGVyKCkgewogICAgICAgICBsZXQgeCA9ICgpID0+IHsKLSAgICAg
ICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBkZWZpbmVQcm9wZXJ0eSBvbiBhIEpTTGV4aWNhbEVu
dmlyb25tZW50ISBUaGF0J3MgYSBodWdlIGJ1Zy4KLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh0aGlzLCAiZm9vIiwgeworICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHRoaXMsICJiYXoyIiwgewogICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IH0sCiAg
ICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbigpIHsgfQogICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBhc3NlcnQodGhpcyA9PT0gZ2xvYmFsVGhpcyk7CiAgICAgICAgIH0KIAogICAgICAg
ICB4KCk7CkBAIC01NiwzICs1NSw2IEBAIGZ1bmN0aW9uIGZvbzIoKSB7CiAgICAgd3JhcHBlcigp
OwogfQogZm9vMigpOworCithc3NlcnQodGhpcy5oYXNPd25Qcm9wZXJ0eSgiYmF6IikpOworYXNz
ZXJ0KHRoaXMuaGFzT3duUHJvcGVydHkoImJhejIiKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI3Mjc0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OSBAQAorMjAyMS0wMi0xMSAgQWxleGV5IFNo
dmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgQWxpZ24gSlNHbG9iYWxP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KCkgd2l0aCB0aGUgc3BlYyBhbmQgb3RoZXIgcnVudGlt
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQ1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBlciBz
cGVjLCB0b3AtbGV2ZWwgYHZhcmAgYmluZGluZ3MgYXJlIG5vbi1jb25maWd1cmFibGUgcHJvcGVy
dGllcyBvZiB0aGUgZ2xvYmFsCisgICAgICAgIG9iamVjdCBbMV0sIHdoaWxlIGB1bmRlZmluZWRg
IC8gYE5hTmAgLyBgSW5maW5pdHlgIGFyZSBhbHNvIG5vbi13cml0YWJsZSBbMl0uCisKKyAgICAg
ICAgUHJpb3IgdG8gdGhpcyBjaGFuZ2UsIHJlZGVmaW5pbmcgZ2xvYmFsIGB2YXJgIGJpbmRpbmcg
d2l0aCBhY2Nlc3NvciBkZXNjcmlwdG9yCisgICAgICAgIGZhaWxlZCBzaWxlbnRseSAocmF0aGVy
IHRoYW4gdGhyb3dpbmcgYSBUeXBlRXJyb3IpOyByZWRlZmluaW5nIHdpdGggZGF0YSBvcgorICAg
ICAgICBnZW5lcmljIGRlc2NyaXB0b3IgY3JlYXRlZCBhIHN0cnVjdHVyZSBwcm9wZXJ0eSwgd2hp
Y2ggdG9vayBwcmVjZWRlbmNlIG92ZXIKKyAgICAgICAgc3ltYm9sIHRhYmxlIGVudHJ5IGluIEpT
R2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoKSwgZWZmZWN0aXZlbHkKKyAgICAgICAg
ZGVzdHJveWluZyBsaXZlIGJpbmRpbmcgYmV0d2VlbiBgZ2xvYmFsLmZvb2AgYW5kIGB2YXIgZm9v
YC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlLWVuZ2luZWVycyBKU0dsb2JhbE9iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkoKSwgZml4aW5nIGJvdGggaXNzdWVzCisgICAgICAgIG1lbnRpb25lZCBh
Ym92ZS4gSWYgZGVmaW5lT3duUHJvcGVydHkoKSBvdmVycmlkZSBpcyByZW1vdmVkLCB0aGVyZSBp
cyBubyB3YXkKKyAgICAgICAgYSBsaXZlIGJpbmRpbmcgY2FuIGJlIG1haW50YWluZWQuCisKKyAg
ICAgICAgSW4gYSBmb2xsb3ctdXAgY2hhbmdlLCBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KCkgd2lsbCBiZSB1cGRhdGVkIHRvCisgICAgICAgIHNlYXJjaCBzeW1ib2wgdGFibGUg
Zmlyc3QsIGFsaWduaW5nIGl0IHdpdGggdGhlIHNwZWMgWzNdLCBwdXQoKSwgYW5kCisgICAgICAg
IGRlZmluZU93blByb3BlcnR5KCkuIEFwYXJ0IGZyb20gY29uc2lzdGVuY3ksIHRoaXMgd2lsbCBi
cmluZyBhIG1pbGQgc3BlZWQtdXAuCisKKyAgICAgICAgVG8gYWNjb21vZGF0ZSBnbG9iYWwgYHZh
cmAgYmluZGluZyByZWFzc2lnbm1lbnQgcmlnaHQgYWZ0ZXIgaXQgYmVjb21lcyByZWFkLW9ubHkK
KyAgICAgICAgKGluIHRoZSBzYW1lIHNjb3BlKSwgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgd2F0
Y2hwb2ludCB0aGF0IGNhbiBiZSBmaXJlZCBieQorICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkoKS4gcHV0X3RvX3Njb3BlIHBlcmZvcm1hbmNlIGlzIG5ldXRyYWwuCisK
KyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCByZW1vdmVzIHVudXNlZCBzeW1ib2xUYWJsZUdldCgp
IG92ZXJsb2FkIGFuZCBvcnBoYW5lZAorICAgICAgICBKU0dsb2JhbE9iamVjdDo6ZGVmaW5lR2V0
dGVyKCkgLyBKU0dsb2JhbE9iamVjdDo6ZGVmaW5lU2V0dGVyKCkgZGVjbGFyYXRpb25zLgorCisg
ICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QtZW52aXJvbm1l
bnQtcmVjb3Jkcy1jcmVhdGVtdXRhYmxlYmluZGluZy1uLWQKKyAgICAgICAgWzJdOiBodHRwczov
L3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXZhbHVlLXByb3BlcnRpZXMtb2YtdGhlLWdsb2JhbC1vYmpl
Y3QKKyAgICAgICAgWzNdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdsb2JhbC1lbnZp
cm9ubWVudC1yZWNvcmRzLWdldGJpbmRpbmd2YWx1ZS1uLXMKKworICAgICAgICAqIGRmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om5l
ZWRzRHluYW1pY0xvb2t1cCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2spOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRWYXJSZWFkT25seUNoZWNrKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF90
b19zY29wZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKToKKyAgICAgICAgKiBsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmFyUmVhZE9ubHlXYXRjaHBvaW50
KToKKyAgICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6c3ltYm9sVGFibGVHZXQpOgorCiAyMDIxLTAyLTExICBEb24gT2xtc3RlYWQgIDxkb24ub2xt
c3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBXRUJLSVRfRVhFQ1VUQUJMRSBjYW4g
aW5jb3JyZWN0bHkgbGluayBmcmFtZXdvcmsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAyNzI3NDEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDE5OCw4ICs0MTk4LDE1IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6Om5lZWRzRHluYW1p
Y0xvb2t1cCgKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIEdsb2JhbFByb3BlcnR5OgogICAgIGNhc2UgR2xvYmFsVmFyOgorICAgIGNhc2UgR2xv
YmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczogeworICAgICAgICBpZiAob3Bjb2RlID09IG9w
X3B1dF90b19zY29wZSAmJiBnbG9iYWxPYmplY3QtPnZhclJlYWRPbmx5V2F0Y2hwb2ludCgpLT5o
YXNCZWVuSW52YWxpZGF0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjYXNlIEdsb2JhbFByb3BlcnR5OiAgICAKICAg
ICBjYXNlIEdsb2JhbExleGljYWxWYXI6CiAgICAgY2FzZSBDbG9zdXJlVmFyOgogICAgIGNhc2Ug
TG9jYWxDbG9zdXJlVmFyOgpAQCAtNDIzNCw3ICs0MjQxLDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6bmVlZHNEeW5hbWljTG9va3VwKAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2Ug
R2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAgIGNhc2UgR2xvYmFsVmFy
V2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBjYXNlIEdsb2JhbExleGljYWxWYXJXaXRoVmFy
SW5qZWN0aW9uQ2hlY2tzOgogICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc5MDgsNiArNzkxNCw4IEBAIHZvaWQgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICAgICAgTm9k
ZSogdmFsdWUgPSBhZGRUb0dyYXBoKEdldEdsb2JhbExleGljYWxWYXJpYWJsZSwgT3BJbmZvKG9w
ZXJhbmQpLCBPcEluZm8ocHJlZGljdGlvbikpOwogICAgICAgICAgICAgICAgICAgICBhZGRUb0dy
YXBoKENoZWNrTm90RW1wdHksIHZhbHVlKTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgaWYgKHJlc29sdmVUeXBlID09IEdsb2JhbFZhciB8fCByZXNvbHZlVHlwZSA9PSBHbG9i
YWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LndhdGNocG9pbnRzKCkuYWRkTGF6aWx5KGdsb2JhbE9iamVjdC0+dmFyUmVhZE9ubHlXYXRjaHBv
aW50KCkpOwogCiAgICAgICAgICAgICAgICAgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCogc2Nv
cGVPYmplY3QgPSBqc0Nhc3Q8SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCo+KEpTU2NvcGU6OmNv
bnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1faW5saW5lU3RhY2tUb3AtPm1f
Y29kZUJsb2NrKSk7CiAgICAgICAgICAgICAgICAgaWYgKHdhdGNocG9pbnRzKSB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAyNzI3NDEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsMTIg
QEAgdm9pZCBKSVQ6OmVtaXROb3RpZnlXcml0ZShHUFJSZWcgcG9pbnRlcgogICAgIGFkZFNsb3dD
YXNlKGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MocG9pbnRlclRvU2V0LCBXYXRjaHBvaW50U2V0
OjpvZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKIH0KIAor
dm9pZCBKSVQ6OmVtaXRWYXJSZWFkT25seUNoZWNrKFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKQor
eworICAgIGlmIChyZXNvbHZlVHlwZSA9PSBHbG9iYWxWYXIgfHwgcmVzb2x2ZVR5cGUgPT0gR2xv
YmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykKKyAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNo
OChFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+dmFy
UmVhZE9ubHlXYXRjaHBvaW50KCktPmFkZHJlc3NPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJ
bnZhbGlkYXRlZCkpKTsKK30KKwogdm9pZCBKSVQ6OmFzc2VydFN0YWNrUG9pbnRlck9mZnNldCgp
CiB7CiAgICAgaWYgKCFBU1NFUlRfRU5BQkxFRCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAkocmV2aXNpb24gMjcyNzQxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
d29ya2luZyBjb3B5KQpAQCAtNzUyLDYgKzc1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KICAgICAgICAgdm9pZCBlbWl0TmV3RnVuY0V4cHJDb21t
b24oY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0VmFySW5qZWN0aW9uQ2hl
Y2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcyk7CisgICAgICAgIHZvaWQgZW1pdFZhclJl
YWRPbmx5Q2hlY2soUmVzb2x2ZVR5cGUpOwogICAgICAgICB2b2lkIGVtaXRSZXNvbHZlQ2xvc3Vy
ZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIGJvb2wgbmVlZHNW
YXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKTsKICAgICAgICAgdm9pZCBlbWl0TG9h
ZFdpdGhTdHJ1Y3R1cmVDaGVjayhWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIFN0cnVjdHVyZSoqIHN0
cnVjdHVyZVNsb3QpOwogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHJldmlzaW9u
IDI3Mjc0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNDMsNiArMTI0Myw3IEBAIHZvaWQgSklUOjpl
bWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnMKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGNvbnN0YW50U2NvcGUpOwogICAgICAgICAgICAgZW1pdFdyaXRlQmFycmllcihjb25zdGFudFNj
b3BlLCB2YWx1ZSwgU2hvdWxkRmlsdGVyVmFsdWUpOwogICAgICAgICAgICAgZW1pdFZhckluamVj
dGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAg
ICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNvbHZlVHlwZSk7CiAgICAgICAgICAgICBpZiAo
IWlzSW5pdGlhbGl6YXRpb24oZ2V0UHV0SW5mby5pbml0aWFsaXphdGlvbk1vZGUoKSkgJiYgKHJl
c29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXIgfHwgcmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4
aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpKSB7CiAgICAgICAgICAgICAgICAgLy8gV2Ug
bmVlZCB0byBkbyBhIFREWiBjaGVjayBoZXJlIGJlY2F1c2Ugd2UgY2FuJ3QgYWx3YXlzIHByb3Zl
IHdlIG5lZWQgdG8gZW1pdCBURFogY2hlY2tzIHN0YXRpY2FsbHkuCiAgICAgICAgICAgICAgICAg
aWYgKGluZGlyZWN0TG9hZEZvck9wZXJhbmQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gMjcyNzQxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyMjcsNiArMTIyNyw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShj
b25zdCBJbnMKICAgICAgICAgICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpj
b25zdGFudFNjb3BlRm9yQ29kZUJsb2NrKHJlc29sdmVUeXBlLCBtX2NvZGVCbG9jayk7CiAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChjb25zdGFudFNjb3BlKTsKICAgICAgICAgICAgIGVtaXRW
YXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOwor
ICAgICAgICAgICAgZW1pdFZhclJlYWRPbmx5Q2hlY2socmVzb2x2ZVR5cGUpOwogICAgICAgICAg
ICAgaWYgKCFpc0luaXRpYWxpemF0aW9uKGdldFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkp
ICYmIChyZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyIHx8IHJlc29sdmVUeXBlID09IEds
b2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSkgewogICAgICAgICAgICAgICAg
IC8vIFdlIG5lZWQgdG8gZG8gYSBURFogY2hlY2sgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGFsd2F5
cyBwcm92ZSB3ZSBuZWVkIHRvIGVtaXQgVERaIGNoZWNrcyBzdGF0aWNhbGx5LgogICAgICAgICAg
ICAgICAgIGlmIChpbmRpcmVjdExvYWRGb3JPcGVyYW5kKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20J
KHJldmlzaW9uIDI3Mjc0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yNjI1LDYgKzI2MjUsNyBA
QCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQCiAKIC5wR2xvYmFsVmFy
OgogICAgIGJpbmVxIHQwLCBHbG9iYWxWYXIsIC5wR2xvYmFsTGV4aWNhbFZhcgorICAgIHZhclJl
YWRPbmx5Q2hlY2soLnBEeW5hbWljLCB0MikKICAgICBwdXRHbG9iYWxWYXJpYWJsZSgpCiAgICAg
d3JpdGVCYXJyaWVyT25HbG9iYWxPYmplY3Qoc2l6ZSwgZ2V0LCBtX3ZhbHVlKQogICAgIGRpc3Bh
dGNoKCkKQEAgLTI2NTMsNiArMjY1NCw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3Rv
X3Njb3BlLCBPcFAKIC5wR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5l
cSB0MCwgR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcywgLnBHbG9iYWxMZXhpY2FsVmFy
V2l0aFZhckluamVjdGlvbkNoZWNrcwogICAgIHZhckluamVjdGlvbkNoZWNrKC5wRHluYW1pYykK
KyAgICB2YXJSZWFkT25seUNoZWNrKC5wRHluYW1pYywgdDIpCiAgICAgcHV0R2xvYmFsVmFyaWFi
bGUoKQogICAgIHdyaXRlQmFycmllck9uR2xvYmFsT2JqZWN0KHNpemUsIGdldCwgbV92YWx1ZSkK
ICAgICBkaXNwYXRjaCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMjcyNzQxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtp
bmcgY29weSkKQEAgLTI3MjcsNiArMjcyNyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0
X3RvX3Njb3BlLCBPcFAKIAogLnBHbG9iYWxWYXI6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhciwg
LnBHbG9iYWxMZXhpY2FsVmFyCisgICAgdmFyUmVhZE9ubHlDaGVjaygucER5bmFtaWMsIHQyKQog
ICAgIHB1dEdsb2JhbFZhcmlhYmxlKCkKICAgICB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdChz
aXplLCBnZXQsIG1fdmFsdWUpCiAgICAgZGlzcGF0Y2goKQpAQCAtMjc1NSw2ICsyNzU2LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUAogLnBHbG9iYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQwLCBHbG9iYWxWYXJXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzLCAucEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCiAgICAg
dmFySW5qZWN0aW9uQ2hlY2soLnBEeW5hbWljLCB0MikKKyAgICB2YXJSZWFkT25seUNoZWNrKC5w
RHluYW1pYywgdDIpCiAgICAgcHV0R2xvYmFsVmFyaWFibGUoKQogICAgIHdyaXRlQmFycmllck9u
R2xvYmFsT2JqZWN0KHNpemUsIGdldCwgbV92YWx1ZSkKICAgICBkaXNwYXRjaCgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCShyZXZpc2lvbiAyNzI3NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEzNDEsNiArMTM0MSwxMyBA
QCBtYWNybyBub3RpZnlXcml0ZShzZXQsIHNsb3cpCiAgICAgYmJuZXEgV2F0Y2hwb2ludFNldDo6
bV9zdGF0ZVtzZXRdLCBJc0ludmFsaWRhdGVkLCBzbG93CiBlbmQKIAorbWFjcm8gdmFyUmVhZE9u
bHlDaGVjayhzbG93UGF0aCwgc2NyYXRjaCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2Ny
YXRjaAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3Rbc2NyYXRjaF0sIHNjcmF0
Y2gKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV92YXJSZWFkT25seVdhdGNocG9pbnRbc2Ny
YXRjaF0sIHNjcmF0Y2gKKyAgICBiYmVxIFdhdGNocG9pbnRTZXQ6Om1fc3RhdGVbc2NyYXRjaF0s
IElzSW52YWxpZGF0ZWQsIHNsb3dQYXRoCitlbmQKKwogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVChp
bmNyZW1lbnQsIGFjdGlvbikKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKICAgICBiYWRk
aXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciArIEJhc2VsaW5l
RXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QwXSwgLmNvbnRpbnVlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lv
biAyNzI3NDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Myw2ICs0OTMsNyBAQCBKU0dsb2JhbE9iamVjdDo6
SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTCiAgICAgLCBtX21hc3F1ZXJhZGVzQXNVbmRlZmluZWRX
YXRjaHBvaW50KFdhdGNocG9pbnRTZXQ6OmNyZWF0ZShJc1dhdGNoZWQpKQogICAgICwgbV9oYXZp
bmdBQmFkVGltZVdhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0Y2hlZCkpCiAg
ICAgLCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQoV2F0Y2hwb2ludFNldDo6Y3JlYXRlKElzV2F0
Y2hlZCkpCisgICAgLCBtX3ZhclJlYWRPbmx5V2F0Y2hwb2ludChXYXRjaHBvaW50U2V0OjpjcmVh
dGUoSXNXYXRjaGVkKSkKICAgICAsIG1fd2Vha1JhbmRvbShPcHRpb25zOjpmb3JjZVdlYWtSYW5k
b21TZWVkKCkgPyBPcHRpb25zOjpmb3JjZWRXZWFrUmFuZG9tU2VlZCgpIDogc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+
OjptYXgoKSArIDEuMCkpKQogICAgICwgbV9hcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50
U2V0KElzV2F0Y2hlZCkKICAgICAsIG1fbWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQo
SXNXYXRjaGVkKQpAQCAtMTQ3MCwxMyArMTQ3MSwzNSBAQCBib29sIEpTR2xvYmFsT2JqZWN0Ojpw
dXQoSlNDZWxsKiBjZWxsLCBKCiBib29sIEpTR2xvYmFsT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0
eShKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IGJvb2wgc2hvdWxkVGhyb3cpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU0dsb2JhbE9i
amVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCk7Ci0gICAg
UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKLSAgICAvLyBzaWxlbnRseSBpZ25vcmUgYXR0ZW1wdHMg
dG8gYWRkIGFjY2Vzc29ycyBhbGlhc2luZyB2YXJzLgotICAgIGlmIChkZXNjcmlwdG9yLmlzQWNj
ZXNzb3JEZXNjcmlwdG9yKCkgJiYgc3ltYm9sVGFibGVHZXQodGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNsb3QuZGlzYWxsb3dWTUVu
dHJ5LnJlc2V0KCk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KHRoaXNPYmpl
Y3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CisKKyAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5OworICAgIFByb3BlcnR5RGVzY3JpcHRvciBj
dXJyZW50RGVzY3JpcHRvcjsKKyAgICBpZiAoc3ltYm9sVGFibGVHZXQodGhpc09iamVjdCwgcHJv
cGVydHlOYW1lLCBlbnRyeSwgY3VycmVudERlc2NyaXB0b3IpKSB7CisgICAgICAgIGJvb2wgaXNF
eHRlbnNpYmxlID0gZmFsc2U7IC8vIGlnbm9yZWQgc2luY2UgY3VycmVudCBkZXNjcmlwdG9yIGlz
IHByZXNlbnQKKyAgICAgICAgYm9vbCBpc0N1cnJlbnREZWZpbmVkID0gdHJ1ZTsKKyAgICAgICAg
Ym9vbCBpc0NvbXBhdGlibGVEZXNjcmlwdG9yID0gdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWxPYmplY3QsIG51bGxwdHIsIHByb3BlcnR5TmFtZSwgaXNFeHRlbnNpYmxl
LCBkZXNjcmlwdG9yLCBpc0N1cnJlbnREZWZpbmVkLCBjdXJyZW50RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOworICAgICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0g
IWlzQ29tcGF0aWJsZURlc2NyaXB0b3IpOworICAgICAgICBpZiAoIWlzQ29tcGF0aWJsZURlc2Ny
aXB0b3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRlc2NyaXB0
b3IudmFsdWUoKSkgeworICAgICAgICAgICAgYm9vbCBpZ25vcmVSZWFkT25seUVycm9ycyA9IHRy
dWU7CisgICAgICAgICAgICBib29sIHB1dFJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgaWYg
KHN5bWJvbFRhYmxlUHV0VG91Y2hXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNob3VsZFRocm93LCBpZ25vcmVS
ZWFkT25seUVycm9ycywgcHV0UmVzdWx0KSkKKyAgICAgICAgICAgICAgICBBU1NFUlQocHV0UmVz
dWx0KTsKKyAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGRlc2NyaXB0b3Iud3JpdGFibGVQcmVzZW50KCkgJiYgIWRlc2NyaXB0b3Iu
d3JpdGFibGUoKSAmJiAhZW50cnkuaXNSZWFkT25seSgpKSB7CisgICAgICAgICAgICBlbnRyeS5z
ZXRBdHRyaWJ1dGVzKHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpKTsKKyAgICAgICAgICAgIHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlKCktPnNldChwcm9w
ZXJ0eU5hbWUudWlkKCksIGVudHJ5KTsKKyAgICAgICAgICAgIHRoaXNPYmplY3QtPnZhclJlYWRP
bmx5V2F0Y2hwb2ludCgpLT5maXJlQWxsKHZtLCAiR2xvYmFsVmFyIHdhcyByZWRlZmluZWQgYXMg
UmVhZE9ubHkiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEJhc2U6OmRlZmluZU93blByb3BlcnR5KHRoaXNP
YmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJv
dykpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjphZGRHbG9iYWxWYXIoY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDI3Mjc0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2OSw2ICs0Njks
NyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdhdGNocG9pbnRTZXQ+IG1fbWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZFdhdGNocG9pbnQ7CiAgICAgUmVmUHRyPFdhdGNocG9pbnRTZXQ+IG1faGF2aW5nQUJh
ZFRpbWVXYXRjaHBvaW50OwogICAgIFJlZlB0cjxXYXRjaHBvaW50U2V0PiBtX3ZhckluamVjdGlv
bldhdGNocG9pbnQ7CisgICAgUmVmUHRyPFdhdGNocG9pbnRTZXQ+IG1fdmFyUmVhZE9ubHlXYXRj
aHBvaW50OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTR2xvYmFsT2JqZWN0UmFyZURhdGE+IG1f
cmFyZURhdGE7CiAKQEAgLTYxMyw5ICs2MTQsNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBKU0dsb2Jh
bE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIGJvb2wgcHV0KEpTQ2VsbCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlO
YW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLQotICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyB2b2lkIGRlZmluZUdldHRlcihKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuYywgdW5zaWduZWQgYXR0cmlidXRlcyk7Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZGVmaW5lU2V0dGVyKEpTT2JqZWN0Kiwg
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzZXR0ZXJGdW5jLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKIAogICAgIHZvaWQg
YWRkVmFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKQEAgLTk4MSw2ICs5NzksNyBAQCBwdWJsaWM6CiAgICAgV2F0Y2hwb2ludFNl
dCogbWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKSB7IHJldHVybiBtX21hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50LmdldCgpOyB9CiAgICAgV2F0Y2hwb2ludFNldCogaGF2
aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9oYXZpbmdBQmFkVGltZVdhdGNocG9p
bnQuZ2V0KCk7IH0KICAgICBXYXRjaHBvaW50U2V0KiB2YXJJbmplY3Rpb25XYXRjaHBvaW50KCkg
eyByZXR1cm4gbV92YXJJbmplY3Rpb25XYXRjaHBvaW50LmdldCgpOyB9CisgICAgV2F0Y2hwb2lu
dFNldCogdmFyUmVhZE9ubHlXYXRjaHBvaW50KCkgeyByZXR1cm4gbV92YXJSZWFkT25seVdhdGNo
cG9pbnQuZ2V0KCk7IH0KICAgICAgICAgCiAgICAgYm9vbCBpc0hhdmluZ0FCYWRUaW1lKCkgY29u
c3QKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRh
YmxlT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTeW1ib2xUYWJsZU9iamVjdC5oCShyZXZpc2lvbiAyNzI3NDEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTk5LDE0ICs5OSwxNCBAQCBpbmxpbmUgYm9vbCBzeW1ib2xUYWJsZUdldCgKIAogdGVtcGxhdGU8
dHlwZW5hbWUgU3ltYm9sVGFibGVPYmplY3RUeXBlPgogaW5saW5lIGJvb2wgc3ltYm9sVGFibGVH
ZXQoCi0gICAgU3ltYm9sVGFibGVPYmplY3RUeXBlKiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKKyAgICBTeW1ib2xUYWJs
ZU9iamVjdFR5cGUqIG9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgU3ltYm9sVGFi
bGVFbnRyeSYgZW50cnksIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBT
eW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSAqb2JqZWN0LT5zeW1ib2xUYWJsZSgpOwogICAgIENv
bmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUubV9sb2NrKTsKICAgICBTeW1ib2xU
YWJsZTo6TWFwOjppdGVyYXRvciBpdGVyID0gc3ltYm9sVGFibGUuZmluZChsb2NrZXIsIHByb3Bl
cnR5TmFtZS51aWQoKSk7CiAgICAgaWYgKGl0ZXIgPT0gc3ltYm9sVGFibGUuZW5kKGxvY2tlcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTeW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVudHJ5
ID0gaXRlci0+dmFsdWU7CisgICAgZW50cnkgPSBpdGVyLT52YWx1ZTsKICAgICBBU1NFUlQoIWVu
dHJ5LmlzTnVsbCgpKTsKIAogICAgIFNjb3BlT2Zmc2V0IG9mZnNldCA9IGVudHJ5LnNjb3BlT2Zm
c2V0KCk7CkBAIC0xMTksMjkgKzExOSw2IEBAIGlubGluZSBib29sIHN5bWJvbFRhYmxlR2V0KAog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTeW1ib2xUYWJsZU9iamVjdFR5cGU+Ci1pbmxpbmUgYm9v
bCBzeW1ib2xUYWJsZUdldCgKLSAgICBTeW1ib2xUYWJsZU9iamVjdFR5cGUqIG9iamVjdCwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LAotICAgIGJvb2wmIHNs
b3RJc1dyaXRlYWJsZSkKLXsKLSAgICBTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSAqb2JqZWN0
LT5zeW1ib2xUYWJsZSgpOwotICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoc3ltYm9sVGFi
bGUubV9sb2NrKTsKLSAgICBTeW1ib2xUYWJsZTo6TWFwOjppdGVyYXRvciBpdGVyID0gc3ltYm9s
VGFibGUuZmluZChsb2NrZXIsIHByb3BlcnR5TmFtZS51aWQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0g
c3ltYm9sVGFibGUuZW5kKGxvY2tlcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTeW1i
b2xUYWJsZUVudHJ5OjpGYXN0IGVudHJ5ID0gaXRlci0+dmFsdWU7Ci0gICAgQVNTRVJUKCFlbnRy
eS5pc051bGwoKSk7Ci0KLSAgICBTY29wZU9mZnNldCBvZmZzZXQgPSBlbnRyeS5zY29wZU9mZnNl
dCgpOwotICAgIC8vIERlZmVuZCBhZ2FpbnN0IHRoZSBpbnNwZWN0b3IgYXNraW5nIGZvciBhIHZh
ciBhZnRlciBpdCBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0LgotICAgIGlmICghb2JqZWN0LT5pc1Zh
bGlkU2NvcGVPZmZzZXQob2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc2xv
dC5zZXRWYWx1ZShvYmplY3QsIGVudHJ5LmdldEF0dHJpYnV0ZXMoKSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RGVsZXRlLCBvYmplY3QtPnZhcmlhYmxlQXQob2Zmc2V0KS5nZXQoKSk7Ci0gICAg
c2xvdElzV3JpdGVhYmxlID0gIWVudHJ5LmlzUmVhZE9ubHkoKTsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgU3ltYm9sVGFibGVPYmplY3RUeXBlPgogQUxXQVlTX0lO
TElORSB2b2lkIHN5bWJvbFRhYmxlUHV0VG91Y2hXYXRjaHBvaW50U2V0KFZNJiB2bSwgU3ltYm9s
VGFibGVPYmplY3RUeXBlKiBvYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIHJlZywgV2F0Y2hwb2ludFNldCog
c2V0KQogewogICAgIHJlZy0+c2V0KHZtLCBvYmplY3QsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3Mjc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAyLTExICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBBbGlnbiBKU0dsb2JhbE9iamVjdDo6ZGVmaW5l
T3duUHJvcGVydHkoKSB3aXRoIHRoZSBzcGVjIGFuZCBvdGhlciBydW50aW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVz
IGBsb2NhdGlvbmAgc3BlY2lhbC1jYXNpbmcsIHdoaWNoIGEpIGluY29ycmVjdGx5IHJldHVybmVk
CisgICAgICAgIGBmYWxzZWAgaWYgbmV3IGRlc2NyaXB0b3Igd2FzIHRoZSBzYW1lIGFzIHRoZSBj
dXJyZW50IG9uZSBhbmQgYikgZmFpbGVkCisgICAgICAgIHNpbGVudGx5IG90aGVyd2lzZSAocmF0
aGVyIHRoYW4gdGhyb3dpbmcgYSBUeXBlRXJyb3IpLgorCisgICAgICAgIEhvd2V2ZXIsIHRoaXMg
Y2hhbmdlIGludHJvZHVjZXMgYHdpbmRvd2AgLyBgZG9jdW1lbnRgIHNwZWNpYWwtY2FzaW5nIGJl
Y2F1c2UKKyAgICAgICAgdGhleSBleGlzdCBvbiB0aGUgc3RydWN0dXJlIGFuZCBhcyBzeW1ib2wg
dGFibGUgZW50cmllcyAoZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpLgorICAgICAgICBBbGlnbnMg
V2ViS2l0IHdpdGggQmxpbmsgYW5kIHBhcnRseSB3aXRoIEdlY2tvLgorCisgICAgICAgIFRlc3Q6
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93
cHJveHktZXhvdGljLW9iamVjdC93aW5kb3dwcm94eS1kZWZpbmUtb3duLXByb3BlcnR5LXVuZm9y
Z2VhYmxlLXNhbWUtb3JpZ2luLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Q
cm9wZXJ0eSk6CisKIDIwMjEtMDItMTEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdW0ZDUl0gUmFuZ2UgaW5wdXRzIGhhdmUgYW4gaW5jb3JyZWN0
IFJUTCBhcHBlYXJhbmNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAyNzI3NDEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3
MywyMCArNDczLDE2IEBAIHZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoSlMK
IAogYm9vbCBKU0RPTVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpKU09iamVjdCogb2Jq
ZWN0LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yLCBib29sIHNob3VsZFRocm93KQogewotICAgIEpTQzo6Vk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0KICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0RPTVdpbmRvdyo+
KG9iamVjdCk7CiAgICAgLy8gT25seSBhbGxvdyBkZWZpbmluZyBwcm9wZXJ0aWVzIGluIHRoaXMg
d2F5IGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4sIGFzIGl0IGFsbG93cyBzZXR0ZXJzIHRv
IGJlIGludHJvZHVjZWQuCiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNj
ZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgp
LCBUaHJvd1NlY3VyaXR5RXJyb3IpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGZhbHNlKTsKLQotICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpKTsKLSAg
ICAvLyBEb24ndCBhbGxvdyBzaGFkb3dpbmcgbG9jYXRpb24gdXNpbmcgYWNjZXNzb3IgcHJvcGVy
dGllcy4KLSAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmIHByb3Bl
cnR5TmFtZSA9PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibG9jYXRpb24iKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpk
ZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KSk7CisgICAgYXV0byYgYnVpbHRpbk5hbWVz
ID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgp
LmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGJ1
aWx0aW5OYW1lcy5kb2N1bWVudFB1YmxpY05hbWUoKSB8fCBwcm9wZXJ0eU5hbWUgPT0gYnVpbHRp
bk5hbWVzLndpbmRvd1B1YmxpY05hbWUoKSkKKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZp
bmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKworICAgIHJldHVybiBCYXNlOjpkZWZpbmVP
d25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdpbmRvdzo6Z2V0
UHJvdG90eXBlKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjcyNzQxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDItMTEgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEFsaWduIEpTR2xvYmFs
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSgpIHdpdGggdGhlIHNwZWMgYW5kIG90aGVyIHJ1bnRp
bWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUtbG9jYXRpb24tdXNpbmctZGVm
aW5lR2V0dGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvTG9jYXRp
b24vd2luZG93LW92ZXJyaWRlLWxvY2F0aW9uLXVzaW5nLWRlZmluZUdldHRlci5odG1sOgorICAg
ICAgICAqIGZhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUtd2luZG93LXVz
aW5nLWRlZmluZUdldHRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93
L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS13aW5kb3ctdXNpbmctZGVmaW5lR2V0dGVyLmh0bWw6
CisgICAgICAgICogZmFzdC9kb20vZ2V0dGVyLW9uLXdpbmRvdy1vYmplY3QyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2RvbS9nZXR0ZXItb24td2luZG93LW9iamVjdDIuaHRtbDoKKwog
MjAyMS0wMi0xMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU11bRkNSXSBSYW5nZSBpbnB1dHMgaGF2ZSBhbiBpbmNvcnJlY3QgUlRMIGFwcGVhcmFu
Y2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2dldHRlci1vbi13aW5kb3ctb2JqZWN0Mi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0dGVyLW9u
LXdpbmRvdy1vYmplY3QyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjcyNzQxKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vZ2V0dGVyLW9uLXdpbmRvdy1vYmplY3QyLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMywxMCArMywxNiBAQCBUaGlzIHBhZ2UgdGVzdHMgd2hhdCBoYXBwZW5z
IHdoZW4gYSBnZXR0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBmdW5jdGlv
biAoKSB7CisgICAgd2luZG93Ll9fZGVmaW5lR2V0dGVyX18oIngiLCBmdW5jdGlvbigpIHsgcmV0
dXJuICJ3aW5kb3cueCBfX2dldHRlcl9fIjsgfSk7Cit9IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25m
aWd1cmFibGUgcHJvcGVydHkuLgogUEFTUyB3aW5kb3cueCBpcyAxCiBQQVNTIHR5cGVvZiB3aW5k
b3cuX19sb29rdXBHZXR0ZXJfXygneCcpIGlzICd1bmRlZmluZWQnCiBQQVNTIHR5cGVvZiBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ3gnKS5nZXQgaXMgJ3VuZGVmaW5l
ZCcKIAorUEFTUyBmdW5jdGlvbiAoKSB7Cit3aW5kb3cuX19kZWZpbmVTZXR0ZXJfXygieCIsIGZ1
bmN0aW9uKCkgeyBkZWJ1Zygid2luZG93LnggX19zZXR0ZXJfXyBjYWxsZWQiKTsgfSk7Cit9IHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJs
ZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgogUEFTUyB3aW5kb3cueCBp
cyAyCiBQQVNTIHR5cGVvZiB3aW5kb3cuX19sb29rdXBHZXR0ZXJfXygneCcpIGlzICd1bmRlZmlu
ZWQnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywg
J3gnKS5nZXQgaXMgJ3VuZGVmaW5lZCcKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2dldHRl
ci1vbi13aW5kb3ctb2JqZWN0Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2dldHRlci1vbi13aW5kb3ctb2JqZWN0Mi5odG1sCShyZXZpc2lvbiAyNzI3NDEpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9nZXR0ZXItb24td2luZG93LW9iamVjdDIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHBhZ2UgdGVzdHMgd2hh
dCBoYXBwZW5zIHdoZW4gYSBnZXR0ZXIgLyBzZXR0ZXIgb24gdGhlIHdpbmRvdyBvYmplY3QgY29u
ZmxpY3RzIHdpdGggYW5vdGhlciBwcm9wZXJ0eSBvciBkZWNsYXJlZCB2YXJpYWJsZSIpOwogCiB2
YXIgeCA9IDE7Ci10cnkgeworc2hvdWxkVGhyb3dFcnJvck5hbWUoZnVuY3Rpb24oKSB7CiAgICAg
d2luZG93Ll9fZGVmaW5lR2V0dGVyX18oIngiLCBmdW5jdGlvbigpIHsgcmV0dXJuICJ3aW5kb3cu
eCBfX2dldHRlcl9fIjsgfSk7Ci19IGNhdGNoKGUpIHsgZGVidWcoZSk7IH0KK30sICJUeXBlRXJy
b3IiKTsKIAogc2hvdWxkQmUoIndpbmRvdy54IiwgIjEiKTsKIHNob3VsZEJlKCJ0eXBlb2Ygd2lu
ZG93Ll9fbG9va3VwR2V0dGVyX18oJ3gnKSIsICIndW5kZWZpbmVkJyIpOwpAQCAtMTQsOSArMTQs
OSBAQCBzaG91bGRCZSgidHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlCiBkZWJ1ZygiIik7
CiAKIAotdHJ5IHsKK3Nob3VsZFRocm93RXJyb3JOYW1lKGZ1bmN0aW9uKCkgewogd2luZG93Ll9f
ZGVmaW5lU2V0dGVyX18oIngiLCBmdW5jdGlvbigpIHsgZGVidWcoIndpbmRvdy54IF9fc2V0dGVy
X18gY2FsbGVkIik7IH0pOwotfSBjYXRjaChlKSB7IGRlYnVnKGUpOyB9Cit9LCAiVHlwZUVycm9y
Iik7CiB4ID0gMjsKIAogc2hvdWxkQmUoIndpbmRvdy54IiwgIjIiKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUtbG9jYXRpb24tdXNp
bmctZGVmaW5lR2V0dGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LW92ZXJyaWRlLWxvY2F0aW9uLXVzaW5nLWRl
ZmluZUdldHRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3Mjc0MSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUtbG9jYXRpb24tdXNpbmct
ZGVmaW5lR2V0dGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYgQEAK
K1BBU1MgZnVuY3Rpb24gKCkgeworICAgICAgICB3aW5kb3cuX19kZWZpbmVHZXR0ZXJfXygibG9j
YXRpb24iLCAoKSA9PiAiaGF4b3JlZCIpOworICAgIH0gdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXR0ZW1wdGluZyB0byBjaGFuZ2UgY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZp
Z3VyYWJsZSBwcm9wZXJ0eS4uCiBQQVNTIHJlc3VsdCBpcyBjb3JyZWN0VmFsdWUKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS1sb2NhdGlvbi11c2luZy1kZWZpbmVHZXR0ZXIu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24v
d2luZG93LW92ZXJyaWRlLWxvY2F0aW9uLXVzaW5nLWRlZmluZUdldHRlci5odG1sCShyZXZpc2lv
biAyNzI3NDEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93
LW92ZXJyaWRlLWxvY2F0aW9uLXVzaW5nLWRlZmluZUdldHRlci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC01LDcgKzUsOSBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotICAgIHdpbmRvdy5f
X2RlZmluZUdldHRlcl9fKCJsb2NhdGlvbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gImhheG9yZWQi
OyB9KTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgd2lu
ZG93Ll9fZGVmaW5lR2V0dGVyX18oImxvY2F0aW9uIiwgKCkgPT4gImhheG9yZWQiKTsKKyAgICB9
LCAiVHlwZUVycm9yIik7CiAKICAgICB2YXIgcmVzdWx0ID0gbm9ybWFsaXplVVJMKFN0cmluZyh3
aW5kb3cubG9jYXRpb24pKTsKICAgICB2YXIgY29ycmVjdFZhbHVlID0gbm9ybWFsaXplVVJMKGRv
Y3VtZW50LlVSTCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24v
d2luZG93LW92ZXJyaWRlLXdpbmRvdy11c2luZy1kZWZpbmVHZXR0ZXItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ct
b3ZlcnJpZGUtd2luZG93LXVzaW5nLWRlZmluZUdldHRlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI3Mjc0MSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ct
b3ZlcnJpZGUtd2luZG93LXVzaW5nLWRlZmluZUdldHRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw2IEBACitQQVNTIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgd2luZG93
Ll9fZGVmaW5lR2V0dGVyX18oIndpbmRvdyIsICgpID0+ICh7IGxvY2F0aW9uOiAiaGF4b3JlZCIg
fSkpOworICAgIH0gdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjaGFu
Z2UgY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCiBQ
QVNTIHJlc3VsdCBpcyBjb3JyZWN0VmFsdWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1v
dmVycmlkZS13aW5kb3ctdXNpbmctZGVmaW5lR2V0dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1vdmVycmlkZS13aW5kb3ct
dXNpbmctZGVmaW5lR2V0dGVyLmh0bWwJKHJldmlzaW9uIDI3Mjc0MSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctb3ZlcnJpZGUtd2luZG93LXVzaW5nLWRl
ZmluZUdldHRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDkgKzUsOSBAQAogPC9oZWFkPgog
PGJvZHk+CiA8c2NyaXB0PgotICAgIHdpbmRvdy5fX2RlZmluZUdldHRlcl9fKCJ3aW5kb3ciLCBm
dW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHsgbG9jYXRpb246ICJoYXhvcmVkIiB9OwotICAg
IH0pOworICAgIHNob3VsZFRocm93RXJyb3JOYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICB3aW5k
b3cuX19kZWZpbmVHZXR0ZXJfXygid2luZG93IiwgKCkgPT4gKHsgbG9jYXRpb246ICJoYXhvcmVk
IiB9KSk7CisgICAgfSwgIlR5cGVFcnJvciIpOwogCiAgICAgdmFyIHJlc3VsdCA9IG5vcm1hbGl6
ZVVSTChTdHJpbmcod2luZG93LmxvY2F0aW9uKSk7CiAgICAgdmFyIGNvcnJlY3RWYWx1ZSA9IG5v
cm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpOwpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNzI3NDEpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTEgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEFsaWduIEpTR2xvYmFs
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSgpIHdpdGggdGhlIHNwZWMgYW5kIG90aGVyIHJ1bnRp
bWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3dwcm94eS1leG90aWMtb2Jq
ZWN0L3dpbmRvd3Byb3h5LWRlZmluZS1vd24tcHJvcGVydHktdW5mb3JnZWFibGUtc2FtZS1vcmln
aW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy90aGUtd2luZG93cHJveHktZXhvdGljLW9iamVjdC93aW5kb3dwcm94eS1kZWZp
bmUtb3duLXByb3BlcnR5LXVuZm9yZ2VhYmxlLXNhbWUtb3JpZ2luLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTAyLTExICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPiBhbmQg
SW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb21w
bGV0ZSBYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZSBpbXBsZW1lbnRhdGlvbgpJbmRl
eDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3dwcm94eS1leG90aWMtb2JqZWN0L3dpbmRvd3Byb3h5LWRlZmluZS1vd24t
cHJvcGVydHktdW5mb3JnZWFibGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy90aGUtd2luZG93cHJveHktZXhvdGljLW9iamVjdC93aW5kb3dwcm94eS1kZWZpbmUtb3du
LXByb3BlcnR5LXVuZm9yZ2VhYmxlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvd3Byb3h5LWV4b3RpYy1vYmplY3Qvd2luZG93cHJveHktZGVmaW5l
LW93bi1wcm9wZXJ0eS11bmZvcmdlYWJsZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIFtbRGVmaW5lT3duUHJvcGVydHldXSBz
dWNjZXNzOiAid2luZG93IgorUEFTUyBbW0RlZmluZU93blByb3BlcnR5XV0gZmFpbHVyZTogIndp
bmRvdyIKK1BBU1MgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIHN1Y2Nlc3M6ICJkb2N1bWVudCIKK1BB
U1MgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGZhaWx1cmU6ICJkb2N1bWVudCIKK1BBU1MgW1tEZWZp
bmVPd25Qcm9wZXJ0eV1dIHN1Y2Nlc3M6ICJsb2NhdGlvbiIKK1BBU1MgW1tEZWZpbmVPd25Qcm9w
ZXJ0eV1dIGZhaWx1cmU6ICJsb2NhdGlvbiIKK1BBU1MgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIHN1
Y2Nlc3M6ICJ0b3AiCitQQVNTIFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsdXJlOiAidG9wIgor
CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvd3Byb3h5LWV4b3RpYy1vYmplY3Qvd2luZG93cHJveHktZGVmaW5l
LW93bi1wcm9wZXJ0eS11bmZvcmdlYWJsZS1zYW1lLW9yaWdpbi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93cHJveHktZXhvdGljLW9iamVjdC93aW5kb3dwcm94eS1kZWZpbmUtb3duLXBy
b3BlcnR5LXVuZm9yZ2VhYmxlLXNhbWUtb3JpZ2luLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3Ro
ZS13aW5kb3dwcm94eS1leG90aWMtb2JqZWN0L3dpbmRvd3Byb3h5LWRlZmluZS1vd24tcHJvcGVy
dHktdW5mb3JnZWFibGUtc2FtZS1vcmlnaW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5b
W0RlZmluZU93blByb3BlcnR5XV0gb24gYSBXaW5kb3dQcm94eSBmb3J3YXJkcyB0byBPcmRpbmFy
eURlZmluZU93blByb3BlcnR5IGZvciBzYW1lLW9yaWdpbiBvYmplY3RzPC90aXRsZT4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
d2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRlZmluZW93bnByb3BlcnR5Ij4KKworPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorInVzZSBzdHJpY3QiOworCitmb3IgKGNvbnN0IGtleSBvZiBbIndpbmRvdyIsICJkb2N1bWVu
dCIsICJsb2NhdGlvbiIsICJ0b3AiXSkgeworICAgIGNvbnN0IHsgZ2V0LCBzZXQgfSA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCBrZXkpOworCisgICAgdGVzdCgoKSA9
PiB7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtleSwge30pOworICAg
ICAgICBhc3NlcnRfdHJ1ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywga2V5LCB7IGNv
bmZpZ3VyYWJsZTogZmFsc2UgfSksICJbW0NvbmZpZ3VyYWJsZV1dOiBmYWxzZSIpOworICAgICAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSB9
KTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywg
a2V5LCB7IGdldCB9KSwgIltbR2V0XV06IHVuY2hhbmdlZCIpOworICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkod2luZG93LCBrZXksIHsgc2V0IH0pOworICAgICAgICBhc3NlcnRfdHJ1ZShS
ZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywga2V5LCB7IGdldCwgc2V0IH0pLCAiW1tHZXRd
XTogdW5jaGFuZ2VkLCBbW1NldF1dOiB1bmNoYW5nZWQiKTsKKworICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkod2luZG93LCBrZXksIHsgZ2V0LCBzZXQsIGVudW1lcmFibGU6IHRydWUsIGNv
bmZpZ3VyYWJsZTogZmFsc2UgfSk7CisgICAgfSwgYFtbRGVmaW5lT3duUHJvcGVydHldXSBzdWNj
ZXNzOiAiJHtrZXl9ImApOworCisgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkod2luZG93LCBrZXksIHsgY29uZmlndXJhYmxlOiB0cnVlIH0pOworICAgICAgICB9LCAiW1tD
b25maWd1cmFibGVdXTogdHJ1ZSIpOworCisgICAgICAgIGFzc2VydF9mYWxzZShSZWZsZWN0LmRl
ZmluZVByb3BlcnR5KHdpbmRvdywga2V5LCB7IGVudW1lcmFibGU6IGZhbHNlIH0pLCAiW1tFbnVt
ZXJhYmxlXV06IGZhbHNlIik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
ICgpID0+IHsKKyAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtleSwg
eyBnZXQoKSB7fSwgc2V0IH0pOworICAgICAgICB9LCAiW1tHZXRdXTogY2hhbmdlZCwgW1tTZXRd
XTogdW5jaGFuZ2VkIik7CisKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3QuZGVmaW5lUHJv
cGVydHkod2luZG93LCBrZXksIHsgZ2V0LCBzZXQoKSB7fSB9KSwgIltbR2V0XV06IHVuY2hhbmdl
ZCwgW1tTZXRdXTogY2hhbmdlZCIpOworCisgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCAoKSA9PiB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBr
ZXksIHsgd3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWUgfSk7CisgICAgICAgIH0s
ICJbW1dyaXRhYmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIik7CisKKyAgICAg
ICAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBrZXksIHsgdmFs
dWU6IHdpbmRvd1trZXldLCBlbnVtZXJhYmxlOiB0cnVlIH0pLCAiW1tWYWx1ZV1dLCBbW0VudW1l
cmFibGVdXTogdHJ1ZSIpOworICAgIH0sIGBbW0RlZmluZU93blByb3BlcnR5XV0gZmFpbHVyZTog
IiR7a2V5fSJgKTsKK30KKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="438413"
          type_id="1"
          status="+"
          setter="rmorisset"
    />
          </attachment>
      

    </bug>

</bugzilla>