<?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>171190</bug_id>
          
          <creation_ts>2017-04-22 23:17:40 -0700</creation_ts>
          <short_desc>test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js</short_desc>
          <delta_ts>2017-05-01 11:45:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>170979</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>buildbot</cc>
    
    <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300286</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-22 23:17:40 -0700</bug_when>
    <thetext>test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js

Test:

    ({ async f(a, a) {} });

Expected:
SyntaxError: duplicate parameter

Actual:
No Syntax error.

Notes:
- Applies to any method syntax, not just async (see below).
- Chrome: SyntaxError: Duplicate parameter name not allowed in this context
- Firefox: SyntaxError: duplicate argument names not allowed in this context
- Edge: SyntaxError: Duplicate formal parameter names not allowed in this context

Spec:

https://tc39.github.io/ecma262/#sec-function-definitions-static-semantics-early-errors
14.1.2 Static Semantics: Early Errors

&gt; UniqueFormalParameters : FormalParameters
&gt; 
&gt; It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300287</commentid>
    <comment_count>1</comment_count>
      <attachid>307920</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-22 23:22:31 -0700</bug_when>
    <thetext>Created attachment 307920
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300291</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-22 23:47:35 -0700</bug_when>
    <thetext>*** Bug 161408 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300292</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-22 23:48:59 -0700</bug_when>
    <thetext>This might be conflicting due to the other patches I have out for review. But I need to put up a new patch anyways to include addressing the FIXME + tests in 161408.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300297</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-23 00:07:52 -0700</bug_when>
    <thetext>Yes, this adds a tiny change on top of the `yield` patch, so it should come after. Marked as blocking. I&apos;ll attach my patch so it doesn&apos;t get lost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300298</commentid>
    <comment_count>5</comment_count>
      <attachid>307923</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-23 00:08:31 -0700</bug_when>
    <thetext>Created attachment 307923
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300750</commentid>
    <comment_count>6</comment_count>
      <attachid>307923</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-24 17:21:07 -0700</bug_when>
    <thetext>Comment on attachment 307923
[PATCH] Proposed Fix

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

r=me

&gt; JSTests/stress/async-await-syntax.js:143
&gt; +    testSyntaxError(`var outerObject = { async method(a, a) {} }`);
&gt; +    testSyntaxError(`var outerObject = { async [&apos;meth&apos; + &apos;od&apos;](a, a) {} }`);
&gt; +    testSyntaxError(`var outerObject = { async &apos;method&apos;(a, a) {} }`);
&gt; +    testSyntaxError(`var outerObject = { async 0(a, a) {} }`);

Can you also add some tests that use destructuring and the rest parameter?

&gt; LayoutTests/js/script-tests/parser-syntax-check.js:887
&gt; +invalid(&quot;({ foo(a,a){} });&quot;);
&gt; +invalid(&quot;({ foo(b, c, b){} });&quot;);
&gt; +invalid(&quot;({ *foo(a,a){} });&quot;);
&gt; +invalid(&quot;({ *foo(b, c, b){} });&quot;);
&gt; +invalid(&quot;({ async foo(a,a){} });&quot;);
&gt; +invalid(&quot;({ async foo(b, c, b){} });&quot;);
&gt; +valid(&quot;({ foo: function(a,a){} });&quot;);
&gt; +valid(&quot;({ foo: function(b, c, b){} });&quot;);
&gt; +valid(&quot;({ foo: function*(a,a){} });&quot;);
&gt; +valid(&quot;({ foo: function*(b, c, b){} });&quot;);
&gt; +valid(&quot;({ foo: async function(a,a){} });&quot;);
&gt; +valid(&quot;({ foo: async function(b, c, b){} });&quot;);

Can you also add some tests that use destructuring and the rest parameter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300911</commentid>
    <comment_count>7</comment_count>
      <attachid>308070</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-24 23:11:47 -0700</bug_when>
    <thetext>Created attachment 308070
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300918</commentid>
    <comment_count>8</comment_count>
      <attachid>308070</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-24 23:52:08 -0700</bug_when>
    <thetext>Comment on attachment 308070
[PATCH] For Landing

Clearing flags on attachment: 308070

Committed r215723: &lt;http://trac.webkit.org/changeset/215723&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307920</attachid>
            <date>2017-04-22 23:22:31 -0700</date>
            <delta_ts>2017-04-22 23:55:09 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>duplicate-1.patch</filename>
            <type>text/plain</type>
            <size>30171</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MGEyZTUwMDI5NWQuLmUxOWUzNTFhMTYwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDE3LTA0LTIyICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9l
YXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1ldGVycy5qcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyLnlhbWw6
CisKKzIwMTctMDQtMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwog
ICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2Yv
ZHN0ci1hcnJheS1lbGVtLWluaXQtZm4tbmFtZS1hcnJvdy5qcwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTYwCiAKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi55YW1sIGIvSlNUZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXggZmQ2YWJkNzU2NDAu
LjU0ZTlkNmVlYzdmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIueWFtbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIueWFtbApAQCAtNjY0NDQsNyArNjY0NDQsNyBAQAogLSBwYXRoOiB0ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21ldGhvZC1kZWZpbml0aW9uL2Vhcmx5
LWVycm9ycy1vYmplY3QtbWV0aG9kLWJvZHktY29udGFpbnMtc3VwZXItY2FsbC5qcwogICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRo
b2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1l
dGVycy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJTeW50YXhFcnJvciIsIFsiLi4vLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIsIFsiLi4v
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29i
amVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNh
dGUtcGFyYW1ldGVycy5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9y
IiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMtb2JqZWN0
LW1ldGhvZC1ldmFsLWluLWZvcm1hbC1wYXJhbWV0ZXJzLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjJlNGNhNTk3YjIu
Ljk2Mzk5YTA4MzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjIgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21ldGhvZC1kZWZpbml0aW9uL2Vhcmx5
LWVycm9ycy1vYmplY3QtbWV0aG9kLWR1cGxpY2F0ZS1wYXJhbWV0ZXJzLmpzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExOTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3BhcnNlci1zeW50YXgt
Y2hlY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3lu
dGF4LWNoZWNrLmpzOgorICAgICAgICBFeHRlbmQgdG8gY292ZXIgbWV0aG9kIGR1cGxpY2F0ZSBw
YXJhbWV0ZXIgY2FzZXMuCisKIDIwMTctMDQtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvZ2VuZXJhdG9ycy95aWVsZC1hcy1sYWJlbC5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAppbmRleCA0ZjE3YzkyMmY1MS4uMDdl
M2YxMmZlYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3BhcnNlci1zeW50YXgtY2hlY2st
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3BhcnNlci1zeW50YXgtY2hlY2stZXhw
ZWN0ZWQudHh0CkBAIC0xNTE0LDggKzE1MTQsNiBAQCBQQVNTIEludmFsaWQ6ICJsZXQgeCA9IChb
YV0sYSk9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bgog
UEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbGV0IHggPSAoW2FdLGEpPT57IH07IH0iLiBQ
cm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNh
dGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJp
bmcgcGFyYW1ldGVycy4iCiBQQVNTIEludmFsaWQ6ICJsZXQgeCA9IChbYSwgYV0pPT57IH07Ii4g
UHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGlj
YXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVy
aW5nIHBhcmFtZXRlcnMuIgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbGV0IHggPSAo
W2EsIGFdKT0+eyB9OyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJT
eW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rp
b24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgotUEFTUyBJbnZhbGlkOiAibGV0IHgg
PSAoW2EsIGFdKT0+eyB9OyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAi
U3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0
aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKLVBBU1MgSW52YWxpZDogImZ1bmN0
aW9uIGYoKSB7IGxldCB4ID0gKFthLCBhXSk9PnsgfTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dp
bmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5v
dCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKIFBB
U1MgSW52YWxpZDogImxldCB4ID0gKGEsIC4uLmEpPT57IH07Ii4gUHJvZHVjZWQgdGhlIGZvbGxv
d2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnLi4uJyIK
IFBBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKGEsIC4uLmEpPT57IH07IH0i
LiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICcuLi4nIgogUEFTUyBJbnZhbGlkOiAibGV0IHggPSAoYiwgYywgYik9Pnsg
fTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBE
dXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhbiBhcnJvdyBmdW5jdGlvbi4i
CkBAIC0xNTI0LDYgKzE1MjIsMzAgQEAgUEFTUyBJbnZhbGlkOiAibGV0IHggPSAoYSwgYiwgYywg
ZCwge2F9KT0+eyB9OyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGUKIFBBU1MgSW52
YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKGEsIGIsIGMsIGQsIHthfSk9PnsgfTsgfSIu
IFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxp
Y2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1
cmluZyBwYXJhbWV0ZXJzLiIKIFBBU1MgSW52YWxpZDogImxldCB4ID0gKGIgPSAoYSxhKT0+YSwg
Yik9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVy
cm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBhbiBhcnJvdyBmdW5j
dGlvbi4iCiBQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBsZXQgeCA9IChiID0gKGEsYSk9
PmEsIGIpPT57IH07IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5
bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBhbiBhcnJv
dyBmdW5jdGlvbi4iCitQQVNTIEludmFsaWQ6ICIoeyBmb28oYSxhKXt9IH0pOyIuIFByb2R1Y2Vk
IHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJh
bWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0
aW9uIGYoKSB7ICh7IGZvbyhhLGEpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5
bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxs
b3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICIoeyBmb28oYiwgYywgYil7fSB9KTsi
LiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBs
aWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFs
aWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyBmb28oYiwgYywgYil7fSB9KTsgfSIuIFByb2R1Y2VkIHRo
ZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0
ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogIih7ICpmb28o
YSxhKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4
RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIK
K1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28oYSxhKXt9IH0pOyB9Ii4gUHJv
ZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRl
IHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBJbnZhbGlkOiAi
KHsgKmZvbyhiLCBjLCBiKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVy
cm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGlu
IGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28oYiwgYywg
Yil7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4
RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIK
K1BBU1MgSW52YWxpZDogIih7IGFzeW5jIGZvbyhhLGEpe30gfSk7Ii4gUHJvZHVjZWQgdGhlIGZv
bGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAn
YScgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigp
IHsgKHsgYXN5bmMgZm9vKGEsYSl7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3lu
dGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxv
d2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogIih7IGFzeW5jIGZvbyhiLCBjLCBiKXt9
IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6
IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1Mg
SW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGFzeW5jIGZvbyhiLCBjLCBiKXt9IH0pOyB9Ii4g
UHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGlj
YXRlIHBhcmFtZXRlciAnYicgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBWYWxpZDog
ICAiKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24g
ZigpIHsgKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7IH0iCitQQVNTIFZhbGlkOiAgICIoeyBm
b286IGZ1bmN0aW9uKGIsIGMsIGIpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigp
IHsgKHsgZm9vOiBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyB9IgorUEFTUyBWYWxpZDogICAiKHsg
Zm9vOiBmdW5jdGlvbiooYSxhKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7
ICh7IGZvbzogZnVuY3Rpb24qKGEsYSl7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAgIih7IGZvbzog
ZnVuY3Rpb24qKGIsIGMsIGIpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsg
KHsgZm9vOiBmdW5jdGlvbiooYiwgYywgYil7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAgIih7IGZv
bzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYo
KSB7ICh7IGZvbzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyB9IgorUEFTUyBWYWxpZDogICAi
KHsgZm9vOiBhc3luYyBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1
bmN0aW9uIGYoKSB7ICh7IGZvbzogYXN5bmMgZnVuY3Rpb24oYiwgYywgYil7fSB9KTsgfSIKIFBB
U1MgSW52YWxpZDogIigoYSxhKT0+YSk7Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXgg
ZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKCcuIEV4cGVjdGVkIGEgcGFy
YW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgogUEFTUyBJbnZhbGlk
OiAiZnVuY3Rpb24gZigpIHsgKChhLGEpPT5hKTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcg
c3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJygnLiBFeHBlY3Rl
ZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIKIFBBU1Mg
SW52YWxpZDogImxldCB4ID0gKGEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzCmluZGV4IDIwNjEzOTBiNWNhLi4zZWYyYjk1ZTI3MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hl
Y2suanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hl
Y2suanMKQEAgLTg2OSwxMSArODY5LDIyIEBAIGludmFsaWQoImxldCB4ID0gKHthLCBiOnthfX0p
PT5hOyIpOwogaW52YWxpZCgibGV0IHggPSAoYSxhKT0+eyBhIH07Iik7CiBpbnZhbGlkKCJsZXQg
eCA9IChbYV0sYSk9PnsgfTsiKTsKIGludmFsaWQoImxldCB4ID0gKFthLCBhXSk9PnsgfTsiKTsK
LWludmFsaWQoImxldCB4ID0gKFthLCBhXSk9PnsgfTsiKTsKIGludmFsaWQoImxldCB4ID0gKGEs
IC4uLmEpPT57IH07Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChiLCBjLCBiKT0+eyB9OyIpOwogaW52
YWxpZCgibGV0IHggPSAoYSwgYiwgYywgZCwge2F9KT0+eyB9OyIpOwogaW52YWxpZCgibGV0IHgg
PSAoYiA9IChhLGEpPT5hLCBiKT0+eyB9OyIpOworaW52YWxpZCgiKHsgZm9vKGEsYSl7fSB9KTsi
KTsKK2ludmFsaWQoIih7IGZvbyhiLCBjLCBiKXt9IH0pOyIpOworaW52YWxpZCgiKHsgKmZvbyhh
LGEpe30gfSk7Iik7CitpbnZhbGlkKCIoeyAqZm9vKGIsIGMsIGIpe30gfSk7Iik7CitpbnZhbGlk
KCIoeyBhc3luYyBmb28oYSxhKXt9IH0pOyIpOworaW52YWxpZCgiKHsgYXN5bmMgZm9vKGIsIGMs
IGIpe30gfSk7Iik7Cit2YWxpZCgiKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7Iik7Cit2YWxp
ZCgiKHsgZm9vOiBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyIpOwordmFsaWQoIih7IGZvbzogZnVu
Y3Rpb24qKGEsYSl7fSB9KTsiKTsKK3ZhbGlkKCIoeyBmb286IGZ1bmN0aW9uKihiLCBjLCBiKXt9
IH0pOyIpOwordmFsaWQoIih7IGZvbzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyIpOwordmFs
aWQoIih7IGZvbzogYXN5bmMgZnVuY3Rpb24oYiwgYywgYil7fSB9KTsiKTsKIGludmFsaWQoIigo
YSxhKT0+YSk7Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChhKVxuPT5hOyIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCA0N2M1OWE5MWNiMi4uNGMyYTE4MGQ2MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDE3LTA0LTIyICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMt
b2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1ldGVycy5qcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTkwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1bmN0aW9u
RXhwcmVzc2lvbkNvbW1vbik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
TmV3RnVuY3Rpb24pOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgor
ICAgICAgICAoSlNDOjpGdW5jdGlvbk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6
OlNjb3BlOjpzZXRTb3VyY2VQYXJzZU1vZGUpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJNb2Rl
cy5oOgorICAgICAgICAoSlNDOjppc0Z1bmN0aW9uUGFyc2VNb2RlKToKKyAgICAgICAgKEpTQzo6
aXNNZXRob2RQYXJzZU1vZGUpOgorICAgICAgICAoSlNDOjppc0dlbmVyYXRvck9yQXN5bmNGdW5j
dGlvbldyYXBwZXJQYXJzZU1vZGUpOgorICAgICAgICAoSlNDOjppc0dlbmVyYXRvclBhcnNlTW9k
ZSk6CisgICAgICAgIChKU0M6OmlzR2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZSk6CisgICAgICAg
ICogcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICBBZGQgYSBuZXcgR2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgcGFyc2UgbW9k
ZS4gVGhlIG90aGVyIGZ1bmN0aW9uIHR5cGVzCisgICAgICAgIChhc3luYywgYXJyb3cpIGFscmVh
ZHkgaGF2ZSBhIEZ1bmN0aW9uTW9kZSBhbmQgYSBNZXRob2RNb2RlLiBHaXZlCisgICAgICAgIGdl
bmVyYXRvcnMgb25lIGFzIHdlbGwuIFRoaXMgbGV0cyBpc01ldGhvZFBhcnNlTW9kZSBhY3R1YWxs
eSBiZSBhY2N1cmF0ZS4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcik6CisgICAgICAgIChKU0M6OlBhcnNl
cjxMZXhlclR5cGU+Ojppc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKEpTQzo6
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9ybWFsUGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6
OnN0cmluZ0ZvckZ1bmN0aW9uTW9kZSk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUZ1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUNsYXNzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJv
cGVydHlNZXRob2QpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAgQWRkIGEg
ZHVwbGljYXRlIHBhcmFtZXRlciBmYWlsdXJlIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUgcGFyYW1l
dGVycworICAgICAgICBpbiBtZXRob2Qgc3ludGF4LgorCisyMDE3LTA0LTIyICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgdGVzdDI2MjogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2RzdHItYXJyYXktZWxlbS1pbml0LWZuLW5h
bWUtYXJyb3cuanMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTE2MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGFkMGY0MTc5ZjcwLi41MDA5N2I0NWYw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTUzNCw3ICs1MzQsOCBAQCBCeXRlY29kZUdlbmVyYXRv
cjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwg
VW5saW5rZQogCiAgICAgbV9uZXdUYXJnZXRSZWdpc3RlciA9IGFkZFZhcigpOwogICAgIHN3aXRj
aCAocGFyc2VNb2RlKSB7Ci0gICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGU6IHsKKyAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3Jh
cHBlckZ1bmN0aW9uTW9kZToKKyAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3Jh
cHBlck1ldGhvZE1vZGU6IHsKICAgICAgICAgbV9nZW5lcmF0b3JSZWdpc3RlciA9IGFkZFZhcigp
OwogCiAgICAgICAgIC8vIEZJWE1FOiBFbWl0IHRvX3RoaXMgb25seSB3aGVuIEdlbmVyYXRvciB1
c2VzIGl0LgpAQCAtMzIyOSw2ICszMjMwLDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dE5ld0Z1bmN0aW9uRXhwcmVzc2lvbkNvbW1vbihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW8KICAg
ICBPcGNvZGVJRCBvcGNvZGVJRCA9IG9wX25ld19mdW5jX2V4cDsKICAgICBzd2l0Y2ggKGZ1bmN0
aW9uLT5wYXJzZU1vZGUoKSkgewogICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JX
cmFwcGVyRnVuY3Rpb25Nb2RlOgorICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JX
cmFwcGVyTWV0aG9kTW9kZToKICAgICAgICAgb3Bjb2RlSUQgPSBvcF9uZXdfZ2VuZXJhdG9yX2Z1
bmNfZXhwOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNG
dW5jdGlvbk1vZGU6CkBAIC0zMjg2LDcgKzMyODgsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdE5ld0RlZmF1bHRDb25zdHJ1Y3RvcihSZWdpc3RlcklEKiBkc3QsIENvbnN0
cgogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdGdW5jdGlvbihSZWdpc3Rl
cklEKiBkc3QsIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBmdW5jdGlvbikKIHsKICAgICB1bnNpZ25l
ZCBpbmRleCA9IG1fY29kZUJsb2NrLT5hZGRGdW5jdGlvbkRlY2wobWFrZUZ1bmN0aW9uKGZ1bmN0
aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9uLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6
OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpCisgICAgaWYgKGlzR2VuZXJhdG9yV3JhcHBl
clBhcnNlTW9kZShmdW5jdGlvbi0+cGFyc2VNb2RlKCkpKQogICAgICAgICBlbWl0T3Bjb2RlKG9w
X25ld19nZW5lcmF0b3JfZnVuYyk7CiAgICAgZWxzZSBpZiAoZnVuY3Rpb24tPnBhcnNlTW9kZSgp
ID09IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNGdW5jdGlvbk1vZGUpCiAgICAgICAgIGVtaXRPcGNv
ZGUob3BfbmV3X2FzeW5jX2Z1bmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDc2ZjJiZWU3ZDI3Li45NzQxNjdmNDky
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcApAQCAtMzUxMiw3ICszNTEyLDggQEAgdm9pZCBGdW5jdGlvbk5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKICAgICBn
ZW5lcmF0b3IuZW1pdERlYnVnSG9vayhEaWRFbnRlckNhbGxGcmFtZSwgc3RhcnRMaW5lKCksIHN0
YXJ0U3RhcnRPZmZzZXQoKSwgc3RhcnRMaW5lU3RhcnRPZmZzZXQoKSk7CiAKICAgICBzd2l0Y2gg
KGdlbmVyYXRvci5wYXJzZU1vZGUoKSkgewotICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOiB7CisgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6Okdl
bmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6CisgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6Okdl
bmVyYXRvcldyYXBwZXJNZXRob2RNb2RlOiB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUqIHNpbmds
ZVN0YXRlbWVudCA9IHRoaXMtPnNpbmdsZVN0YXRlbWVudCgpOwogICAgICAgICBBU1NFUlQoc2lu
Z2xlU3RhdGVtZW50LT5pc0V4cHJTdGF0ZW1lbnQoKSk7CiAgICAgICAgIEV4cHJTdGF0ZW1lbnRO
b2RlKiBleHByU3RhdGVtZW50ID0gc3RhdGljX2Nhc3Q8RXhwclN0YXRlbWVudE5vZGUqPihzaW5n
bGVTdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4
IGE4OTE4YjAxODk2Li40ZDZjMmUzZWQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIFN0cmluZyBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VJbm5lcihjb25zdCBJZGVudGlmaWVyJiBjYWxsZWVOYW1lLCBTb3VyY2VQYXJzZU1vCiAg
ICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlQXJyb3dGdW5jdGlvblNpbmdsZUV4cHJl
c3Npb25Cb2R5U291cmNlRWxlbWVudHMoY29udGV4dCk7CiAgICAgICAgIGVsc2UgaWYgKGlzTW9k
dWxlUGFyc2VNb2RlKHBhcnNlTW9kZSkpCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBh
cnNlTW9kdWxlU291cmNlRWxlbWVudHMoY29udGV4dCwgcGFyc2VNb2RlKTsKLSAgICAgICAgZWxz
ZSBpZiAocGFyc2VNb2RlID09IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0
aW9uTW9kZSkKKyAgICAgICAgZWxzZSBpZiAoaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKHBh
cnNlTW9kZSkpCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlR2VuZXJhdG9yRnVu
Y3Rpb25Tb3VyY2VFbGVtZW50cyhjb250ZXh0LCBjYWxsZWVOYW1lLCBDaGVja0ZvclN0cmljdE1v
ZGUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlU291
cmNlRWxlbWVudHMoY29udGV4dCwgQ2hlY2tGb3JTdHJpY3RNb2RlKTsKQEAgLTIzOSw3ICsyMzks
NyBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uc3QgSWRlbnRpZmll
ciYgY2FsbGVlTmFtZSwgU291cmNlUGFyc2VNbwogICAgIGZvciAoYXV0byYgZW50cnkgOiBjYXB0
dXJlZFZhcmlhYmxlcykKICAgICAgICAgdmFyRGVjbGFyYXRpb25zLm1hcmtWYXJpYWJsZUFzQ2Fw
dHVyZWQoZW50cnkpOwogCi0gICAgaWYgKFNvdXJjZVBhcnNlTW9kZVNldChTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpLmNvbnRhaW5zKHBhcnNlTW9kZSkgfHwg
aXNBc3luY0Z1bmN0aW9uV3JhcHBlclBhcnNlTW9kZShwYXJzZU1vZGUpKSB7CisgICAgaWYgKGlz
R2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZShwYXJzZU1vZGUpIHx8IGlzQXN5bmNGdW5jdGlvbldy
YXBwZXJQYXJzZU1vZGUocGFyc2VNb2RlKSkgewogICAgICAgICBpZiAoc2NvcGUtPnVzZWRWYXJp
YWJsZXNDb250YWlucyhtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKSkKICAg
ICAgICAgICAgIGNvbnRleHQucHJvcGFnYXRlQXJndW1lbnRzVXNlKCk7CiAgICAgfQpAQCAtMjk4
LDcgKzI5OCw4IEBAIGJvb2wgUGFyc2VyPExleGVyVHlwZT46OmlzQXJyb3dGdW5jdGlvblBhcmFt
ZXRlcnMoKQogCiAgICAgICAgICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJzQ291bnQgPSAwOwogICAg
ICAgICAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJMaXN0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGlzQXJyb3dGdW5jdGlvbiA9IHBhcnNlRm9ybWFsUGFyYW1ldGVycyhzeW50YXhDaGVj
a2VyLCBzeW50YXhDaGVja2VyLmNyZWF0ZUZvcm1hbFBhcmFtZXRlckxpc3QoKSwgaXNBcnJvd0Z1
bmN0aW9uUGFyYW1ldGVyTGlzdCwgcGFyYW1ldGVyc0NvdW50KSAmJiBjb25zdW1lKENMT1NFUEFS
RU4pICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04pOworICAgICAgICAgICAgYm9vbCBpc01ldGhvZCA9
IGZhbHNlOworICAgICAgICAgICAgaXNBcnJvd0Z1bmN0aW9uID0gcGFyc2VGb3JtYWxQYXJhbWV0
ZXJzKHN5bnRheENoZWNrZXIsIHN5bnRheENoZWNrZXIuY3JlYXRlRm9ybWFsUGFyYW1ldGVyTGlz
dCgpLCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJMaXN0LCBpc01ldGhvZCwgcGFyYW1ldGVyc0Nv
dW50KSAmJiBjb25zdW1lKENMT1NFUEFSRU4pICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04pOwogICAg
ICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsKICAgICAgICAgICAgIHBvcFNjb3BlKGZha2VTY29w
ZSwgc3ludGF4Q2hlY2tlci5OZWVkc0ZyZWVWYXJpYWJsZUluZm8pOwogICAgICAgICB9CkBAIC0x
ODUwLDcgKzE4NTEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2Vy
PExleGVyVHlwZT46Om1heWJlUGFyc2VBc3luY0Z1bmN0aW9uRGVjbAogfQogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgTGV4ZXJUeXBlPgotdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBib29sIFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZUZvcm1hbFBhcmFtZXRlcnMoVHJlZUJ1aWxkZXImIGNvbnRl
eHQsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0IGxpc3QsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uLCB1
bnNpZ25lZCYgcGFyYW1ldGVyQ291bnQpCit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJv
b2wgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYg
Y29udGV4dCwgVHJlZUZvcm1hbFBhcmFtZXRlckxpc3QgbGlzdCwgYm9vbCBpc0Fycm93RnVuY3Rp
b24sIGJvb2wgaXNNZXRob2QsIHVuc2lnbmVkJiBwYXJhbWV0ZXJDb3VudCkKIHsKICNkZWZpbmUg
ZmFpbElmRHVwbGljYXRlSWZWaW9sYXRpb24oKSBcCiAgICAgaWYgKGR1cGxpY2F0ZVBhcmFtZXRl
cikge1wKQEAgLTE4NTgsNiArMTg1OSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
Ym9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCCiAgICAg
ICAgIHNlbWFudGljRmFpbElmVHJ1ZShoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgIkR1cGxpY2F0
ZSBwYXJhbWV0ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dl
ZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycyIpO1wKICAgICAgICAg
c2VtYW50aWNGYWlsSWZUcnVlKGlzUmVzdFBhcmFtZXRlciwgIkR1cGxpY2F0ZSBwYXJhbWV0ZXIg
JyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlv
biB3aXRoIGEgcmVzdCBwYXJhbWV0ZXIiKTtcCiAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShp
c0Fycm93RnVuY3Rpb24sICJEdXBsaWNhdGUgcGFyYW1ldGVyICciLCBkdXBsaWNhdGVQYXJhbWV0
ZXItPmltcGwoKSwgIicgbm90IGFsbG93ZWQgaW4gYW4gYXJyb3cgZnVuY3Rpb24iKTtcCisgICAg
ICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc01ldGhvZCwgIkR1cGxpY2F0ZSBwYXJhbWV0ZXIgJyIs
IGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZCIp
O1wKICAgICB9CiAKICAgICBib29sIGhhc0RlZmF1bHRQYXJhbWV0ZXJWYWx1ZXMgPSBmYWxzZTsK
QEAgLTE5NTEsNiArMTk1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzdHJpbmdGb3JGdW5jdGlv
bk1vZGUoU291cmNlUGFyc2VNb2RlIG1vZGUpCiAgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6Okdl
bmVyYXRvckJvZHlNb2RlOgogICAgICAgICByZXR1cm4gImdlbmVyYXRvciI7CiAgICAgY2FzZSBT
b3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6CisgICAgY2FzZSBT
b3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlOgogICAgICAgICByZXR1
cm4gImdlbmVyYXRvciBmdW5jdGlvbiI7CiAgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkFycm93
RnVuY3Rpb25Nb2RlOgogICAgICAgICByZXR1cm4gImFycm93IGZ1bmN0aW9uIjsKQEAgLTE5OTAs
NyArMTk5Myw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+IHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlciwgY2xhc3MgRnVuY3Rpb25JbmZvVHlwCiAgICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uSW5mby5wYXJhbWV0ZXJDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb24gPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMoY29udGV4
dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBmdW5jdGlvbkluZm8ucGFyYW1ldGVy
Q291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9yRnVu
Y3Rpb25Nb2RlKG1vZGUpKTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBpc01ldGhvZCA9IGZh
bHNlOworICAgICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRl
cnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBpc01ldGhvZCwgZnVu
Y3Rpb25JbmZvLnBhcmFtZXRlckNvdW50KSwgIkNhbm5vdCBwYXJzZSBwYXJhbWV0ZXJzIGZvciB0
aGlzICIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShtb2RlKSk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNvbnN1bWVPckZhaWwoQ0xPU0VQQVJF
TiwgIkV4cGVjdGVkIGEgJyknIG9yIGEgJywnIGFmdGVyIGEgcGFyYW1ldGVyIGRlY2xhcmF0aW9u
Iik7CkBAIC0yMDM0LDcgKzIwMzgsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPiB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXIsIGNsYXNzIEZ1bmN0aW9uSW5mb1R5cAogICAgICAg
ICAgICAgZnVuY3Rpb25JbmZvLnBhcmFtZXRlckNvdW50ID0gMDsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGJvb2wgaXNBcnJvd0Z1bmN0aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBm
YWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwg
aXNBcnJvd0Z1bmN0aW9uLCBmdW5jdGlvbkluZm8ucGFyYW1ldGVyQ291bnQpLCAiQ2Fubm90IHBh
cnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsK
KyAgICAgICAgICAgIGJvb2wgaXNNZXRob2QgPSBpc01ldGhvZFBhcnNlTW9kZShtb2RlKTsKKyAg
ICAgICAgICAgIGZhaWxJZkZhbHNlKHBhcnNlRm9ybWFsUGFyYW1ldGVycyhjb250ZXh0LCBwYXJh
bWV0ZXJMaXN0LCBpc0Fycm93RnVuY3Rpb24sIGlzTWV0aG9kLCBmdW5jdGlvbkluZm8ucGFyYW1l
dGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9y
RnVuY3Rpb25Nb2RlKG1vZGUpKTsKICAgICAgICAgfQogICAgICAgICBjb25zdW1lT3JGYWlsKENM
T1NFUEFSRU4sICJFeHBlY3RlZCBhICcpJyBvciBhICcsJyBhZnRlciBhIHBhcmFtZXRlciBkZWNs
YXJhdGlvbiIpOwogICAgIH0KQEAgLTIyMzQsNyArMjIzOSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBU
cmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkluZm8oVHJl
ZUJ1aWxkCiAgICAgICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShmdW5jdGlvbkRl
ZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkRlY2xhcmF0aW9uIHx8IGlz
QXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUobW9kZSksICJDYW5ub3QgZGVjbGFyZSBmdW5j
dGlvbiBuYW1lZCAnYXdhaXQnICIsIGlzRGlzYWxsb3dlZEF3YWl0RnVuY3Rpb25OYW1lUmVhc29u
KTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0FzeW5jRnVuY3Rpb25XcmFwcGVyUGFyc2VN
b2RlKG1vZGUpICYmIG1hdGNoKEFXQUlUKSAmJiBmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1
bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAgICAgIHNl
bWFudGljRmFpbCgiQ2Fubm90IGRlY2xhcmUgYXN5bmMgZnVuY3Rpb24gbmFtZWQgJ2F3YWl0JyIp
OwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT0gU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlICYmIG1hdGNoKFlJRUxEKSAmJiBmdW5jdGlvbkRlZmlu
aXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCisgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKG1vZGUpICYmIG1h
dGNoKFlJRUxEKSAmJiBmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlv
blR5cGU6OkV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiQ2Fu
bm90IGRlY2xhcmUgZ2VuZXJhdG9yIGZ1bmN0aW9uIG5hbWVkICd5aWVsZCciKTsKICAgICAgICAg
ICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFuYW1lSXNJbkNvbnRhaW5pbmdT
Y29wZSkKQEAgLTI2OTksNyArMjcwNCw3IEBAIHBhcnNlTWV0aG9kOgogICAgICAgICAgICAgICAg
IHNlbWFudGljRmFpbElmVHJ1ZSgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+Y29uc3Ry
dWN0b3IsICJDYW5ub3QgZGVjbGFyZSBhbiBhc3luYyBtZXRob2QgbmFtZWQgJ2NvbnN0cnVjdG9y
JyIpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChpc0dlbmVyYXRvcikgewogICAgICAgICAgICAg
ICAgIGlzQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBwYXJzZU1vZGUgPSBT
b3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU7CisgICAgICAgICAg
ICAgICAgcGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9k
TW9kZTsKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoKmlkZW50ID09IG1fdm0t
PnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgIkNhbm5vdCBkZWNsYXJlIGEgZ2VuZXJhdG9yIG5h
bWVkICdwcm90b3R5cGUnIik7CiAgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKCpp
ZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgIkNhbm5vdCBkZWNsYXJl
IGEgZ2VuZXJhdG9yIG5hbWVkICdjb25zdHJ1Y3RvciciKTsKICAgICAgICAgICAgIH0KQEAgLTM4
MjMsNyArMzgyOCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRoCiAgICAgdW5zaWduZWQgbWV0
aG9kU3RhcnQgPSB0b2tlblN0YXJ0KCk7CiAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWls
ZGVyPiBtZXRob2RJbmZvOwogICAgIG1ldGhvZEluZm8ubmFtZSA9IG1ldGhvZE5hbWU7Ci0gICAg
U291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IGlzR2VuZXJhdG9yID8gU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlIDogaXNBc3luY01ldGhvZCA/IFNvdXJjZVBh
cnNlTW9kZTo6QXN5bmNNZXRob2RNb2RlIDogU291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlOwor
ICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBpc0dlbmVyYXRvciA/IFNvdXJjZVBhcnNl
TW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgOiBpc0FzeW5jTWV0aG9kID8gU291cmNl
UGFyc2VNb2RlOjpBc3luY01ldGhvZE1vZGUgOiBTb3VyY2VQYXJzZU1vZGU6Ok1ldGhvZE1vZGU7
CiAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTmFt
ZVJlcXVpcmVtZW50czo6VW5uYW1lZCwgcGFyc2VNb2RlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5k
OjpOb25lLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgbWV0aG9kU3RhcnQsIG1ldGhvZEluZm8sIEZ1
bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9k
Iik7CiAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlTWV0aG9kRGVmaW5pdGlvbihtZXRob2RMb2Nh
dGlvbiwgbWV0aG9kSW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApp
bmRleCA5NGIzOTAyZTEyZS4uYzM1ZDVhMTJlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuaApAQCAtMjc2LDYgKzI3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rp
b25Nb2RlOgorICAgICAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1l
dGhvZE1vZGU6CiAgICAgICAgICAgICBzZXRJc0dlbmVyYXRvckZ1bmN0aW9uKCk7CiAgICAgICAg
ICAgICBicmVhazsKIApAQCAtMTU4MSw3ICsxNTgyLDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlUHJvcGVydHlNZXRob2Qo
VHJlZUJ1aWxkZXImIGNvbnRleHQsIGNvbnN0IElkZW50aWZpZXIqIG1ldGhvZE5hbWUsIGJvb2wg
aXNHZW5lcmF0b3IsIGJvb2wgaXNBc3luY01ldGhvZCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgcGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImLCBi
b29sIHN0cmljdCwgUHJvcGVydHlOb2RlOjpUeXBlLCB1bnNpZ25lZCBnZXR0ZXJPclNldHRlclN0
YXJ0T2Zmc2V0LCBDb25zdHJ1Y3RvcktpbmQsIGJvb2wgaXNDbGFzc1Byb3BlcnR5LCBib29sIGlz
U3RhdGljTWV0aG9kKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19J
TkxJTkUgVHJlZUZ1bmN0aW9uQm9keSBwYXJzZUZ1bmN0aW9uQm9keShUcmVlQnVpbGRlciYsIFN5
bnRheENoZWNrZXImLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCBmdW5jdGlvbktl
eXdvcmRTdGFydCwgaW50IGZ1bmN0aW9uTmFtZVN0YXJ0LCBpbnQgcGFyYW1ldGVyc1N0YXJ0LCBD
b25zdHJ1Y3RvcktpbmQsIFN1cGVyQmluZGluZywgRnVuY3Rpb25Cb2R5VHlwZSwgdW5zaWduZWQs
IFNvdXJjZVBhcnNlTW9kZSk7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdB
WVNfSU5MSU5FIGJvb2wgcGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCdWlsZGVyJiwgVHJlZUZv
cm1hbFBhcmFtZXRlckxpc3QsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uLCB1bnNpZ25lZCYpOworICAg
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBib29sIHBhcnNlRm9y
bWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0LCBib29s
IGlzQXJyb3dGdW5jdGlvbiwgYm9vbCBpc01ldGhvZCwgdW5zaWduZWQmKTsKICAgICBlbnVtIFZh
ckRlY2xhcmF0aW9uTGlzdENvbnRleHQgeyBGb3JMb29wQ29udGV4dCwgVmFyRGVjbGFyYXRpb25D
b250ZXh0IH07CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lv
biBwYXJzZVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0KFRyZWVCdWlsZGVyJiwgaW50JiBkZWNsYXJh
dGlvbnMsIFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybiYgbGFzdFBhdHRlcm4sIFRyZWVFeHByZXNz
aW9uJiBsYXN0SW5pdGlhbGl6ZXIsIEpTVGV4dFBvc2l0aW9uJiBpZGVudFN0YXJ0LCBKU1RleHRQ
b3NpdGlvbiYgaW5pdFN0YXJ0LCBKU1RleHRQb3NpdGlvbiYgaW5pdEVuZCwgVmFyRGVjbGFyYXRp
b25MaXN0Q29udGV4dCwgRGVjbGFyYXRpb25UeXBlLCBFeHBvcnRUeXBlLCBib29sJiBmb3JMb29w
Q29uc3REb2VzTm90SGF2ZUluaXRpYWxpemVyKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IFRyZWVTb3VyY2VFbGVtZW50cyBwYXJzZUFycm93RnVuY3Rpb25TaW5nbGVFeHByZXNz
aW9uQm9keVNvdXJjZUVsZW1lbnRzKFRyZWVCdWlsZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5kZXggNTkyOTg0NjkxOGYuLjlhOTZmNWQxN2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCkBAIC00NiwxOCAr
NDYsMTkgQEAgZW51bSBjbGFzcyBTb3VyY2VQYXJzZU1vZGUgOiB1aW50MTZfdCB7CiAgICAgTm9y
bWFsRnVuY3Rpb25Nb2RlICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDAwMDEsCiAgICAgR2Vu
ZXJhdG9yQm9keU1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDAwMTAsCiAgICAgR2Vu
ZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSAgPSAwYjAwMDAwMDAwMDAwMDAxMDAsCi0gICAgR2V0
dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDEwMDAsCi0gICAgU2V0
dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMTAwMDAsCi0gICAgTWV0
aG9kTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAxMDAwMDAsCi0gICAgQXJy
b3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDEwMDAwMDAsCi0gICAgQXN5
bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAgPSAwYjAwMDAwMDAwMTAwMDAwMDAsCi0gICAgQXN5
bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAgPSAwYjAwMDAwMDAxMDAwMDAwMDAsCi0gICAgQXN5
bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDEwMDAwMDAwMDAsCi0gICAgQXN5
bmNNZXRob2RNb2RlICAgICAgICAgICAgICAgPSAwYjAwMDAwMTAwMDAwMDAwMDAsCi0gICAgQXN5
bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAgPSAwYjAwMDAxMDAwMDAwMDAwMDAsCi0gICAgUHJv
Z3JhbU1vZGUgICAgICAgICAgICAgICAgICAgPSAwYjAwMDEwMDAwMDAwMDAwMDAsCi0gICAgTW9k
dWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAgPSAwYjAwMTAwMDAwMDAwMDAwMDAsCi0gICAgTW9k
dWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAgPSAwYjAxMDAwMDAwMDAwMDAwMDAsCisgICAgR2Vu
ZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgICAgPSAwYjAwMDAwMDAwMDAwMDEwMDAsCisgICAgR2V0
dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMTAwMDAsCisgICAgU2V0
dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAxMDAwMDAsCisgICAgTWV0
aG9kTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDEwMDAwMDAsCisgICAgQXJy
b3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMTAwMDAwMDAsCisgICAgQXN5
bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAgPSAwYjAwMDAwMDAxMDAwMDAwMDAsCisgICAgQXN5
bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAgPSAwYjAwMDAwMDEwMDAwMDAwMDAsCisgICAgQXN5
bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMTAwMDAwMDAwMDAsCisgICAgQXN5
bmNNZXRob2RNb2RlICAgICAgICAgICAgICAgPSAwYjAwMDAxMDAwMDAwMDAwMDAsCisgICAgQXN5
bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAgPSAwYjAwMDEwMDAwMDAwMDAwMDAsCisgICAgUHJv
Z3JhbU1vZGUgICAgICAgICAgICAgICAgICAgPSAwYjAwMTAwMDAwMDAwMDAwMDAsCisgICAgTW9k
dWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAgPSAwYjAxMDAwMDAwMDAwMDAwMDAsCisgICAgTW9k
dWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAgPSAwYjEwMDAwMDAwMDAwMDAwMDAsCiB9OwogCiBj
bGFzcyBTb3VyY2VQYXJzZU1vZGVTZXQgeyAKQEAgLTk0LDYgKzk1LDcgQEAgQUxXQVlTX0lOTElO
RSBib29sIGlzRnVuY3Rpb25QYXJzZU1vZGUoU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKICAg
ICAgICAgU291cmNlUGFyc2VNb2RlOjpOb3JtYWxGdW5jdGlvbk1vZGUsIAogICAgICAgICBTb3Vy
Y2VQYXJzZU1vZGU6OkdlbmVyYXRvckJvZHlNb2RlLCAKICAgICAgICAgU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLCAKKyAgICAgICAgU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZSwKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpH
ZXR0ZXJNb2RlLCAKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpTZXR0ZXJNb2RlLCAKICAgICAg
ICAgU291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlLCAKQEAgLTE0MCw4ICsxNDIsNyBAQCBBTFdB
WVNfSU5MSU5FIGJvb2wgaXNBc3luY0Z1bmN0aW9uQm9keVBhcnNlTW9kZShTb3VyY2VQYXJzZU1v
ZGUgcGFyc2VNb2RlKQogQUxXQVlTX0lOTElORSBib29sIGlzTWV0aG9kUGFyc2VNb2RlKFNvdXJj
ZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgK
LSAgICAgICAgLy8gRklYTUU6IEdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUgaXMgbm90IGd1
YXJhbnRlZWQgdG8gYmUgYSBtZXRob2QuCi0gICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJh
dG9yV3JhcHBlckZ1bmN0aW9uTW9kZSwKKyAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0
b3JXcmFwcGVyTWV0aG9kTW9kZSwKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZXR0ZXJNb2Rl
LAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OlNldHRlck1vZGUsCiAgICAgICAgIFNvdXJjZVBh
cnNlTW9kZTo6TWV0aG9kTW9kZSwKQEAgLTE2MCwxMSArMTYxLDI3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBpc0dlbmVyYXRvck9yQXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUoU291cmNlUGFy
c2VNb2RlIHBhCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKICAgICAgICAgU291
cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICBTb3Vy
Y2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlLAogICAgICAgICBTb3VyY2VQ
YXJzZU1vZGU6OkFzeW5jRnVuY3Rpb25Nb2RlLAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkFz
eW5jQXJyb3dGdW5jdGlvbk1vZGUsCiAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNNZXRo
b2RNb2RlKS5jb250YWlucyhwYXJzZU1vZGUpOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNH
ZW5lcmF0b3JQYXJzZU1vZGUoU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKK3sKKyAgICByZXR1
cm4gU291cmNlUGFyc2VNb2RlU2V0KAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRv
ckJvZHlNb2RlLAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5j
dGlvbk1vZGUsCisgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhv
ZE1vZGUpLmNvbnRhaW5zKHBhcnNlTW9kZSk7ICAgIAorfQorCitBTFdBWVNfSU5MSU5FIGJvb2wg
aXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCit7
CisgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKKyAgICAgICAgU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6
OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlKS5jb250YWlucyhwYXJzZU1vZGUpOworfQorCiBB
TFdBWVNfSU5MSU5FIGJvb2wgaXNBcnJvd0Z1bmN0aW9uUGFyc2VNb2RlKFNvdXJjZVBhcnNlTW9k
ZSBwYXJzZU1vZGUpCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5kZXgg
Y2VlNDEwZGY5MjQuLjdjMWIwODg5ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzQXJyb3dGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgp
ID09IFNvdXJjZVBhcnNlTW9kZTo6QXJyb3dGdW5jdGlvbk1vZGU7IH0KICAgICBib29sIGlzR2V0
dGVyKCkgY29uc3QgeyByZXR1cm4gcGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpHZXR0
ZXJNb2RlOyB9CiAgICAgYm9vbCBpc1NldHRlcigpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgp
ID09IFNvdXJjZVBhcnNlTW9kZTo6U2V0dGVyTW9kZTsgfQotICAgIGJvb2wgaXNHZW5lcmF0b3Io
KSBjb25zdCB7IHJldHVybiBTb3VyY2VQYXJzZU1vZGVTZXQoU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JCb2R5TW9kZSwgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25N
b2RlKS5jb250YWlucyhwYXJzZU1vZGUoKSk7IH0KKyAgICBib29sIGlzR2VuZXJhdG9yKCkgY29u
c3QgeyByZXR1cm4gaXNHZW5lcmF0b3JQYXJzZU1vZGUocGFyc2VNb2RlKCkpOyB9CiAgICAgYm9v
bCBpc01ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9k
ZTo6TWV0aG9kTW9kZTsgfQogICAgIGJvb2wgaGFzQ2FsbGVyQW5kQXJndW1lbnRzUHJvcGVydGll
cygpIGNvbnN0CiAgICAgewpAQCAtMTM2LDcgKzEzNiw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKICAgICAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6Tm9y
bWFsRnVuY3Rpb25Nb2RlLAogICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JC
b2R5TW9kZSwKLSAgICAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1
bmN0aW9uTW9kZQorICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVy
RnVuY3Rpb25Nb2RlLAorICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFw
cGVyTWV0aG9kTW9kZQogICAgICAgICApLmNvbnRhaW5zKHBhcnNlTW9kZSgpKSB8fCBpc0NsYXNz
KCk7CiAgICAgfQogICAgIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXgg
NTFkNDE1NGY4NmYuLjQyZjcwOWMwMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgSlNGdW5jdGlvbjo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOCiAgICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHRoaXNPYmplY3QtPmdldERp
cmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKICAgICAgICAgaWYgKCFp
c1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUg
PSBudWxscHRyOwotICAgICAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5w
YXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1v
ZGUpIHsKKyAgICAgICAgICAgIGlmIChpc0dlbmVyYXRvcldyYXBwZXJQYXJzZU1vZGUodGhpc09i
amVjdC0+anNFeGVjdXRhYmxlKCktPnBhcnNlTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIC8v
IFVubGlrZSBmdW5jdGlvbiBpbnN0YW5jZXMsIHRoZSBvYmplY3QgdGhhdCBpcyB0aGUgdmFsdWUg
b2YgdGhlIGEgR2VuZXJhdG9yRnVuY3Rpb24ncyBwcm90b3R5cGUKICAgICAgICAgICAgICAgICAv
LyBwcm9wZXJ0eSBkb2VzIG5vdCBoYXZlIGEgY29uc3RydWN0b3IgcHJvcGVydHkgd2hvc2UgdmFs
dWUgaXMgdGhlIEdlbmVyYXRvckZ1bmN0aW9uIGluc3RhbmNlLgogICAgICAgICAgICAgICAgIC8v
IGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWdlbmVyYXRvcmZ1bmN0aW9uLWlu
c3RhbmNlcy1wcm90b3R5cGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307923</attachid>
            <date>2017-04-23 00:08:31 -0700</date>
            <delta_ts>2017-04-24 17:21:07 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>duplicate-2.patch</filename>
            <type>text/plain</type>
            <size>31431</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZGMzOWUzYzQzMTcuLjkxYzlkY2IyMDI1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE3LTA0LTIyICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9l
YXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1ldGVycy5qcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMt
YXdhaXQtc3ludGF4LmpzOgorICAgICAgICAqIHRlc3QyNjIueWFtbDoKKworMjAxNy0wNC0yMiAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3QyNjI6
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9kc3RyLWFycmF5LWVsZW0t
aW5pdC1mbi1uYW1lLWFycm93LmpzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzExNjAKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMt
YXdhaXQtc3ludGF4LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXdhaXQtc3ludGF4LmpzCmlu
ZGV4IDVhN2Q0ZjVkYWQ1Li42ZDliODcyZjY2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
YXN5bmMtYXdhaXQtc3ludGF4LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LXN5
bnRheC5qcwpAQCAtMTM3LDEyICsxMzcsMTAgQEAgZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNj
cmlwdCwgbWVzc2FnZSkgewogICAgIHRlc3RTeW50YXhFcnJvcihgdmFyIGFzeW5jRm4gPSBhc3lu
YyAoYXdhaXQpID0+ICd0ZXN0JztgKTsKICAgICB0ZXN0U3ludGF4RXJyb3IoYGFzeW5jIGZ1bmN0
aW9uIGFzeW5jRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkge31gKTsKIAotICAgIC8vIEZJWE1F
OiBNZXRob2REZWZpbml0aW9ucyBkbyBub3QgYXBwbHkgU3RyaWN0Rm9ybWFsUGFyYW1ldGVycyBy
ZXN0cmljdGlvbnMKLSAgICAvLyAgICAgICAgaW4gc2xvcHB5IG1vZGUgKGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MDgpCi0gICAgLy90ZXN0U3ludGF4RXJyb3Io
YHZhciBvdXRlck9iamVjdCA9IHsgYXN5bmMgbWV0aG9kKGEsIGEpIHt9IH1gKTsKLSAgICAvL3Rl
c3RTeW50YXhFcnJvcihgdmFyIG91dGVyT2JqZWN0ID0geyBhc3luYyBbJ21ldGgnICsgJ29kJ10o
YSwgYSkge30gfWApOwotICAgIC8vdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7
IGFzeW5jICdtZXRob2QnKGEsIGEpIHt9IH1gKTsKLSAgICAvL3Rlc3RTeW50YXhFcnJvcihgdmFy
IG91dGVyT2JqZWN0ID0geyBhc3luYyAwKGEsIGEpIHt9IH1gKTsKKyAgICB0ZXN0U3ludGF4RXJy
b3IoYHZhciBvdXRlck9iamVjdCA9IHsgYXN5bmMgbWV0aG9kKGEsIGEpIHt9IH1gKTsKKyAgICB0
ZXN0U3ludGF4RXJyb3IoYHZhciBvdXRlck9iamVjdCA9IHsgYXN5bmMgWydtZXRoJyArICdvZCdd
KGEsIGEpIHt9IH1gKTsKKyAgICB0ZXN0U3ludGF4RXJyb3IoYHZhciBvdXRlck9iamVjdCA9IHsg
YXN5bmMgJ21ldGhvZCcoYSwgYSkge30gfWApOworICAgIHRlc3RTeW50YXhFcnJvcihgdmFyIG91
dGVyT2JqZWN0ID0geyBhc3luYyAwKGEsIGEpIHt9IH1gKTsKIAogICAgIHRlc3RTeW50YXhFcnJv
cihgdmFyIGFzeW5jQXJyb3dGbiA9IGFzeW5jKCkgPT4gYXdhaXQ7YCk7CiAKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi55YW1sIGIvSlNUZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXggZmQ2YWJk
NzU2NDAuLjU0ZTlkNmVlYzdmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIueWFtbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIueWFtbApAQCAtNjY0NDQsNyArNjY0NDQsNyBAQAogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21ldGhvZC1kZWZpbml0aW9u
L2Vhcmx5LWVycm9ycy1vYmplY3QtbWV0aG9kLWJvZHktY29udGFpbnMtc3VwZXItY2FsbC5qcwog
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
OnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVj
dC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUt
cGFyYW1ldGVycy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJTeW50YXhFcnJvciIsIFsi
Li4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIs
IFsiLi4vLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1k
dXBsaWNhdGUtcGFyYW1ldGVycy5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRh
eEVycm9yIiwgWyIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1lcnJvcnMt
b2JqZWN0LW1ldGhvZC1ldmFsLWluLWZvcm1hbC1wYXJhbWV0ZXJzLmpzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGUxOGNm
MTliZmUuLjAyZWQ0NDQ2YzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjIgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICB0ZXN0MjYyOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21ldGhvZC1kZWZpbml0aW9u
L2Vhcmx5LWVycm9ycy1vYmplY3QtbWV0aG9kLWR1cGxpY2F0ZS1wYXJhbWV0ZXJzLmpzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExOTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3BhcnNlci1z
eW50YXgtY2hlY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9wYXJz
ZXItc3ludGF4LWNoZWNrLmpzOgorICAgICAgICBFeHRlbmQgdG8gY292ZXIgbWV0aG9kIGR1cGxp
Y2F0ZSBwYXJhbWV0ZXIgY2FzZXMuCisKIDIwMTctMDQtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZ2VuZXJhdG9ycy95aWVsZC1hcy1sYWJlbC5qcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAppbmRleCA0ZjE3YzkyMmY1
MS4uMDdlM2YxMmZlYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3BhcnNlci1zeW50YXgt
Y2hlY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3BhcnNlci1zeW50YXgtY2hl
Y2stZXhwZWN0ZWQudHh0CkBAIC0xNTE0LDggKzE1MTQsNiBAQCBQQVNTIEludmFsaWQ6ICJsZXQg
eCA9IChbYV0sYSk9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjog
IlN5bgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbGV0IHggPSAoW2FdLGEpPT57IH07
IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBE
dXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3Ry
dWN0dXJpbmcgcGFyYW1ldGVycy4iCiBQQVNTIEludmFsaWQ6ICJsZXQgeCA9IChbYSwgYV0pPT57
IH07Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjog
RHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0
cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbGV0
IHggPSAoW2EsIGFdKT0+eyB9OyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJy
b3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4g
ZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgotUEFTUyBJbnZhbGlkOiAi
bGV0IHggPSAoW2EsIGFdKT0+eyB9OyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVy
cm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGlu
IGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKLVBBU1MgSW52YWxpZDog
ImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKFthLCBhXSk9PnsgfTsgfSIuIFByb2R1Y2VkIHRoZSBm
b2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIg
J2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJz
LiIKIFBBU1MgSW52YWxpZDogImxldCB4ID0gKGEsIC4uLmEpPT57IH07Ii4gUHJvZHVjZWQgdGhl
IGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
Li4uJyIKIFBBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKGEsIC4uLmEpPT57
IH07IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcuLi4nIgogUEFTUyBJbnZhbGlkOiAibGV0IHggPSAoYiwgYywg
Yik9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVy
cm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhbiBhcnJvdyBmdW5j
dGlvbi4iCkBAIC0xNTI0LDYgKzE1MjIsMzAgQEAgUEFTUyBJbnZhbGlkOiAibGV0IHggPSAoYSwg
YiwgYywgZCwge2F9KT0+eyB9OyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGUKIFBB
U1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKGEsIGIsIGMsIGQsIHthfSk9Pnsg
fTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6
IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVz
dHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKIFBBU1MgSW52YWxpZDogImxldCB4ID0gKGIgPSAoYSxh
KT0+YSwgYik9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5
bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBhbiBhcnJv
dyBmdW5jdGlvbi4iCiBQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBsZXQgeCA9IChiID0g
KGEsYSk9PmEsIGIpPT57IH07IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJv
cjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBh
biBhcnJvdyBmdW5jdGlvbi4iCitQQVNTIEludmFsaWQ6ICIoeyBmb28oYSxhKXt9IH0pOyIuIFBy
b2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0
ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDog
ImZ1bmN0aW9uIGYoKSB7ICh7IGZvbyhhLGEpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93
aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBu
b3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICIoeyBmb28oYiwgYywgYil7
fSB9KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9y
OiBEdXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNT
IEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyBmb28oYiwgYywgYil7fSB9KTsgfSIuIFByb2R1
Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBw
YXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogIih7
ICpmb28oYSxhKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAi
U3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGEgbWV0
aG9kLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28oYSxhKXt9IH0pOyB9
Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVw
bGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBJbnZh
bGlkOiAiKHsgKmZvbyhiLCBjLCBiKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3lu
dGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxv
d2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28o
YiwgYywgYil7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAi
U3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0
aG9kLiIKK1BBU1MgSW52YWxpZDogIih7IGFzeW5jIGZvbyhhLGEpe30gfSk7Ii4gUHJvZHVjZWQg
dGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFt
ZXRlciAnYScgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rp
b24gZigpIHsgKHsgYXN5bmMgZm9vKGEsYSl7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dp
bmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5v
dCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogIih7IGFzeW5jIGZvbyhiLCBj
LCBiKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4
RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5vdCBhbGxvd2VkIGluIGEgbWV0aG9kLiIK
K1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGFzeW5jIGZvbyhiLCBjLCBiKXt9IH0p
OyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjog
RHVwbGljYXRlIHBhcmFtZXRlciAnYicgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBW
YWxpZDogICAiKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVu
Y3Rpb24gZigpIHsgKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7IH0iCitQQVNTIFZhbGlkOiAg
ICIoeyBmb286IGZ1bmN0aW9uKGIsIGMsIGIpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rp
b24gZigpIHsgKHsgZm9vOiBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyB9IgorUEFTUyBWYWxpZDog
ICAiKHsgZm9vOiBmdW5jdGlvbiooYSxhKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9u
IGYoKSB7ICh7IGZvbzogZnVuY3Rpb24qKGEsYSl7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAgIih7
IGZvbzogZnVuY3Rpb24qKGIsIGMsIGIpe30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24g
ZigpIHsgKHsgZm9vOiBmdW5jdGlvbiooYiwgYywgYil7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAg
Iih7IGZvbzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0
aW9uIGYoKSB7ICh7IGZvbzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyB9IgorUEFTUyBWYWxp
ZDogICAiKHsgZm9vOiBhc3luYyBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyIKK1BBU1MgVmFsaWQ6
ICAgImZ1bmN0aW9uIGYoKSB7ICh7IGZvbzogYXN5bmMgZnVuY3Rpb24oYiwgYywgYil7fSB9KTsg
fSIKIFBBU1MgSW52YWxpZDogIigoYSxhKT0+YSk7Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBz
eW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKCcuIEV4cGVjdGVk
IGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuIgogUEFTUyBJ
bnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgKChhLGEpPT5hKTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xs
b3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJygnLiBF
eHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0LiIK
IFBBU1MgSW52YWxpZDogImxldCB4ID0gKGEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5qcyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzCmluZGV4IDIwNjEzOTBiNWNhLi4zZWYyYjk1
ZTI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50
YXgtY2hlY2suanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50
YXgtY2hlY2suanMKQEAgLTg2OSwxMSArODY5LDIyIEBAIGludmFsaWQoImxldCB4ID0gKHthLCBi
OnthfX0pPT5hOyIpOwogaW52YWxpZCgibGV0IHggPSAoYSxhKT0+eyBhIH07Iik7CiBpbnZhbGlk
KCJsZXQgeCA9IChbYV0sYSk9PnsgfTsiKTsKIGludmFsaWQoImxldCB4ID0gKFthLCBhXSk9Pnsg
fTsiKTsKLWludmFsaWQoImxldCB4ID0gKFthLCBhXSk9PnsgfTsiKTsKIGludmFsaWQoImxldCB4
ID0gKGEsIC4uLmEpPT57IH07Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChiLCBjLCBiKT0+eyB9OyIp
OwogaW52YWxpZCgibGV0IHggPSAoYSwgYiwgYywgZCwge2F9KT0+eyB9OyIpOwogaW52YWxpZCgi
bGV0IHggPSAoYiA9IChhLGEpPT5hLCBiKT0+eyB9OyIpOworaW52YWxpZCgiKHsgZm9vKGEsYSl7
fSB9KTsiKTsKK2ludmFsaWQoIih7IGZvbyhiLCBjLCBiKXt9IH0pOyIpOworaW52YWxpZCgiKHsg
KmZvbyhhLGEpe30gfSk7Iik7CitpbnZhbGlkKCIoeyAqZm9vKGIsIGMsIGIpe30gfSk7Iik7Citp
bnZhbGlkKCIoeyBhc3luYyBmb28oYSxhKXt9IH0pOyIpOworaW52YWxpZCgiKHsgYXN5bmMgZm9v
KGIsIGMsIGIpe30gfSk7Iik7Cit2YWxpZCgiKHsgZm9vOiBmdW5jdGlvbihhLGEpe30gfSk7Iik7
Cit2YWxpZCgiKHsgZm9vOiBmdW5jdGlvbihiLCBjLCBiKXt9IH0pOyIpOwordmFsaWQoIih7IGZv
bzogZnVuY3Rpb24qKGEsYSl7fSB9KTsiKTsKK3ZhbGlkKCIoeyBmb286IGZ1bmN0aW9uKihiLCBj
LCBiKXt9IH0pOyIpOwordmFsaWQoIih7IGZvbzogYXN5bmMgZnVuY3Rpb24oYSxhKXt9IH0pOyIp
OwordmFsaWQoIih7IGZvbzogYXN5bmMgZnVuY3Rpb24oYiwgYywgYil7fSB9KTsiKTsKIGludmFs
aWQoIigoYSxhKT0+YSk7Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChhKVxuPT5hOyIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCA1ZDg5MzZlOGNmMy4uYWI3ZmJkZTkzZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDE3LTA0LTIyICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9lYXJseS1l
cnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1ldGVycy5qcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNv
ZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1
bmN0aW9uRXhwcmVzc2lvbkNvbW1vbik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0TmV3RnVuY3Rpb24pOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAg
IChKU0M6OlNjb3BlOjpzZXRTb3VyY2VQYXJzZU1vZGUpOgorICAgICAgICAqIHBhcnNlci9QYXJz
ZXJNb2Rlcy5oOgorICAgICAgICAoSlNDOjppc0Z1bmN0aW9uUGFyc2VNb2RlKToKKyAgICAgICAg
KEpTQzo6aXNNZXRob2RQYXJzZU1vZGUpOgorICAgICAgICAoSlNDOjppc0dlbmVyYXRvck9yQXN5
bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUpOgorICAgICAgICAoSlNDOjppc0dlbmVyYXRvclBh
cnNlTW9kZSk6CisgICAgICAgIChKU0M6OmlzR2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZSk6Cisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICBBZGQgYSBuZXcgR2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgcGFy
c2UgbW9kZS4gVGhlIG90aGVyIGZ1bmN0aW9uIHR5cGVzCisgICAgICAgIChhc3luYywgYXJyb3cp
IGFscmVhZHkgaGF2ZSBhIEZ1bmN0aW9uTW9kZSBhbmQgYSBNZXRob2RNb2RlLiBHaXZlCisgICAg
ICAgIGdlbmVyYXRvcnMgb25lIGFzIHdlbGwuIFRoaXMgbGV0cyBpc01ldGhvZFBhcnNlTW9kZSBh
Y3R1YWxseSBiZSBhY2N1cmF0ZS4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcik6CisgICAgICAgIChKU0M6
OlBhcnNlcjxMZXhlclR5cGU+Ojppc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJzKToKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9ybWFsUGFyYW1ldGVycyk6CisgICAgICAg
IChKU0M6OnN0cmluZ0ZvckZ1bmN0aW9uTW9kZSk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUZ1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUNsYXNzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBh
cnNlUHJvcGVydHlNZXRob2QpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAg
QWRkIGEgZHVwbGljYXRlIHBhcmFtZXRlciBmYWlsdXJlIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUg
cGFyYW1ldGVycworICAgICAgICBpbiBtZXRob2Qgc3ludGF4LgorCisyMDE3LTA0LTIyICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2RzdHItYXJyYXktZWxlbS1pbml0
LWZuLW5hbWUtYXJyb3cuanMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MTE2MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGFkMGY0MTc5ZjcwLi41MDA5
N2I0NWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTUzNCw3ICs1MzQsOCBAQCBCeXRlY29kZUdl
bmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9u
Tm9kZSwgVW5saW5rZQogCiAgICAgbV9uZXdUYXJnZXRSZWdpc3RlciA9IGFkZFZhcigpOwogICAg
IHN3aXRjaCAocGFyc2VNb2RlKSB7Ci0gICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRv
cldyYXBwZXJGdW5jdGlvbk1vZGU6IHsKKyAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJh
dG9yV3JhcHBlckZ1bmN0aW9uTW9kZToKKyAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJh
dG9yV3JhcHBlck1ldGhvZE1vZGU6IHsKICAgICAgICAgbV9nZW5lcmF0b3JSZWdpc3RlciA9IGFk
ZFZhcigpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFbWl0IHRvX3RoaXMgb25seSB3aGVuIEdlbmVy
YXRvciB1c2VzIGl0LgpAQCAtMzIyOSw2ICszMjMwLDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdE5ld0Z1bmN0aW9uRXhwcmVzc2lvbkNvbW1vbihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0
aW8KICAgICBPcGNvZGVJRCBvcGNvZGVJRCA9IG9wX25ld19mdW5jX2V4cDsKICAgICBzd2l0Y2gg
KGZ1bmN0aW9uLT5wYXJzZU1vZGUoKSkgewogICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOgorICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JXcmFwcGVyTWV0aG9kTW9kZToKICAgICAgICAgb3Bjb2RlSUQgPSBvcF9uZXdfZ2VuZXJh
dG9yX2Z1bmNfZXhwOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6
QXN5bmNGdW5jdGlvbk1vZGU6CkBAIC0zMjg2LDcgKzMyODgsNyBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdE5ld0RlZmF1bHRDb25zdHJ1Y3RvcihSZWdpc3RlcklEKiBkc3Qs
IENvbnN0cgogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdGdW5jdGlvbihS
ZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBmdW5jdGlvbikKIHsKICAgICB1
bnNpZ25lZCBpbmRleCA9IG1fY29kZUJsb2NrLT5hZGRGdW5jdGlvbkRlY2wobWFrZUZ1bmN0aW9u
KGZ1bmN0aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9uLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJz
ZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpCisgICAgaWYgKGlzR2VuZXJhdG9y
V3JhcHBlclBhcnNlTW9kZShmdW5jdGlvbi0+cGFyc2VNb2RlKCkpKQogICAgICAgICBlbWl0T3Bj
b2RlKG9wX25ld19nZW5lcmF0b3JfZnVuYyk7CiAgICAgZWxzZSBpZiAoZnVuY3Rpb24tPnBhcnNl
TW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNGdW5jdGlvbk1vZGUpCiAgICAgICAgIGVt
aXRPcGNvZGUob3BfbmV3X2FzeW5jX2Z1bmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGMzM2M5YjgyYzE5Li45YjNj
OTQzNzMyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcApAQCAtMzUxMiw3ICszNTEyLDggQEAgdm9pZCBGdW5jdGlvbk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikK
ICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhEaWRFbnRlckNhbGxGcmFtZSwgc3RhcnRMaW5l
KCksIHN0YXJ0U3RhcnRPZmZzZXQoKSwgc3RhcnRMaW5lU3RhcnRPZmZzZXQoKSk7CiAKICAgICBz
d2l0Y2ggKGdlbmVyYXRvci5wYXJzZU1vZGUoKSkgewotICAgIGNhc2UgU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOiB7CisgICAgY2FzZSBTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6CisgICAgY2FzZSBTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlOiB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IHNpbmdsZVN0YXRlbWVudCA9IHRoaXMtPnNpbmdsZVN0YXRlbWVudCgpOwogICAgICAgICBBU1NF
UlQoc2luZ2xlU3RhdGVtZW50LT5pc0V4cHJTdGF0ZW1lbnQoKSk7CiAgICAgICAgIEV4cHJTdGF0
ZW1lbnROb2RlKiBleHByU3RhdGVtZW50ID0gc3RhdGljX2Nhc3Q8RXhwclN0YXRlbWVudE5vZGUq
PihzaW5nbGVTdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CmluZGV4IGE4OTE4YjAxODk2Li40ZDZjMmUzZWQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIFN0cmluZyBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VJbm5lcihjb25zdCBJZGVudGlmaWVyJiBjYWxsZWVOYW1lLCBTb3VyY2VQYXJz
ZU1vCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlQXJyb3dGdW5jdGlvblNpbmds
ZUV4cHJlc3Npb25Cb2R5U291cmNlRWxlbWVudHMoY29udGV4dCk7CiAgICAgICAgIGVsc2UgaWYg
KGlzTW9kdWxlUGFyc2VNb2RlKHBhcnNlTW9kZSkpCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50
cyA9IHBhcnNlTW9kdWxlU291cmNlRWxlbWVudHMoY29udGV4dCwgcGFyc2VNb2RlKTsKLSAgICAg
ICAgZWxzZSBpZiAocGFyc2VNb2RlID09IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBl
ckZ1bmN0aW9uTW9kZSkKKyAgICAgICAgZWxzZSBpZiAoaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VN
b2RlKHBhcnNlTW9kZSkpCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlR2VuZXJh
dG9yRnVuY3Rpb25Tb3VyY2VFbGVtZW50cyhjb250ZXh0LCBjYWxsZWVOYW1lLCBDaGVja0ZvclN0
cmljdE1vZGUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBh
cnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgQ2hlY2tGb3JTdHJpY3RNb2RlKTsKQEAgLTIzOSw3
ICsyMzksNyBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uc3QgSWRl
bnRpZmllciYgY2FsbGVlTmFtZSwgU291cmNlUGFyc2VNbwogICAgIGZvciAoYXV0byYgZW50cnkg
OiBjYXB0dXJlZFZhcmlhYmxlcykKICAgICAgICAgdmFyRGVjbGFyYXRpb25zLm1hcmtWYXJpYWJs
ZUFzQ2FwdHVyZWQoZW50cnkpOwogCi0gICAgaWYgKFNvdXJjZVBhcnNlTW9kZVNldChTb3VyY2VQ
YXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpLmNvbnRhaW5zKHBhcnNlTW9k
ZSkgfHwgaXNBc3luY0Z1bmN0aW9uV3JhcHBlclBhcnNlTW9kZShwYXJzZU1vZGUpKSB7CisgICAg
aWYgKGlzR2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZShwYXJzZU1vZGUpIHx8IGlzQXN5bmNGdW5j
dGlvbldyYXBwZXJQYXJzZU1vZGUocGFyc2VNb2RlKSkgewogICAgICAgICBpZiAoc2NvcGUtPnVz
ZWRWYXJpYWJsZXNDb250YWlucyhtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgp
KSkKICAgICAgICAgICAgIGNvbnRleHQucHJvcGFnYXRlQXJndW1lbnRzVXNlKCk7CiAgICAgfQpA
QCAtMjk4LDcgKzI5OCw4IEBAIGJvb2wgUGFyc2VyPExleGVyVHlwZT46OmlzQXJyb3dGdW5jdGlv
blBhcmFtZXRlcnMoKQogCiAgICAgICAgICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJzQ291bnQgPSAw
OwogICAgICAgICAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJMaXN0ID0gdHJ1ZTsK
LSAgICAgICAgICAgIGlzQXJyb3dGdW5jdGlvbiA9IHBhcnNlRm9ybWFsUGFyYW1ldGVycyhzeW50
YXhDaGVja2VyLCBzeW50YXhDaGVja2VyLmNyZWF0ZUZvcm1hbFBhcmFtZXRlckxpc3QoKSwgaXNB
cnJvd0Z1bmN0aW9uUGFyYW1ldGVyTGlzdCwgcGFyYW1ldGVyc0NvdW50KSAmJiBjb25zdW1lKENM
T1NFUEFSRU4pICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04pOworICAgICAgICAgICAgYm9vbCBpc01l
dGhvZCA9IGZhbHNlOworICAgICAgICAgICAgaXNBcnJvd0Z1bmN0aW9uID0gcGFyc2VGb3JtYWxQ
YXJhbWV0ZXJzKHN5bnRheENoZWNrZXIsIHN5bnRheENoZWNrZXIuY3JlYXRlRm9ybWFsUGFyYW1l
dGVyTGlzdCgpLCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJMaXN0LCBpc01ldGhvZCwgcGFyYW1l
dGVyc0NvdW50KSAmJiBjb25zdW1lKENMT1NFUEFSRU4pICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04p
OwogICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsKICAgICAgICAgICAgIHBvcFNjb3BlKGZh
a2VTY29wZSwgc3ludGF4Q2hlY2tlci5OZWVkc0ZyZWVWYXJpYWJsZUluZm8pOwogICAgICAgICB9
CkBAIC0xODUwLDcgKzE4NTEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wg
UGFyc2VyPExleGVyVHlwZT46Om1heWJlUGFyc2VBc3luY0Z1bmN0aW9uRGVjbAogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBi
b29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZvcm1hbFBhcmFtZXRlcnMoVHJlZUJ1aWxkZXIm
IGNvbnRleHQsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0IGxpc3QsIGJvb2wgaXNBcnJvd0Z1bmN0
aW9uLCB1bnNpZ25lZCYgcGFyYW1ldGVyQ291bnQpCit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVp
bGRlciYgY29udGV4dCwgVHJlZUZvcm1hbFBhcmFtZXRlckxpc3QgbGlzdCwgYm9vbCBpc0Fycm93
RnVuY3Rpb24sIGJvb2wgaXNNZXRob2QsIHVuc2lnbmVkJiBwYXJhbWV0ZXJDb3VudCkKIHsKICNk
ZWZpbmUgZmFpbElmRHVwbGljYXRlSWZWaW9sYXRpb24oKSBcCiAgICAgaWYgKGR1cGxpY2F0ZVBh
cmFtZXRlcikge1wKQEAgLTE4NTgsNiArMTg1OSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVp
bGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVC
CiAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgIkR1
cGxpY2F0ZSBwYXJhbWV0ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3Qg
YWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycyIpO1wKICAg
ICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGlzUmVzdFBhcmFtZXRlciwgIkR1cGxpY2F0ZSBwYXJh
bWV0ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dlZCBpbiBm
dW5jdGlvbiB3aXRoIGEgcmVzdCBwYXJhbWV0ZXIiKTtcCiAgICAgICAgIHNlbWFudGljRmFpbElm
VHJ1ZShpc0Fycm93RnVuY3Rpb24sICJEdXBsaWNhdGUgcGFyYW1ldGVyICciLCBkdXBsaWNhdGVQ
YXJhbWV0ZXItPmltcGwoKSwgIicgbm90IGFsbG93ZWQgaW4gYW4gYXJyb3cgZnVuY3Rpb24iKTtc
CisgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc01ldGhvZCwgIkR1cGxpY2F0ZSBwYXJhbWV0
ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dlZCBpbiBhIG1l
dGhvZCIpO1wKICAgICB9CiAKICAgICBib29sIGhhc0RlZmF1bHRQYXJhbWV0ZXJWYWx1ZXMgPSBm
YWxzZTsKQEAgLTE5NTEsNiArMTk1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzdHJpbmdGb3JG
dW5jdGlvbk1vZGUoU291cmNlUGFyc2VNb2RlIG1vZGUpCiAgICAgY2FzZSBTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvckJvZHlNb2RlOgogICAgICAgICByZXR1cm4gImdlbmVyYXRvciI7CiAgICAg
Y2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6CisgICAg
Y2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlOgogICAgICAg
ICByZXR1cm4gImdlbmVyYXRvciBmdW5jdGlvbiI7CiAgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6
OkFycm93RnVuY3Rpb25Nb2RlOgogICAgICAgICByZXR1cm4gImFycm93IGZ1bmN0aW9uIjsKQEAg
LTE5OTAsNyArMTk5Myw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+IHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlciwgY2xhc3MgRnVuY3Rpb25JbmZvVHlwCiAgICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uSW5mby5wYXJhbWV0ZXJDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb24gPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMo
Y29udGV4dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBmdW5jdGlvbkluZm8ucGFy
YW1ldGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5n
Rm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBpc01ldGhv
ZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBh
cmFtZXRlcnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBpc01ldGhv
ZCwgZnVuY3Rpb25JbmZvLnBhcmFtZXRlckNvdW50KSwgIkNhbm5vdCBwYXJzZSBwYXJhbWV0ZXJz
IGZvciB0aGlzICIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShtb2RlKSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNvbnN1bWVPckZhaWwoQ0xP
U0VQQVJFTiwgIkV4cGVjdGVkIGEgJyknIG9yIGEgJywnIGFmdGVyIGEgcGFyYW1ldGVyIGRlY2xh
cmF0aW9uIik7CkBAIC0yMDM0LDcgKzIwMzgsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJU
eXBlPiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXIsIGNsYXNzIEZ1bmN0aW9uSW5mb1R5cAog
ICAgICAgICAgICAgZnVuY3Rpb25JbmZvLnBhcmFtZXRlckNvdW50ID0gMDsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIGJvb2wgaXNBcnJvd0Z1bmN0aW9uID0gZmFsc2U7Ci0gICAgICAg
ICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMoY29udGV4dCwgcGFyYW1ldGVy
TGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBmdW5jdGlvbkluZm8ucGFyYW1ldGVyQ291bnQpLCAiQ2Fu
bm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1v
ZGUpKTsKKyAgICAgICAgICAgIGJvb2wgaXNNZXRob2QgPSBpc01ldGhvZFBhcnNlTW9kZShtb2Rl
KTsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNlKHBhcnNlRm9ybWFsUGFyYW1ldGVycyhjb250ZXh0
LCBwYXJhbWV0ZXJMaXN0LCBpc0Fycm93RnVuY3Rpb24sIGlzTWV0aG9kLCBmdW5jdGlvbkluZm8u
cGFyYW1ldGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwgc3Ry
aW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKICAgICAgICAgfQogICAgICAgICBjb25zdW1lT3JG
YWlsKENMT1NFUEFSRU4sICJFeHBlY3RlZCBhICcpJyBvciBhICcsJyBhZnRlciBhIHBhcmFtZXRl
ciBkZWNsYXJhdGlvbiIpOwogICAgIH0KQEAgLTIyMzQsNyArMjIzOSw3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbklu
Zm8oVHJlZUJ1aWxkCiAgICAgICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShmdW5j
dGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkRlY2xhcmF0aW9u
IHx8IGlzQXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUobW9kZSksICJDYW5ub3QgZGVjbGFy
ZSBmdW5jdGlvbiBuYW1lZCAnYXdhaXQnICIsIGlzRGlzYWxsb3dlZEF3YWl0RnVuY3Rpb25OYW1l
UmVhc29uKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0FzeW5jRnVuY3Rpb25XcmFwcGVy
UGFyc2VNb2RlKG1vZGUpICYmIG1hdGNoKEFXQUlUKSAmJiBmdW5jdGlvbkRlZmluaXRpb25UeXBl
ID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAg
ICAgIHNlbWFudGljRmFpbCgiQ2Fubm90IGRlY2xhcmUgYXN5bmMgZnVuY3Rpb24gbmFtZWQgJ2F3
YWl0JyIpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT0gU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlICYmIG1hdGNoKFlJRUxEKSAmJiBmdW5jdGlv
bkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKG1vZGUp
ICYmIG1hdGNoKFlJRUxEKSAmJiBmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVm
aW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAgICAgIHNlbWFudGljRmFp
bCgiQ2Fubm90IGRlY2xhcmUgZ2VuZXJhdG9yIGZ1bmN0aW9uIG5hbWVkICd5aWVsZCciKTsKICAg
ICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFuYW1lSXNJbkNvbnRh
aW5pbmdTY29wZSkKQEAgLTI2OTksNyArMjcwNCw3IEBAIHBhcnNlTWV0aG9kOgogICAgICAgICAg
ICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZSgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+
Y29uc3RydWN0b3IsICJDYW5ub3QgZGVjbGFyZSBhbiBhc3luYyBtZXRob2QgbmFtZWQgJ2NvbnN0
cnVjdG9yJyIpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChpc0dlbmVyYXRvcikgewogICAgICAg
ICAgICAgICAgIGlzQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBwYXJzZU1v
ZGUgPSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU7CisgICAg
ICAgICAgICAgICAgcGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVy
TWV0aG9kTW9kZTsKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoKmlkZW50ID09
IG1fdm0tPnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgIkNhbm5vdCBkZWNsYXJlIGEgZ2VuZXJh
dG9yIG5hbWVkICdwcm90b3R5cGUnIik7CiAgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZU
cnVlKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgIkNhbm5vdCBk
ZWNsYXJlIGEgZ2VuZXJhdG9yIG5hbWVkICdjb25zdHJ1Y3RvciciKTsKICAgICAgICAgICAgIH0K
QEAgLTM4MjMsNyArMzgyOCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRoCiAgICAgdW5zaWdu
ZWQgbWV0aG9kU3RhcnQgPSB0b2tlblN0YXJ0KCk7CiAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRy
ZWVCdWlsZGVyPiBtZXRob2RJbmZvOwogICAgIG1ldGhvZEluZm8ubmFtZSA9IG1ldGhvZE5hbWU7
Ci0gICAgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IGlzR2VuZXJhdG9yID8gU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlIDogaXNBc3luY01ldGhvZCA/IFNv
dXJjZVBhcnNlTW9kZTo6QXN5bmNNZXRob2RNb2RlIDogU291cmNlUGFyc2VNb2RlOjpNZXRob2RN
b2RlOworICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBpc0dlbmVyYXRvciA/IFNvdXJj
ZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgOiBpc0FzeW5jTWV0aG9kID8g
U291cmNlUGFyc2VNb2RlOjpBc3luY01ldGhvZE1vZGUgOiBTb3VyY2VQYXJzZU1vZGU6Ok1ldGhv
ZE1vZGU7CiAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0
aW9uTmFtZVJlcXVpcmVtZW50czo6VW5uYW1lZCwgcGFyc2VNb2RlLCBmYWxzZSwgQ29uc3RydWN0
b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgbWV0aG9kU3RhcnQsIG1ldGhvZElu
Zm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBhcnNlIHRoaXMg
bWV0aG9kIik7CiAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlTWV0aG9kRGVmaW5pdGlvbihtZXRo
b2RMb2NhdGlvbiwgbWV0aG9kSW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaAppbmRleCA5NGIzOTAyZTEyZS4uYzM1ZDVhMTJlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaApAQCAtMjc2LDYgKzI3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVy
RnVuY3Rpb25Nb2RlOgorICAgICAgICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3Jh
cHBlck1ldGhvZE1vZGU6CiAgICAgICAgICAgICBzZXRJc0dlbmVyYXRvckZ1bmN0aW9uKCk7CiAg
ICAgICAgICAgICBicmVhazsKIApAQCAtMTU4MSw3ICsxNTgyLDcgQEAgcHJpdmF0ZToKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlUHJvcGVydHlN
ZXRob2QoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGNvbnN0IElkZW50aWZpZXIqIG1ldGhvZE5hbWUs
IGJvb2wgaXNHZW5lcmF0b3IsIGJvb2wgaXNBc3luY01ldGhvZCk7CiAgICAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgcGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxk
ZXImLCBib29sIHN0cmljdCwgUHJvcGVydHlOb2RlOjpUeXBlLCB1bnNpZ25lZCBnZXR0ZXJPclNl
dHRlclN0YXJ0T2Zmc2V0LCBDb25zdHJ1Y3RvcktpbmQsIGJvb2wgaXNDbGFzc1Byb3BlcnR5LCBi
b29sIGlzU3RhdGljTWV0aG9kKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFM
V0FZU19JTkxJTkUgVHJlZUZ1bmN0aW9uQm9keSBwYXJzZUZ1bmN0aW9uQm9keShUcmVlQnVpbGRl
ciYsIFN5bnRheENoZWNrZXImLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCBmdW5j
dGlvbktleXdvcmRTdGFydCwgaW50IGZ1bmN0aW9uTmFtZVN0YXJ0LCBpbnQgcGFyYW1ldGVyc1N0
YXJ0LCBDb25zdHJ1Y3RvcktpbmQsIFN1cGVyQmluZGluZywgRnVuY3Rpb25Cb2R5VHlwZSwgdW5z
aWduZWQsIFNvdXJjZVBhcnNlTW9kZSk7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCdWlsZGVyJiwg
VHJlZUZvcm1hbFBhcmFtZXRlckxpc3QsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uLCB1bnNpZ25lZCYp
OworICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBib29sIHBh
cnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0
LCBib29sIGlzQXJyb3dGdW5jdGlvbiwgYm9vbCBpc01ldGhvZCwgdW5zaWduZWQmKTsKICAgICBl
bnVtIFZhckRlY2xhcmF0aW9uTGlzdENvbnRleHQgeyBGb3JMb29wQ29udGV4dCwgVmFyRGVjbGFy
YXRpb25Db250ZXh0IH07CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhw
cmVzc2lvbiBwYXJzZVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0KFRyZWVCdWlsZGVyJiwgaW50JiBk
ZWNsYXJhdGlvbnMsIFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybiYgbGFzdFBhdHRlcm4sIFRyZWVF
eHByZXNzaW9uJiBsYXN0SW5pdGlhbGl6ZXIsIEpTVGV4dFBvc2l0aW9uJiBpZGVudFN0YXJ0LCBK
U1RleHRQb3NpdGlvbiYgaW5pdFN0YXJ0LCBKU1RleHRQb3NpdGlvbiYgaW5pdEVuZCwgVmFyRGVj
bGFyYXRpb25MaXN0Q29udGV4dCwgRGVjbGFyYXRpb25UeXBlLCBFeHBvcnRUeXBlLCBib29sJiBm
b3JMb29wQ29uc3REb2VzTm90SGF2ZUluaXRpYWxpemVyKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVTb3VyY2VFbGVtZW50cyBwYXJzZUFycm93RnVuY3Rpb25TaW5nbGVF
eHByZXNzaW9uQm9keVNvdXJjZUVsZW1lbnRzKFRyZWVCdWlsZGVyJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5kZXggNTkyOTg0NjkxOGYuLjlhOTZmNWQx
N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCkBAIC00
NiwxOCArNDYsMTkgQEAgZW51bSBjbGFzcyBTb3VyY2VQYXJzZU1vZGUgOiB1aW50MTZfdCB7CiAg
ICAgTm9ybWFsRnVuY3Rpb25Nb2RlICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDAwMDEsCiAg
ICAgR2VuZXJhdG9yQm9keU1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDAwMTAsCiAg
ICAgR2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSAgPSAwYjAwMDAwMDAwMDAwMDAxMDAsCi0g
ICAgR2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMDEwMDAsCi0g
ICAgU2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMTAwMDAsCi0g
ICAgTWV0aG9kTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAxMDAwMDAsCi0g
ICAgQXJyb3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDEwMDAwMDAsCi0g
ICAgQXN5bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAgPSAwYjAwMDAwMDAwMTAwMDAwMDAsCi0g
ICAgQXN5bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAgPSAwYjAwMDAwMDAxMDAwMDAwMDAsCi0g
ICAgQXN5bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDEwMDAwMDAwMDAsCi0g
ICAgQXN5bmNNZXRob2RNb2RlICAgICAgICAgICAgICAgPSAwYjAwMDAwMTAwMDAwMDAwMDAsCi0g
ICAgQXN5bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAgPSAwYjAwMDAxMDAwMDAwMDAwMDAsCi0g
ICAgUHJvZ3JhbU1vZGUgICAgICAgICAgICAgICAgICAgPSAwYjAwMDEwMDAwMDAwMDAwMDAsCi0g
ICAgTW9kdWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAgPSAwYjAwMTAwMDAwMDAwMDAwMDAsCi0g
ICAgTW9kdWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAgPSAwYjAxMDAwMDAwMDAwMDAwMDAsCisg
ICAgR2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgICAgPSAwYjAwMDAwMDAwMDAwMDEwMDAsCisg
ICAgR2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAwMTAwMDAsCisg
ICAgU2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDAxMDAwMDAsCisg
ICAgTWV0aG9kTW9kZSAgICAgICAgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMDEwMDAwMDAsCisg
ICAgQXJyb3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMDAwMTAwMDAwMDAsCisg
ICAgQXN5bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAgPSAwYjAwMDAwMDAxMDAwMDAwMDAsCisg
ICAgQXN5bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAgPSAwYjAwMDAwMDEwMDAwMDAwMDAsCisg
ICAgQXN5bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAgPSAwYjAwMDAwMTAwMDAwMDAwMDAsCisg
ICAgQXN5bmNNZXRob2RNb2RlICAgICAgICAgICAgICAgPSAwYjAwMDAxMDAwMDAwMDAwMDAsCisg
ICAgQXN5bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAgPSAwYjAwMDEwMDAwMDAwMDAwMDAsCisg
ICAgUHJvZ3JhbU1vZGUgICAgICAgICAgICAgICAgICAgPSAwYjAwMTAwMDAwMDAwMDAwMDAsCisg
ICAgTW9kdWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAgPSAwYjAxMDAwMDAwMDAwMDAwMDAsCisg
ICAgTW9kdWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAgPSAwYjEwMDAwMDAwMDAwMDAwMDAsCiB9
OwogCiBjbGFzcyBTb3VyY2VQYXJzZU1vZGVTZXQgeyAKQEAgLTk0LDYgKzk1LDcgQEAgQUxXQVlT
X0lOTElORSBib29sIGlzRnVuY3Rpb25QYXJzZU1vZGUoU291cmNlUGFyc2VNb2RlIHBhcnNlTW9k
ZSkKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpOb3JtYWxGdW5jdGlvbk1vZGUsIAogICAgICAg
ICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvckJvZHlNb2RlLCAKICAgICAgICAgU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLCAKKyAgICAgICAgU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZSwKICAgICAgICAgU291cmNlUGFyc2VN
b2RlOjpHZXR0ZXJNb2RlLCAKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpTZXR0ZXJNb2RlLCAK
ICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlLCAKQEAgLTE0MCw4ICsxNDIsNyBA
QCBBTFdBWVNfSU5MSU5FIGJvb2wgaXNBc3luY0Z1bmN0aW9uQm9keVBhcnNlTW9kZShTb3VyY2VQ
YXJzZU1vZGUgcGFyc2VNb2RlKQogQUxXQVlTX0lOTElORSBib29sIGlzTWV0aG9kUGFyc2VNb2Rl
KFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9k
ZVNldCgKLSAgICAgICAgLy8gRklYTUU6IEdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUgaXMg
bm90IGd1YXJhbnRlZWQgdG8gYmUgYSBtZXRob2QuCi0gICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6
R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSwKKyAgICAgICAgU291cmNlUGFyc2VNb2RlOjpH
ZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZSwKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZXR0
ZXJNb2RlLAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OlNldHRlck1vZGUsCiAgICAgICAgIFNv
dXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZSwKQEAgLTE2MCwxMSArMTYxLDI3IEBAIEFMV0FZU19J
TkxJTkUgYm9vbCBpc0dlbmVyYXRvck9yQXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUoU291
cmNlUGFyc2VNb2RlIHBhCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKICAgICAg
ICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAg
ICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlLAogICAgICAgICBT
b3VyY2VQYXJzZU1vZGU6OkFzeW5jRnVuY3Rpb25Nb2RlLAogICAgICAgICBTb3VyY2VQYXJzZU1v
ZGU6OkFzeW5jQXJyb3dGdW5jdGlvbk1vZGUsCiAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6QXN5
bmNNZXRob2RNb2RlKS5jb250YWlucyhwYXJzZU1vZGUpOwogfQogCitBTFdBWVNfSU5MSU5FIGJv
b2wgaXNHZW5lcmF0b3JQYXJzZU1vZGUoU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKK3sKKyAg
ICByZXR1cm4gU291cmNlUGFyc2VNb2RlU2V0KAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6Okdl
bmVyYXRvckJvZHlNb2RlLAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGUsCisgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBl
ck1ldGhvZE1vZGUpLmNvbnRhaW5zKHBhcnNlTW9kZSk7ICAgIAorfQorCitBTFdBWVNfSU5MSU5F
IGJvb2wgaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1v
ZGUpCit7CisgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKKyAgICAgICAgU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICBTb3VyY2VQYXJz
ZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlKS5jb250YWlucyhwYXJzZU1vZGUpOwor
fQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNBcnJvd0Z1bmN0aW9uUGFyc2VNb2RlKFNvdXJjZVBh
cnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJs
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgK
aW5kZXggY2VlNDEwZGY5MjQuLjdjMWIwODg5ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMTIzLDcgKzEyMyw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzQXJyb3dGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIHBhcnNl
TW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6QXJyb3dGdW5jdGlvbk1vZGU7IH0KICAgICBib29s
IGlzR2V0dGVyKCkgY29uc3QgeyByZXR1cm4gcGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2Rl
OjpHZXR0ZXJNb2RlOyB9CiAgICAgYm9vbCBpc1NldHRlcigpIGNvbnN0IHsgcmV0dXJuIHBhcnNl
TW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6U2V0dGVyTW9kZTsgfQotICAgIGJvb2wgaXNHZW5l
cmF0b3IoKSBjb25zdCB7IHJldHVybiBTb3VyY2VQYXJzZU1vZGVTZXQoU291cmNlUGFyc2VNb2Rl
OjpHZW5lcmF0b3JCb2R5TW9kZSwgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVu
Y3Rpb25Nb2RlKS5jb250YWlucyhwYXJzZU1vZGUoKSk7IH0KKyAgICBib29sIGlzR2VuZXJhdG9y
KCkgY29uc3QgeyByZXR1cm4gaXNHZW5lcmF0b3JQYXJzZU1vZGUocGFyc2VNb2RlKCkpOyB9CiAg
ICAgYm9vbCBpc01ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgpID09IFNvdXJjZVBh
cnNlTW9kZTo6TWV0aG9kTW9kZTsgfQogICAgIGJvb2wgaGFzQ2FsbGVyQW5kQXJndW1lbnRzUHJv
cGVydGllcygpIGNvbnN0CiAgICAgewpAQCAtMTM2LDcgKzEzNiw4IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKICAgICAgICAgICAgIFNvdXJjZVBhcnNlTW9k
ZTo6Tm9ybWFsRnVuY3Rpb25Nb2RlLAogICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5l
cmF0b3JCb2R5TW9kZSwKLSAgICAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3Jh
cHBlckZ1bmN0aW9uTW9kZQorICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JX
cmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0
b3JXcmFwcGVyTWV0aG9kTW9kZQogICAgICAgICApLmNvbnRhaW5zKHBhcnNlTW9kZSgpKSB8fCBp
c0NsYXNzKCk7CiAgICAgfQogICAgIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRU
eXBlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
aW5kZXggNTFkNDE1NGY4NmYuLjQyZjcwOWMwMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgSlNGdW5j
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOCiAgICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHRoaXNPYmplY3Qt
PmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKICAgICAgICAg
aWYgKCFpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90
b3R5cGUgPSBudWxscHRyOwotICAgICAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJs
ZSgpLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5j
dGlvbk1vZGUpIHsKKyAgICAgICAgICAgIGlmIChpc0dlbmVyYXRvcldyYXBwZXJQYXJzZU1vZGUo
dGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPnBhcnNlTW9kZSgpKSkgewogICAgICAgICAgICAg
ICAgIC8vIFVubGlrZSBmdW5jdGlvbiBpbnN0YW5jZXMsIHRoZSBvYmplY3QgdGhhdCBpcyB0aGUg
dmFsdWUgb2YgdGhlIGEgR2VuZXJhdG9yRnVuY3Rpb24ncyBwcm90b3R5cGUKICAgICAgICAgICAg
ICAgICAvLyBwcm9wZXJ0eSBkb2VzIG5vdCBoYXZlIGEgY29uc3RydWN0b3IgcHJvcGVydHkgd2hv
c2UgdmFsdWUgaXMgdGhlIEdlbmVyYXRvckZ1bmN0aW9uIGluc3RhbmNlLgogICAgICAgICAgICAg
ICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWdlbmVyYXRvcmZ1bmN0
aW9uLWluc3RhbmNlcy1wcm90b3R5cGUK
</data>
<flag name="review"
          id="329181"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="329182"
          type_id="3"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308070</attachid>
            <date>2017-04-24 23:11:47 -0700</date>
            <delta_ts>2017-04-24 23:52:08 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-2.patch</filename>
            <type>text/plain</type>
            <size>38466</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
OGQ4ZWM0MWIwNGEuLjM4YmM4ZTJhMDgzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE3LTA0LTI0ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL29iamVjdC9tZXRob2QtZGVmaW5pdGlvbi9l
YXJseS1lcnJvcnMtb2JqZWN0LW1ldGhvZC1kdXBsaWNhdGUtcGFyYW1ldGVycy5qcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMtYXdh
aXQtc3ludGF4LmpzOgorICAgICAgICAqIHRlc3QyNjIueWFtbDoKKworMjAxNy0wNC0yNCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3QyNjI6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9jb21wdXRlZC1wcm9wZXJ0eS1uYW1lcy9jbGFzcy9zdGF0aWMv
Z2V0dGVyLXByb3RvdHlwZS5qcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwODk3CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3
YWl0LXN5bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LXN5bnRheC5qcwppbmRl
eCA1YTdkNGY1ZGFkNS4uNDdjMWY1NzlmODYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2Fz
eW5jLWF3YWl0LXN5bnRheC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1zeW50
YXguanMKQEAgLTEzNywxMiArMTM3LDI1IEBAIGZ1bmN0aW9uIHRlc3RTeW50YXhFcnJvcihzY3Jp
cHQsIG1lc3NhZ2UpIHsKICAgICB0ZXN0U3ludGF4RXJyb3IoYHZhciBhc3luY0ZuID0gYXN5bmMg
KGF3YWl0KSA9PiAndGVzdCc7YCk7CiAgICAgdGVzdFN5bnRheEVycm9yKGBhc3luYyBmdW5jdGlv
biBhc3luY0Z1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9YCk7CiAKLSAgICAvLyBGSVhNRTog
TWV0aG9kRGVmaW5pdGlvbnMgZG8gbm90IGFwcGx5IFN0cmljdEZvcm1hbFBhcmFtZXRlcnMgcmVz
dHJpY3Rpb25zCi0gICAgLy8gICAgICAgIGluIHNsb3BweSBtb2RlIChodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDA4KQotICAgIC8vdGVzdFN5bnRheEVycm9yKGB2
YXIgb3V0ZXJPYmplY3QgPSB7IGFzeW5jIG1ldGhvZChhLCBhKSB7fSB9YCk7Ci0gICAgLy90ZXN0
U3ludGF4RXJyb3IoYHZhciBvdXRlck9iamVjdCA9IHsgYXN5bmMgWydtZXRoJyArICdvZCddKGEs
IGEpIHt9IH1gKTsKLSAgICAvL3Rlc3RTeW50YXhFcnJvcihgdmFyIG91dGVyT2JqZWN0ID0geyBh
c3luYyAnbWV0aG9kJyhhLCBhKSB7fSB9YCk7Ci0gICAgLy90ZXN0U3ludGF4RXJyb3IoYHZhciBv
dXRlck9iamVjdCA9IHsgYXN5bmMgMChhLCBhKSB7fSB9YCk7CisgICAgdGVzdFN5bnRheEVycm9y
KGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFzeW5jIG1ldGhvZChhLCBhKSB7fSB9YCk7CisgICAgdGVz
dFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFzeW5jIFsnbWV0aCcgKyAnb2QnXShh
LCBhKSB7fSB9YCk7CisgICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFz
eW5jICdtZXRob2QnKGEsIGEpIHt9IH1gKTsKKyAgICB0ZXN0U3ludGF4RXJyb3IoYHZhciBvdXRl
ck9iamVjdCA9IHsgYXN5bmMgMChhLCBhKSB7fSB9YCk7CisKKyAgICB0ZXN0U3ludGF4RXJyb3Io
YHZhciBvdXRlck9iamVjdCA9IHsgYXN5bmMgbWV0aG9kKGEsIHthfSkge30gfWApOworICAgIHRl
c3RTeW50YXhFcnJvcihgdmFyIG91dGVyT2JqZWN0ID0geyBhc3luYyBtZXRob2Qoe2F9LCBhKSB7
fSB9YCk7CisgICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFzeW5jIG1l
dGhvZCh7YX0sIHthfSkge30gfWApOworICAgIHRlc3RTeW50YXhFcnJvcihgdmFyIG91dGVyT2Jq
ZWN0ID0geyBhc3luYyBtZXRob2QoYSwgLi4uYSkge30gfWApOworICAgIHRlc3RTeW50YXhFcnJv
cihgdmFyIG91dGVyT2JqZWN0ID0geyBhc3luYyBtZXRob2Qoe2F9LCAuLi5hKSB7fSB9YCk7Cisg
ICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFzeW5jIG1ldGhvZChhLCAu
Li5hKSB7fSB9YCk7CisgICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGFz
eW5jIG1ldGhvZCh7YSwgLi4uYX0pIHt9IH1gKTsKKyAgICB0ZXN0U3ludGF4RXJyb3IoYHZhciBv
dXRlck9iamVjdCA9IHsgZnVuYzogYXN5bmMgZnVuY3Rpb24oYSwge2F9KSB7fSB9YCk7CisgICAg
dGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGZ1bmM6IGFzeW5jIGZ1bmN0aW9u
KHthfSwgYSkge30gfWApOworICAgIHRlc3RTeW50YXhFcnJvcihgdmFyIG91dGVyT2JqZWN0ID0g
eyBmdW5jOiBhc3luYyBmdW5jdGlvbih7YX0sIHthfSkge30gfWApOworICAgIHRlc3RTeW50YXhF
cnJvcihgdmFyIG91dGVyT2JqZWN0ID0geyBmdW5jOiBhc3luYyBmdW5jdGlvbihhLCAuLi5hKSB7
fSB9YCk7CisgICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGZ1bmM6IGFz
eW5jIGZ1bmN0aW9uKHthfSwgLi4uYSkge30gfWApOworICAgIHRlc3RTeW50YXhFcnJvcihgdmFy
IG91dGVyT2JqZWN0ID0geyBmdW5jOiBhc3luYyBmdW5jdGlvbihhLCAuLi5hKSB7fSB9YCk7Cisg
ICAgdGVzdFN5bnRheEVycm9yKGB2YXIgb3V0ZXJPYmplY3QgPSB7IGZ1bmM6IGFzeW5jIGZ1bmN0
aW9uKHthLCAuLi5hfSkge30gfWApOwogCiAgICAgdGVzdFN5bnRheEVycm9yKGB2YXIgYXN5bmNB
cnJvd0ZuID0gYXN5bmMoKSA9PiBhd2FpdDtgKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIueWFtbAppbmRleCBjMTU3OGFkYjUzNC4uMTNlYzlm
ODQ4YzMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi55YW1sCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi55YW1sCkBAIC02NjQ0NCw3ICs2NjQ0NCw3IEBACiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9vYmplY3QvbWV0aG9kLWRlZmluaXRpb24vZWFybHktZXJyb3Jz
LW9iamVjdC1tZXRob2QtYm9keS1jb250YWlucy1zdXBlci1jYWxsLmpzCiAgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiU3ludGF4RXJyb3IiLCBbIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21ldGhvZC1kZWZp
bml0aW9uL2Vhcmx5LWVycm9ycy1vYmplY3QtbWV0aG9kLWR1cGxpY2F0ZS1wYXJhbWV0ZXJzLmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvb2JqZWN0L21l
dGhvZC1kZWZpbml0aW9uL2Vhcmx5LWVycm9ycy1vYmplY3QtbWV0aG9kLWR1cGxpY2F0ZS1wYXJh
bWV0ZXJzLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiU3ludGF4RXJyb3IiLCBbIi4u
Ly4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvb2JqZWN0L21ldGhvZC1kZWZpbml0aW9uL2Vhcmx5LWVycm9ycy1vYmplY3QtbWV0aG9k
LWV2YWwtaW4tZm9ybWFsLXBhcmFtZXRlcnMuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxY2Q1NzcwMjM0ZC4uMWM3ZjY0
NTVlOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0yNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9vYmplY3QvbWV0aG9kLWRlZmluaXRpb24vZWFybHktZXJyb3Jz
LW9iamVjdC1tZXRob2QtZHVwbGljYXRlLXBhcmFtZXRlcnMuanMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICoganMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBl
Y3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2su
anM6CisgICAgICAgIEV4dGVuZCB0byBjb3ZlciBtZXRob2QgZHVwbGljYXRlIHBhcmFtZXRlciBj
YXNlcy4KKwogMjAxNy0wNC0yNCAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFYOiBDcmFzaCBhdCBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjaGFyYWN0ZXJPZmZzZXRG
b3JJbmRleChpbnQsIFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3QgY29uc3QqKSArIDcwMwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAppbmRl
eCA0ZjE3YzkyMmY1MS4uZmU3MTA3Nzg3MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Bh
cnNlci1zeW50YXgtY2hlY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3BhcnNl
ci1zeW50YXgtY2hlY2stZXhwZWN0ZWQudHh0CkBAIC0xNTE0LDggKzE1MTQsNiBAQCBQQVNTIElu
dmFsaWQ6ICJsZXQgeCA9IChbYV0sYSk9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5
bnRheCBlcnJvcjogIlN5bgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbGV0IHggPSAo
W2FdLGEpPT57IH07IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5
bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlv
biB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCiBQQVNTIEludmFsaWQ6ICJsZXQgeCA9
IChbYSwgYV0pPT57IH07Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJT
eW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rp
b24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rp
b24gZigpIHsgbGV0IHggPSAoW2EsIGFdKT0+eyB9OyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2lu
ZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90
IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgotUEFT
UyBJbnZhbGlkOiAibGV0IHggPSAoW2EsIGFdKT0+eyB9OyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dp
bmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5v
dCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKLVBB
U1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0gKFthLCBhXSk9PnsgfTsgfSIuIFBy
b2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0
ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmlu
ZyBwYXJhbWV0ZXJzLiIKIFBBU1MgSW52YWxpZDogImxldCB4ID0gKGEsIC4uLmEpPT57IH07Ii4g
UHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnLi4uJyIKIFBBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGxldCB4ID0g
KGEsIC4uLmEpPT57IH07IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcuLi4nIgogUEFTUyBJbnZhbGlkOiAibGV0
IHggPSAoYiwgYywgYik9PnsgfTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJv
cjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBh
biBhcnJvdyBmdW5jdGlvbi4iCkBAIC0xNTMwLDYgKzE1MjgsNjggQEAgUEFTUyBJbnZhbGlkOiAi
bGV0IHggPSAoYSkKID0+YTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc9PiciCiBQQVNTIEludmFsaWQ6ICJmdW5j
dGlvbiBmKCkgeyBsZXQgeCA9IChhKQogPT5hOyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBz
eW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnPT4nIgorUEFTUyBJ
bnZhbGlkOiAiKHsgZm9vKGEsYSl7fSB9KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRh
eCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dl
ZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyBmb28oYSxh
KXt9IH0pOyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhF
cnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgor
UEFTUyBJbnZhbGlkOiAiKHsgZm9vKGIsIGMsIGIpe30gfSk7Ii4gUHJvZHVjZWQgdGhlIGZvbGxv
d2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYicg
bm90IGFsbG93ZWQgaW4gYSBtZXRob2QuIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsg
KHsgZm9vKGIsIGMsIGIpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBl
cnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBp
biBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICIoeyAqZm9vKGEsYSl7fSB9KTsiLiBQcm9kdWNl
ZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFy
YW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICJmdW5j
dGlvbiBmKCkgeyAoeyAqZm9vKGEsYSl7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcg
c3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBh
bGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgSW52YWxpZDogIih7ICpmb28oYiwgYywgYil7fSB9
KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBE
dXBsaWNhdGUgcGFyYW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIElu
dmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyAqZm9vKGIsIGMsIGIpe30gfSk7IH0iLiBQcm9kdWNl
ZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFy
YW1ldGVyICdiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICIoeyBh
c3luYyBmb28oYSxhKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9y
OiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGEg
bWV0aG9kLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGFzeW5jIGZvbyhhLGEp
e30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVy
cm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQ
QVNTIEludmFsaWQ6ICIoeyBhc3luYyBmb28oYiwgYywgYil7fSB9KTsiLiBQcm9kdWNlZCB0aGUg
Zm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVy
ICdiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZC4iCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBm
KCkgeyAoeyBhc3luYyBmb28oYiwgYywgYil7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dp
bmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2InIG5v
dCBhbGxvd2VkIGluIGEgbWV0aG9kLiIKK1BBU1MgVmFsaWQ6ICAgIih7IGZvbzogZnVuY3Rpb24o
YSxhKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICh7IGZvbzogZnVuY3Rp
b24oYSxhKXt9IH0pOyB9IgorUEFTUyBWYWxpZDogICAiKHsgZm9vOiBmdW5jdGlvbihiLCBjLCBi
KXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICh7IGZvbzogZnVuY3Rpb24o
YiwgYywgYil7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAgIih7IGZvbzogZnVuY3Rpb24qKGEsYSl7
fSB9KTsiCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyAoeyBmb286IGZ1bmN0aW9uKihh
LGEpe30gfSk7IH0iCitQQVNTIFZhbGlkOiAgICIoeyBmb286IGZ1bmN0aW9uKihiLCBjLCBiKXt9
IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICh7IGZvbzogZnVuY3Rpb24qKGIs
IGMsIGIpe30gfSk7IH0iCitQQVNTIFZhbGlkOiAgICIoeyBmb286IGFzeW5jIGZ1bmN0aW9uKGEs
YSl7fSB9KTsiCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyAoeyBmb286IGFzeW5jIGZ1
bmN0aW9uKGEsYSl7fSB9KTsgfSIKK1BBU1MgVmFsaWQ6ICAgIih7IGZvbzogYXN5bmMgZnVuY3Rp
b24oYiwgYywgYil7fSB9KTsiCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyAoeyBmb286
IGFzeW5jIGZ1bmN0aW9uKGIsIGMsIGIpe30gfSk7IH0iCitQQVNTIEludmFsaWQ6ICIoeyBmb28o
e2F9LGEpe30gfSk7Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50
YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24g
d2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24g
ZigpIHsgKHsgZm9vKHthfSxhKXt9IH0pOyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50
YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93
ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgorUEFTUyBJbnZh
bGlkOiAiKHsgZm9vKGEse2F9KXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4
IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2Vk
IGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKK1BBU1MgSW52YWxp
ZDogImZ1bmN0aW9uIGYoKSB7ICh7IGZvbyhhLHthfSl7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBm
b2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIg
J2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJz
LiIKK1BBU1MgSW52YWxpZDogIih7IGZvbyhhLC4uLmEpe30gfSk7Ii4gUHJvZHVjZWQgdGhlIGZv
bGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAn
YScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBhIHJlc3QgcGFyYW1ldGVyLiIKK1BBU1Mg
SW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGZvbyhhLC4uLmEpe30gfSk7IH0iLiBQcm9kdWNl
ZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFy
YW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGEgcmVzdCBwYXJhbWV0ZXIu
IgorUEFTUyBJbnZhbGlkOiAiKHsgZm9vKHthfSwuLi5hKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBm
b2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIg
J2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJz
LiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGZvbyh7YX0sLi4uYSl7fSB9KTsg
fSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1
cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1
Y3R1cmluZyBwYXJhbWV0ZXJzLiIKK1BBU1MgSW52YWxpZDogIih7IGZvbyh7Li4uYX0sLi4uYSl7
fSB9KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9y
OiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRl
c3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAo
eyBmb28oey4uLmF9LC4uLmEpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRh
eCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dl
ZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFs
aWQ6ICIoeyAqZm9vKHthfSxhKXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4
IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2Vk
IGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKK1BBU1MgSW52YWxp
ZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28oe2F9LGEpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUg
Zm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVy
ICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVy
cy4iCitQQVNTIEludmFsaWQ6ICIoeyAqZm9vKGEse2F9KXt9IH0pOyIuIFByb2R1Y2VkIHRoZSBm
b2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIg
J2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJz
LiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7ICpmb28oYSx7YX0pe30gfSk7IH0i
LiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBs
aWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0
dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFsaWQ6ICIoeyAqZm9vKGEsLi4uYSl7fSB9KTsi
LiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBs
aWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGEgcmVzdCBw
YXJhbWV0ZXIuIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgKHsgKmZvbyhhLC4uLmEp
e30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVy
cm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRo
IGEgcmVzdCBwYXJhbWV0ZXIuIgorUEFTUyBJbnZhbGlkOiAiKHsgKmZvbyh7YX0sLi4uYSl7fSB9
KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBE
dXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3Ry
dWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyAq
Zm9vKHthfSwuLi5hKXt9IH0pOyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJy
b3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4g
ZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgorUEFTUyBJbnZhbGlkOiAi
KHsgKmZvbyh7Li4uYX0sLi4uYSl7fSB9KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRh
eCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dl
ZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFs
aWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyAqZm9vKHsuLi5hfSwuLi5hKXt9IH0pOyB9Ii4gUHJvZHVj
ZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBh
cmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBh
cmFtZXRlcnMuIgorUEFTUyBJbnZhbGlkOiAiKHsgYXN5bmMgZm9vKHthfSxhKXt9IH0pOyIuIFBy
b2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0
ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggZGVzdHJ1Y3R1cmlu
ZyBwYXJhbWV0ZXJzLiIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7ICh7IGFzeW5jIGZv
byh7YX0sYSl7fSB9KTsgfSIuIFByb2R1Y2VkIHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAi
U3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJhbWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0
aW9uIHdpdGggZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXJzLiIKK1BBU1MgSW52YWxpZDogIih7IGFz
eW5jIGZvbyhhLHthfSl7fSB9KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJv
cjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBm
dW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFsaWQ6ICJm
dW5jdGlvbiBmKCkgeyAoeyBhc3luYyBmb28oYSx7YX0pe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUg
Zm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVy
ICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVy
cy4iCitQQVNTIEludmFsaWQ6ICIoeyBhc3luYyBmb28oYSwuLi5hKXt9IH0pOyIuIFByb2R1Y2Vk
IHRoZSBmb2xsb3dpbmcgc3ludGF4IGVycm9yOiAiU3ludGF4RXJyb3I6IER1cGxpY2F0ZSBwYXJh
bWV0ZXIgJ2EnIG5vdCBhbGxvd2VkIGluIGZ1bmN0aW9uIHdpdGggYSByZXN0IHBhcmFtZXRlci4i
CitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyBhc3luYyBmb28oYSwuLi5hKXt9IH0p
OyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjog
RHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBhIHJl
c3QgcGFyYW1ldGVyLiIKK1BBU1MgSW52YWxpZDogIih7IGFzeW5jIGZvbyh7YX0sLi4uYSl7fSB9
KTsiLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRheCBlcnJvcjogIlN5bnRheEVycm9yOiBE
dXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3Ry
dWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoeyBh
c3luYyBmb28oe2F9LC4uLmEpe30gfSk7IH0iLiBQcm9kdWNlZCB0aGUgZm9sbG93aW5nIHN5bnRh
eCBlcnJvcjogIlN5bnRheEVycm9yOiBEdXBsaWNhdGUgcGFyYW1ldGVyICdhJyBub3QgYWxsb3dl
ZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0dXJpbmcgcGFyYW1ldGVycy4iCitQQVNTIEludmFs
aWQ6ICIoeyBhc3luYyBmb28oey4uLmF9LC4uLmEpe30gfSk7Ii4gUHJvZHVjZWQgdGhlIGZvbGxv
d2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJvcjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScg
bm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBkZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgor
UEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgKHsgYXN5bmMgZm9vKHsuLi5hfSwuLi5hKXt9
IH0pOyB9Ii4gUHJvZHVjZWQgdGhlIGZvbGxvd2luZyBzeW50YXggZXJyb3I6ICJTeW50YXhFcnJv
cjogRHVwbGljYXRlIHBhcmFtZXRlciAnYScgbm90IGFsbG93ZWQgaW4gZnVuY3Rpb24gd2l0aCBk
ZXN0cnVjdHVyaW5nIHBhcmFtZXRlcnMuIgorUEFTUyBWYWxpZDogICAiKHsgZm9vKGEsIC4uLmIp
e30gfSk7IgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsgKHsgZm9vKGEsIC4uLmIpe30g
fSk7IH0iCitQQVNTIFZhbGlkOiAgICIoeyBmb28oe2F9LCAuLi5iKXt9IH0pOyIKK1BBU1MgVmFs
aWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICh7IGZvbyh7YX0sIC4uLmIpe30gfSk7IH0iCitQQVNTIFZh
bGlkOiAgICIoeyBmb28oe2EsIC4uLmJ9KXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9u
IGYoKSB7ICh7IGZvbyh7YSwgLi4uYn0pe30gfSk7IH0iCitQQVNTIFZhbGlkOiAgICIoeyBmb28o
e2IsIC4uLmF9LCAuLi5jKXt9IH0pOyIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICh7
IGZvbyh7YiwgLi4uYX0sIC4uLmMpe30gfSk7IH0iCiBXZWlyZCB0aGluZ3MgdGhhdCB1c2VkIHRv
IGNyYXNoLgogUEFTUyBJbnZhbGlkOiAib3IgKFtbe2JyZWFrIC8vKGVsc2VpZm8gKGE9MDthPDI7
YSsrKW49CiAgICAgICAgIFtbe2FGWVkgc2dhPQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2suanMgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5qcwppbmRleCAyMDYxMzkwYjVjYS4uYTcxYTE4
ZDY4ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3lu
dGF4LWNoZWNrLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3lu
dGF4LWNoZWNrLmpzCkBAIC04NjksNyArODY5LDYgQEAgaW52YWxpZCgibGV0IHggPSAoe2EsIGI6
e2F9fSk9PmE7Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChhLGEpPT57IGEgfTsiKTsKIGludmFsaWQo
ImxldCB4ID0gKFthXSxhKT0+eyB9OyIpOwogaW52YWxpZCgibGV0IHggPSAoW2EsIGFdKT0+eyB9
OyIpOwotaW52YWxpZCgibGV0IHggPSAoW2EsIGFdKT0+eyB9OyIpOwogaW52YWxpZCgibGV0IHgg
PSAoYSwgLi4uYSk9PnsgfTsiKTsKIGludmFsaWQoImxldCB4ID0gKGIsIGMsIGIpPT57IH07Iik7
CiBpbnZhbGlkKCJsZXQgeCA9IChhLCBiLCBjLCBkLCB7YX0pPT57IH07Iik7CkBAIC04NzcsNiAr
ODc2LDM4IEBAIGludmFsaWQoImxldCB4ID0gKGIgPSAoYSxhKT0+YSwgYik9PnsgfTsiKTsKIGlu
dmFsaWQoIigoYSxhKT0+YSk7Iik7CiBpbnZhbGlkKCJsZXQgeCA9IChhKVxuPT5hOyIpOwogCitp
bnZhbGlkKCIoeyBmb28oYSxhKXt9IH0pOyIpOworaW52YWxpZCgiKHsgZm9vKGIsIGMsIGIpe30g
fSk7Iik7CitpbnZhbGlkKCIoeyAqZm9vKGEsYSl7fSB9KTsiKTsKK2ludmFsaWQoIih7ICpmb28o
YiwgYywgYil7fSB9KTsiKTsKK2ludmFsaWQoIih7IGFzeW5jIGZvbyhhLGEpe30gfSk7Iik7Citp
bnZhbGlkKCIoeyBhc3luYyBmb28oYiwgYywgYil7fSB9KTsiKTsKK3ZhbGlkKCIoeyBmb286IGZ1
bmN0aW9uKGEsYSl7fSB9KTsiKTsKK3ZhbGlkKCIoeyBmb286IGZ1bmN0aW9uKGIsIGMsIGIpe30g
fSk7Iik7Cit2YWxpZCgiKHsgZm9vOiBmdW5jdGlvbiooYSxhKXt9IH0pOyIpOwordmFsaWQoIih7
IGZvbzogZnVuY3Rpb24qKGIsIGMsIGIpe30gfSk7Iik7Cit2YWxpZCgiKHsgZm9vOiBhc3luYyBm
dW5jdGlvbihhLGEpe30gfSk7Iik7Cit2YWxpZCgiKHsgZm9vOiBhc3luYyBmdW5jdGlvbihiLCBj
LCBiKXt9IH0pOyIpOworaW52YWxpZCgiKHsgZm9vKHthfSxhKXt9IH0pOyIpOworaW52YWxpZCgi
KHsgZm9vKGEse2F9KXt9IH0pOyIpOworaW52YWxpZCgiKHsgZm9vKGEsLi4uYSl7fSB9KTsiKTsK
K2ludmFsaWQoIih7IGZvbyh7YX0sLi4uYSl7fSB9KTsiKTsKK2ludmFsaWQoIih7IGZvbyh7Li4u
YX0sLi4uYSl7fSB9KTsiKTsKK2ludmFsaWQoIih7ICpmb28oe2F9LGEpe30gfSk7Iik7CitpbnZh
bGlkKCIoeyAqZm9vKGEse2F9KXt9IH0pOyIpOworaW52YWxpZCgiKHsgKmZvbyhhLC4uLmEpe30g
fSk7Iik7CitpbnZhbGlkKCIoeyAqZm9vKHthfSwuLi5hKXt9IH0pOyIpOworaW52YWxpZCgiKHsg
KmZvbyh7Li4uYX0sLi4uYSl7fSB9KTsiKTsKK2ludmFsaWQoIih7IGFzeW5jIGZvbyh7YX0sYSl7
fSB9KTsiKTsKK2ludmFsaWQoIih7IGFzeW5jIGZvbyhhLHthfSl7fSB9KTsiKTsKK2ludmFsaWQo
Iih7IGFzeW5jIGZvbyhhLC4uLmEpe30gfSk7Iik7CitpbnZhbGlkKCIoeyBhc3luYyBmb28oe2F9
LC4uLmEpe30gfSk7Iik7CitpbnZhbGlkKCIoeyBhc3luYyBmb28oey4uLmF9LC4uLmEpe30gfSk7
Iik7Cit2YWxpZCgiKHsgZm9vKGEsIC4uLmIpe30gfSk7Iik7Cit2YWxpZCgiKHsgZm9vKHthfSwg
Li4uYil7fSB9KTsiKTsKK3ZhbGlkKCIoeyBmb28oe2EsIC4uLmJ9KXt9IH0pOyIpOwordmFsaWQo
Iih7IGZvbyh7YiwgLi4uYX0sIC4uLmMpe30gfSk7Iik7CisKIGRlYnVnKCJXZWlyZCB0aGluZ3Mg
dGhhdCB1c2VkIHRvIGNyYXNoLiIpOwogaW52YWxpZChgb3IgKFtbe2JyZWFrIC8vKGVsc2VpZm8g
KGE9MDthPDI7YSsrKW49CiAgICAgICAgIFtbe2FGWVkgc2dhPQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKaW5kZXggZDZkNTJkZjI2ZmYuLjY2ZjE2ZTUzZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNy0wNC0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCisgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9vYmplY3QvbWV0aG9kLWRlZmluaXRpb24vZWFybHktZXJyb3JzLW9iamVjdC1t
ZXRob2QtZHVwbGljYXRlLXBhcmFtZXRlcnMuanMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0g
QmFyYXRpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdGdW5jdGlvbkV4cHJlc3Npb25D
b21tb24pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1bmN0aW9u
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpT
Qzo6RnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6c2V0
U291cmNlUGFyc2VNb2RlKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyTW9kZXMuaDoKKyAgICAg
ICAgKEpTQzo6aXNGdW5jdGlvblBhcnNlTW9kZSk6CisgICAgICAgIChKU0M6OmlzTWV0aG9kUGFy
c2VNb2RlKToKKyAgICAgICAgKEpTQzo6aXNHZW5lcmF0b3JPckFzeW5jRnVuY3Rpb25XcmFwcGVy
UGFyc2VNb2RlKToKKyAgICAgICAgKEpTQzo6aXNHZW5lcmF0b3JQYXJzZU1vZGUpOgorICAgICAg
ICAoSlNDOjppc0dlbmVyYXRvcldyYXBwZXJQYXJzZU1vZGUpOgorICAgICAgICAqIHJ1bnRpbWUv
RnVuY3Rpb25FeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
QWRkIGEgbmV3IEdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlIHBhcnNlIG1vZGUuIFRoZSBvdGhl
ciBmdW5jdGlvbiB0eXBlcworICAgICAgICAoYXN5bmMsIGFycm93KSBhbHJlYWR5IGhhdmUgYSBG
dW5jdGlvbk1vZGUgYW5kIGEgTWV0aG9kTW9kZS4gR2l2ZQorICAgICAgICBnZW5lcmF0b3JzIG9u
ZSBhcyB3ZWxsLiBUaGlzIGxldHMgaXNNZXRob2RQYXJzZU1vZGUgYWN0dWFsbHkgYmUgYWNjdXJh
dGUuCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlSW5uZXIpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBl
Pjo6aXNBcnJvd0Z1bmN0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUZvcm1hbFBhcmFtZXRlcnMpOgorICAgICAgICAoSlNDOjpzdHJpbmdGb3JG
dW5jdGlvbk1vZGUpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5j
dGlvblBhcmFtZXRlcnMpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VG
dW5jdGlvbkluZm8pOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFz
cyk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5TWV0aG9k
KToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgIEFkZCBhIGR1cGxpY2F0ZSBw
YXJhbWV0ZXIgZmFpbHVyZSBpZiB0aGVyZSBhcmUgZHVwbGljYXRlIHBhcmFtZXRlcnMKKyAgICAg
ICAgaW4gbWV0aG9kIHN5bnRheC4KKwogMjAxNy0wNC0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBNb3ZlIEpTQyB0b29scy9TdGFja1Ry
YWNlIHRvIFdURiBhbmQgdW5pZnkgc3RhY2sgdHJhY2UgZHVtcCBjb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IGFkMGY0MTc5ZjcwLi41MDA5N2I0NWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTUz
NCw3ICs1MzQsOCBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZt
LCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZQogCiAgICAgbV9uZXdUYXJnZXRS
ZWdpc3RlciA9IGFkZFZhcigpOwogICAgIHN3aXRjaCAocGFyc2VNb2RlKSB7Ci0gICAgY2FzZSBT
b3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6IHsKKyAgICBjYXNl
IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZToKKyAgICBjYXNl
IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGU6IHsKICAgICAgICAg
bV9nZW5lcmF0b3JSZWdpc3RlciA9IGFkZFZhcigpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFbWl0
IHRvX3RoaXMgb25seSB3aGVuIEdlbmVyYXRvciB1c2VzIGl0LgpAQCAtMzIyOSw2ICszMjMwLDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1bmN0aW9uRXhwcmVzc2lvbkNvbW1v
bihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW8KICAgICBPcGNvZGVJRCBvcGNvZGVJRCA9IG9wX25l
d19mdW5jX2V4cDsKICAgICBzd2l0Y2ggKGZ1bmN0aW9uLT5wYXJzZU1vZGUoKSkgewogICAgIGNh
c2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOgorICAgIGNh
c2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZToKICAgICAgICAg
b3Bjb2RlSUQgPSBvcF9uZXdfZ2VuZXJhdG9yX2Z1bmNfZXhwOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNGdW5jdGlvbk1vZGU6CkBAIC0zMjg2LDcgKzMy
ODgsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5ld0RlZmF1bHRDb25z
dHJ1Y3RvcihSZWdpc3RlcklEKiBkc3QsIENvbnN0cgogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXROZXdGdW5jdGlvbihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW9uTWV0YWRhdGFO
b2RlKiBmdW5jdGlvbikKIHsKICAgICB1bnNpZ25lZCBpbmRleCA9IG1fY29kZUJsb2NrLT5hZGRG
dW5jdGlvbkRlY2wobWFrZUZ1bmN0aW9uKGZ1bmN0aW9uKSk7Ci0gICAgaWYgKGZ1bmN0aW9uLT5w
YXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1v
ZGUpCisgICAgaWYgKGlzR2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZShmdW5jdGlvbi0+cGFyc2VN
b2RlKCkpKQogICAgICAgICBlbWl0T3Bjb2RlKG9wX25ld19nZW5lcmF0b3JfZnVuYyk7CiAgICAg
ZWxzZSBpZiAoZnVuY3Rpb24tPnBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNG
dW5jdGlvbk1vZGUpCiAgICAgICAgIGVtaXRPcGNvZGUob3BfbmV3X2FzeW5jX2Z1bmMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CmluZGV4IGMzM2M5YjgyYzE5Li45YjNjOTQzNzMyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzUxMiw3ICszNTEy
LDggQEAgdm9pZCBGdW5jdGlvbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKikKICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhEaWRF
bnRlckNhbGxGcmFtZSwgc3RhcnRMaW5lKCksIHN0YXJ0U3RhcnRPZmZzZXQoKSwgc3RhcnRMaW5l
U3RhcnRPZmZzZXQoKSk7CiAKICAgICBzd2l0Y2ggKGdlbmVyYXRvci5wYXJzZU1vZGUoKSkgewot
ICAgIGNhc2UgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOiB7
CisgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGU6
CisgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2RlOiB7
CiAgICAgICAgIFN0YXRlbWVudE5vZGUqIHNpbmdsZVN0YXRlbWVudCA9IHRoaXMtPnNpbmdsZVN0
YXRlbWVudCgpOwogICAgICAgICBBU1NFUlQoc2luZ2xlU3RhdGVtZW50LT5pc0V4cHJTdGF0ZW1l
bnQoKSk7CiAgICAgICAgIEV4cHJTdGF0ZW1lbnROb2RlKiBleHByU3RhdGVtZW50ID0gc3RhdGlj
X2Nhc3Q8RXhwclN0YXRlbWVudE5vZGUqPihzaW5nbGVTdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGE4OTE4YjAxODk2Li40ZDZjMmUzZWQ5MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMjE2LDcgKzIxNiw3
IEBAIFN0cmluZyBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcihjb25zdCBJZGVudGlmaWVy
JiBjYWxsZWVOYW1lLCBTb3VyY2VQYXJzZU1vCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9
IHBhcnNlQXJyb3dGdW5jdGlvblNpbmdsZUV4cHJlc3Npb25Cb2R5U291cmNlRWxlbWVudHMoY29u
dGV4dCk7CiAgICAgICAgIGVsc2UgaWYgKGlzTW9kdWxlUGFyc2VNb2RlKHBhcnNlTW9kZSkpCiAg
ICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlTW9kdWxlU291cmNlRWxlbWVudHMoY29u
dGV4dCwgcGFyc2VNb2RlKTsKLSAgICAgICAgZWxzZSBpZiAocGFyc2VNb2RlID09IFNvdXJjZVBh
cnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSkKKyAgICAgICAgZWxzZSBpZiAo
aXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKHBhcnNlTW9kZSkpCiAgICAgICAgICAgICBzb3Vy
Y2VFbGVtZW50cyA9IHBhcnNlR2VuZXJhdG9yRnVuY3Rpb25Tb3VyY2VFbGVtZW50cyhjb250ZXh0
LCBjYWxsZWVOYW1lLCBDaGVja0ZvclN0cmljdE1vZGUpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBzb3VyY2VFbGVtZW50cyA9IHBhcnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgQ2hlY2tG
b3JTdHJpY3RNb2RlKTsKQEAgLTIzOSw3ICsyMzksNyBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlw
ZT46OnBhcnNlSW5uZXIoY29uc3QgSWRlbnRpZmllciYgY2FsbGVlTmFtZSwgU291cmNlUGFyc2VN
bwogICAgIGZvciAoYXV0byYgZW50cnkgOiBjYXB0dXJlZFZhcmlhYmxlcykKICAgICAgICAgdmFy
RGVjbGFyYXRpb25zLm1hcmtWYXJpYWJsZUFzQ2FwdHVyZWQoZW50cnkpOwogCi0gICAgaWYgKFNv
dXJjZVBhcnNlTW9kZVNldChTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlv
bk1vZGUpLmNvbnRhaW5zKHBhcnNlTW9kZSkgfHwgaXNBc3luY0Z1bmN0aW9uV3JhcHBlclBhcnNl
TW9kZShwYXJzZU1vZGUpKSB7CisgICAgaWYgKGlzR2VuZXJhdG9yV3JhcHBlclBhcnNlTW9kZShw
YXJzZU1vZGUpIHx8IGlzQXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1vZGUocGFyc2VNb2RlKSkg
ewogICAgICAgICBpZiAoc2NvcGUtPnVzZWRWYXJpYWJsZXNDb250YWlucyhtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKSkKICAgICAgICAgICAgIGNvbnRleHQucHJvcGFnYXRl
QXJndW1lbnRzVXNlKCk7CiAgICAgfQpAQCAtMjk4LDcgKzI5OCw4IEBAIGJvb2wgUGFyc2VyPExl
eGVyVHlwZT46OmlzQXJyb3dGdW5jdGlvblBhcmFtZXRlcnMoKQogCiAgICAgICAgICAgICB1bnNp
Z25lZCBwYXJhbWV0ZXJzQ291bnQgPSAwOwogICAgICAgICAgICAgYm9vbCBpc0Fycm93RnVuY3Rp
b25QYXJhbWV0ZXJMaXN0ID0gdHJ1ZTsKLSAgICAgICAgICAgIGlzQXJyb3dGdW5jdGlvbiA9IHBh
cnNlRm9ybWFsUGFyYW1ldGVycyhzeW50YXhDaGVja2VyLCBzeW50YXhDaGVja2VyLmNyZWF0ZUZv
cm1hbFBhcmFtZXRlckxpc3QoKSwgaXNBcnJvd0Z1bmN0aW9uUGFyYW1ldGVyTGlzdCwgcGFyYW1l
dGVyc0NvdW50KSAmJiBjb25zdW1lKENMT1NFUEFSRU4pICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04p
OworICAgICAgICAgICAgYm9vbCBpc01ldGhvZCA9IGZhbHNlOworICAgICAgICAgICAgaXNBcnJv
d0Z1bmN0aW9uID0gcGFyc2VGb3JtYWxQYXJhbWV0ZXJzKHN5bnRheENoZWNrZXIsIHN5bnRheENo
ZWNrZXIuY3JlYXRlRm9ybWFsUGFyYW1ldGVyTGlzdCgpLCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0
ZXJMaXN0LCBpc01ldGhvZCwgcGFyYW1ldGVyc0NvdW50KSAmJiBjb25zdW1lKENMT1NFUEFSRU4p
ICYmIG1hdGNoKEFSUk9XRlVOQ1RJT04pOwogICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsK
ICAgICAgICAgICAgIHBvcFNjb3BlKGZha2VTY29wZSwgc3ludGF4Q2hlY2tlci5OZWVkc0ZyZWVW
YXJpYWJsZUluZm8pOwogICAgICAgICB9CkBAIC0xODUwLDcgKzE4NTEsNyBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46Om1heWJlUGFyc2VBc3lu
Y0Z1bmN0aW9uRGVjbAogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotdGVtcGxh
dGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBib29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZvcm1h
bFBhcmFtZXRlcnMoVHJlZUJ1aWxkZXImIGNvbnRleHQsIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0
IGxpc3QsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uLCB1bnNpZ25lZCYgcGFyYW1ldGVyQ291bnQpCit0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
Rm9ybWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYgY29udGV4dCwgVHJlZUZvcm1hbFBhcmFtZXRl
ckxpc3QgbGlzdCwgYm9vbCBpc0Fycm93RnVuY3Rpb24sIGJvb2wgaXNNZXRob2QsIHVuc2lnbmVk
JiBwYXJhbWV0ZXJDb3VudCkKIHsKICNkZWZpbmUgZmFpbElmRHVwbGljYXRlSWZWaW9sYXRpb24o
KSBcCiAgICAgaWYgKGR1cGxpY2F0ZVBhcmFtZXRlcikge1wKQEAgLTE4NTgsNiArMTg1OSw3IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCCiAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShoYXNE
ZXN0cnVjdHVyaW5nUGF0dGVybiwgIkR1cGxpY2F0ZSBwYXJhbWV0ZXIgJyIsIGR1cGxpY2F0ZVBh
cmFtZXRlci0+aW1wbCgpLCAiJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlc3RydWN0
dXJpbmcgcGFyYW1ldGVycyIpO1wKICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGlzUmVzdFBh
cmFtZXRlciwgIkR1cGxpY2F0ZSBwYXJhbWV0ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1w
bCgpLCAiJyBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGEgcmVzdCBwYXJhbWV0ZXIiKTtc
CiAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc0Fycm93RnVuY3Rpb24sICJEdXBsaWNhdGUg
cGFyYW1ldGVyICciLCBkdXBsaWNhdGVQYXJhbWV0ZXItPmltcGwoKSwgIicgbm90IGFsbG93ZWQg
aW4gYW4gYXJyb3cgZnVuY3Rpb24iKTtcCisgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc01l
dGhvZCwgIkR1cGxpY2F0ZSBwYXJhbWV0ZXIgJyIsIGR1cGxpY2F0ZVBhcmFtZXRlci0+aW1wbCgp
LCAiJyBub3QgYWxsb3dlZCBpbiBhIG1ldGhvZCIpO1wKICAgICB9CiAKICAgICBib29sIGhhc0Rl
ZmF1bHRQYXJhbWV0ZXJWYWx1ZXMgPSBmYWxzZTsKQEAgLTE5NTEsNiArMTk1Myw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBzdHJpbmdGb3JGdW5jdGlvbk1vZGUoU291cmNlUGFyc2VNb2RlIG1vZGUp
CiAgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvckJvZHlNb2RlOgogICAgICAgICBy
ZXR1cm4gImdlbmVyYXRvciI7CiAgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldy
YXBwZXJGdW5jdGlvbk1vZGU6CisgICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldy
YXBwZXJNZXRob2RNb2RlOgogICAgICAgICByZXR1cm4gImdlbmVyYXRvciBmdW5jdGlvbiI7CiAg
ICAgY2FzZSBTb3VyY2VQYXJzZU1vZGU6OkFycm93RnVuY3Rpb25Nb2RlOgogICAgICAgICByZXR1
cm4gImFycm93IGZ1bmN0aW9uIjsKQEAgLTE5OTAsNyArMTk5Myw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBMZXhlclR5cGU+IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlciwgY2xhc3MgRnVuY3Rp
b25JbmZvVHlwCiAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uSW5mby5wYXJhbWV0ZXJDb3Vu
dCA9IDA7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYm9v
bCBpc0Fycm93RnVuY3Rpb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBmYWlsSWZGYWxz
ZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1
bmN0aW9uLCBmdW5jdGlvbkluZm8ucGFyYW1ldGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFt
ZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYm9vbCBpc01ldGhvZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBm
YWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFtZXRlcnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwg
aXNBcnJvd0Z1bmN0aW9uLCBpc01ldGhvZCwgZnVuY3Rpb25JbmZvLnBhcmFtZXRlckNvdW50KSwg
IkNhbm5vdCBwYXJzZSBwYXJhbWV0ZXJzIGZvciB0aGlzICIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9k
ZShtb2RlKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIGNvbnN1bWVPckZhaWwoQ0xPU0VQQVJFTiwgIkV4cGVjdGVkIGEgJyknIG9yIGEgJywn
IGFmdGVyIGEgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIik7CkBAIC0yMDM0LDcgKzIwMzgsOCBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXIs
IGNsYXNzIEZ1bmN0aW9uSW5mb1R5cAogICAgICAgICAgICAgZnVuY3Rpb25JbmZvLnBhcmFtZXRl
ckNvdW50ID0gMDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJvb2wgaXNBcnJvd0Z1
bmN0aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBmYWlsSWZGYWxzZShwYXJzZUZvcm1hbFBhcmFt
ZXRlcnMoY29udGV4dCwgcGFyYW1ldGVyTGlzdCwgaXNBcnJvd0Z1bmN0aW9uLCBmdW5jdGlvbklu
Zm8ucGFyYW1ldGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBhcmFtZXRlcnMgZm9yIHRoaXMgIiwg
c3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKKyAgICAgICAgICAgIGJvb2wgaXNNZXRob2Qg
PSBpc01ldGhvZFBhcnNlTW9kZShtb2RlKTsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNlKHBhcnNl
Rm9ybWFsUGFyYW1ldGVycyhjb250ZXh0LCBwYXJhbWV0ZXJMaXN0LCBpc0Fycm93RnVuY3Rpb24s
IGlzTWV0aG9kLCBmdW5jdGlvbkluZm8ucGFyYW1ldGVyQ291bnQpLCAiQ2Fubm90IHBhcnNlIHBh
cmFtZXRlcnMgZm9yIHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKICAgICAg
ICAgfQogICAgICAgICBjb25zdW1lT3JGYWlsKENMT1NFUEFSRU4sICJFeHBlY3RlZCBhICcpJyBv
ciBhICcsJyBhZnRlciBhIHBhcmFtZXRlciBkZWNsYXJhdGlvbiIpOwogICAgIH0KQEAgLTIyMzQs
NyArMjIzOSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkluZm8oVHJlZUJ1aWxkCiAgICAgICAgICAgICAgICAgICAg
IHNlbWFudGljRmFpbElmVHJ1ZShmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVm
aW5pdGlvblR5cGU6OkRlY2xhcmF0aW9uIHx8IGlzQXN5bmNGdW5jdGlvbldyYXBwZXJQYXJzZU1v
ZGUobW9kZSksICJDYW5ub3QgZGVjbGFyZSBmdW5jdGlvbiBuYW1lZCAnYXdhaXQnICIsIGlzRGlz
YWxsb3dlZEF3YWl0RnVuY3Rpb25OYW1lUmVhc29uKTsKICAgICAgICAgICAgICAgICBlbHNlIGlm
IChpc0FzeW5jRnVuY3Rpb25XcmFwcGVyUGFyc2VNb2RlKG1vZGUpICYmIG1hdGNoKEFXQUlUKSAm
JiBmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJl
c3Npb24pCiAgICAgICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiQ2Fubm90IGRlY2xhcmUg
YXN5bmMgZnVuY3Rpb24gbmFtZWQgJ2F3YWl0JyIpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYg
KG1vZGUgPT0gU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlICYm
IG1hdGNoKFlJRUxEKSAmJiBmdW5jdGlvbkRlZmluaXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5p
dGlvblR5cGU6OkV4cHJlc3Npb24pCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNHZW5lcmF0
b3JXcmFwcGVyUGFyc2VNb2RlKG1vZGUpICYmIG1hdGNoKFlJRUxEKSAmJiBmdW5jdGlvbkRlZmlu
aXRpb25UeXBlID09IEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkV4cHJlc3Npb24pCiAgICAgICAg
ICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiQ2Fubm90IGRlY2xhcmUgZ2VuZXJhdG9yIGZ1bmN0
aW9uIG5hbWVkICd5aWVsZCciKTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAg
ICAgICAgaWYgKCFuYW1lSXNJbkNvbnRhaW5pbmdTY29wZSkKQEAgLTI2OTksNyArMjcwNCw3IEBA
IHBhcnNlTWV0aG9kOgogICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZSgqaWRlbnQg
PT0gbV92bS0+cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsICJDYW5ub3QgZGVjbGFyZSBhbiBh
c3luYyBtZXRob2QgbmFtZWQgJ2NvbnN0cnVjdG9yJyIpOwogICAgICAgICAgICAgfSBlbHNlIGlm
IChpc0dlbmVyYXRvcikgewogICAgICAgICAgICAgICAgIGlzQ29uc3RydWN0b3IgPSBmYWxzZTsK
LSAgICAgICAgICAgICAgICBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldy
YXBwZXJGdW5jdGlvbk1vZGU7CisgICAgICAgICAgICAgICAgcGFyc2VNb2RlID0gU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZTsKICAgICAgICAgICAgICAgICBzZW1h
bnRpY0ZhaWxJZlRydWUoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
IkNhbm5vdCBkZWNsYXJlIGEgZ2VuZXJhdG9yIG5hbWVkICdwcm90b3R5cGUnIik7CiAgICAgICAg
ICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVz
LT5jb25zdHJ1Y3RvciwgIkNhbm5vdCBkZWNsYXJlIGEgZ2VuZXJhdG9yIG5hbWVkICdjb25zdHJ1
Y3RvciciKTsKICAgICAgICAgICAgIH0KQEAgLTM4MjMsNyArMzgyOCw3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
UHJvcGVydHlNZXRoCiAgICAgdW5zaWduZWQgbWV0aG9kU3RhcnQgPSB0b2tlblN0YXJ0KCk7CiAg
ICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBtZXRob2RJbmZvOwogICAgIG1ldGhv
ZEluZm8ubmFtZSA9IG1ldGhvZE5hbWU7Ci0gICAgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9
IGlzR2VuZXJhdG9yID8gU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25N
b2RlIDogaXNBc3luY01ldGhvZCA/IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNNZXRob2RNb2RlIDog
U291cmNlUGFyc2VNb2RlOjpNZXRob2RNb2RlOworICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1v
ZGUgPSBpc0dlbmVyYXRvciA/IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhv
ZE1vZGUgOiBpc0FzeW5jTWV0aG9kID8gU291cmNlUGFyc2VNb2RlOjpBc3luY01ldGhvZE1vZGUg
OiBTb3VyY2VQYXJzZU1vZGU6Ok1ldGhvZE1vZGU7CiAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVu
Y3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTmFtZVJlcXVpcmVtZW50czo6VW5uYW1lZCwgcGFy
c2VNb2RlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5lZWRl
ZCwgbWV0aG9kU3RhcnQsIG1ldGhvZEluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhv
ZCkpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CiAgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlTWV0aG9kRGVmaW5pdGlvbihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5mbyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA5NGIzOTAyZTEyZS4uYzM1ZDVhMTJl
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApAQCAtMjc2LDYgKzI3Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU291cmNlUGFy
c2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOgorICAgICAgICBjYXNlIFNvdXJj
ZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGU6CiAgICAgICAgICAgICBzZXRJ
c0dlbmVyYXRvckZ1bmN0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKIApAQCAtMTU4MSw3ICsx
NTgyLDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVF
eHByZXNzaW9uIHBhcnNlUHJvcGVydHlNZXRob2QoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGNvbnN0
IElkZW50aWZpZXIqIG1ldGhvZE5hbWUsIGJvb2wgaXNHZW5lcmF0b3IsIGJvb2wgaXNBc3luY01l
dGhvZCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgcGFy
c2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCwgUHJvcGVydHlOb2RlOjpU
eXBlLCB1bnNpZ25lZCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBDb25zdHJ1Y3RvcktpbmQs
IGJvb2wgaXNDbGFzc1Byb3BlcnR5LCBib29sIGlzU3RhdGljTWV0aG9kKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJlZUZ1bmN0aW9uQm9keSBwYXJz
ZUZ1bmN0aW9uQm9keShUcmVlQnVpbGRlciYsIFN5bnRheENoZWNrZXImLCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBpbnQsIGludCBmdW5jdGlvbktleXdvcmRTdGFydCwgaW50IGZ1bmN0aW9uTmFt
ZVN0YXJ0LCBpbnQgcGFyYW1ldGVyc1N0YXJ0LCBDb25zdHJ1Y3RvcktpbmQsIFN1cGVyQmluZGlu
ZywgRnVuY3Rpb25Cb2R5VHlwZSwgdW5zaWduZWQsIFNvdXJjZVBhcnNlTW9kZSk7Ci0gICAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VGb3JtYWxQ
YXJhbWV0ZXJzKFRyZWVCdWlsZGVyJiwgVHJlZUZvcm1hbFBhcmFtZXRlckxpc3QsIGJvb2wgaXNB
cnJvd0Z1bmN0aW9uLCB1bnNpZ25lZCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRl
cj4gQUxXQVlTX0lOTElORSBib29sIHBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYs
IFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0LCBib29sIGlzQXJyb3dGdW5jdGlvbiwgYm9vbCBpc01l
dGhvZCwgdW5zaWduZWQmKTsKICAgICBlbnVtIFZhckRlY2xhcmF0aW9uTGlzdENvbnRleHQgeyBG
b3JMb29wQ29udGV4dCwgVmFyRGVjbGFyYXRpb25Db250ZXh0IH07CiAgICAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZVZhcmlhYmxlRGVjbGFyYXRpb25M
aXN0KFRyZWVCdWlsZGVyJiwgaW50JiBkZWNsYXJhdGlvbnMsIFRyZWVEZXN0cnVjdHVyaW5nUGF0
dGVybiYgbGFzdFBhdHRlcm4sIFRyZWVFeHByZXNzaW9uJiBsYXN0SW5pdGlhbGl6ZXIsIEpTVGV4
dFBvc2l0aW9uJiBpZGVudFN0YXJ0LCBKU1RleHRQb3NpdGlvbiYgaW5pdFN0YXJ0LCBKU1RleHRQ
b3NpdGlvbiYgaW5pdEVuZCwgVmFyRGVjbGFyYXRpb25MaXN0Q29udGV4dCwgRGVjbGFyYXRpb25U
eXBlLCBFeHBvcnRUeXBlLCBib29sJiBmb3JMb29wQ29uc3REb2VzTm90SGF2ZUluaXRpYWxpemVy
KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTb3VyY2VFbGVtZW50cyBw
YXJzZUFycm93RnVuY3Rpb25TaW5nbGVFeHByZXNzaW9uQm9keVNvdXJjZUVsZW1lbnRzKFRyZWVC
dWlsZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ck1vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5k
ZXggNTkyOTg0NjkxOGYuLjlhOTZmNWQxN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJNb2Rlcy5oCkBAIC00NiwxOCArNDYsMTkgQEAgZW51bSBjbGFzcyBTb3VyY2VQ
YXJzZU1vZGUgOiB1aW50MTZfdCB7CiAgICAgTm9ybWFsRnVuY3Rpb25Nb2RlICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAwMDAwMDEsCiAgICAgR2VuZXJhdG9yQm9keU1vZGUgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAwMDAwMTAsCiAgICAgR2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSAg
PSAwYjAwMDAwMDAwMDAwMDAxMDAsCi0gICAgR2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAwMDEwMDAsCi0gICAgU2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAwMTAwMDAsCi0gICAgTWV0aG9kTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAxMDAwMDAsCi0gICAgQXJyb3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDEwMDAwMDAsCi0gICAgQXN5bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAg
PSAwYjAwMDAwMDAwMTAwMDAwMDAsCi0gICAgQXN5bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAg
PSAwYjAwMDAwMDAxMDAwMDAwMDAsCi0gICAgQXN5bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAg
PSAwYjAwMDAwMDEwMDAwMDAwMDAsCi0gICAgQXN5bmNNZXRob2RNb2RlICAgICAgICAgICAgICAg
PSAwYjAwMDAwMTAwMDAwMDAwMDAsCi0gICAgQXN5bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAg
PSAwYjAwMDAxMDAwMDAwMDAwMDAsCi0gICAgUHJvZ3JhbU1vZGUgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDEwMDAwMDAwMDAwMDAsCi0gICAgTW9kdWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAg
PSAwYjAwMTAwMDAwMDAwMDAwMDAsCi0gICAgTW9kdWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAg
PSAwYjAxMDAwMDAwMDAwMDAwMDAsCisgICAgR2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUgICAg
PSAwYjAwMDAwMDAwMDAwMDEwMDAsCisgICAgR2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAwMTAwMDAsCisgICAgU2V0dGVyTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDAxMDAwMDAsCisgICAgTWV0aG9kTW9kZSAgICAgICAgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMDEwMDAwMDAsCisgICAgQXJyb3dGdW5jdGlvbk1vZGUgICAgICAgICAgICAg
PSAwYjAwMDAwMDAwMTAwMDAwMDAsCisgICAgQXN5bmNGdW5jdGlvbkJvZHlNb2RlICAgICAgICAg
PSAwYjAwMDAwMDAxMDAwMDAwMDAsCisgICAgQXN5bmNBcnJvd0Z1bmN0aW9uQm9keU1vZGUgICAg
PSAwYjAwMDAwMDEwMDAwMDAwMDAsCisgICAgQXN5bmNGdW5jdGlvbk1vZGUgICAgICAgICAgICAg
PSAwYjAwMDAwMTAwMDAwMDAwMDAsCisgICAgQXN5bmNNZXRob2RNb2RlICAgICAgICAgICAgICAg
PSAwYjAwMDAxMDAwMDAwMDAwMDAsCisgICAgQXN5bmNBcnJvd0Z1bmN0aW9uTW9kZSAgICAgICAg
PSAwYjAwMDEwMDAwMDAwMDAwMDAsCisgICAgUHJvZ3JhbU1vZGUgICAgICAgICAgICAgICAgICAg
PSAwYjAwMTAwMDAwMDAwMDAwMDAsCisgICAgTW9kdWxlQW5hbHl6ZU1vZGUgICAgICAgICAgICAg
PSAwYjAxMDAwMDAwMDAwMDAwMDAsCisgICAgTW9kdWxlRXZhbHVhdGVNb2RlICAgICAgICAgICAg
PSAwYjEwMDAwMDAwMDAwMDAwMDAsCiB9OwogCiBjbGFzcyBTb3VyY2VQYXJzZU1vZGVTZXQgeyAK
QEAgLTk0LDYgKzk1LDcgQEAgQUxXQVlTX0lOTElORSBib29sIGlzRnVuY3Rpb25QYXJzZU1vZGUo
U291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpOb3Jt
YWxGdW5jdGlvbk1vZGUsIAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvckJvZHlN
b2RlLCAKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25N
b2RlLCAKKyAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9k
ZSwKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZXR0ZXJNb2RlLCAKICAgICAgICAgU291cmNl
UGFyc2VNb2RlOjpTZXR0ZXJNb2RlLCAKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpNZXRob2RN
b2RlLCAKQEAgLTE0MCw4ICsxNDIsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgaXNBc3luY0Z1bmN0
aW9uQm9keVBhcnNlTW9kZShTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQogQUxXQVlTX0lOTElO
RSBib29sIGlzTWV0aG9kUGFyc2VNb2RlKFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAg
ICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKLSAgICAgICAgLy8gRklYTUU6IEdlbmVyYXRv
cldyYXBwZXJGdW5jdGlvbk1vZGUgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYSBtZXRob2QuCi0g
ICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZSwKKyAg
ICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZSwKICAgICAg
ICAgU291cmNlUGFyc2VNb2RlOjpHZXR0ZXJNb2RlLAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6
OlNldHRlck1vZGUsCiAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZSwKQEAgLTE2
MCwxMSArMTYxLDI3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc0dlbmVyYXRvck9yQXN5bmNGdW5j
dGlvbldyYXBwZXJQYXJzZU1vZGUoU291cmNlUGFyc2VNb2RlIHBhCiB7CiAgICAgcmV0dXJuIFNv
dXJjZVBhcnNlTW9kZVNldCgKICAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFw
cGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJNZXRob2RNb2RlLAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkFzeW5jRnVuY3Rpb25Nb2Rl
LAogICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkFzeW5jQXJyb3dGdW5jdGlvbk1vZGUsCiAgICAg
ICAgIFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNNZXRob2RNb2RlKS5jb250YWlucyhwYXJzZU1vZGUp
OwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNHZW5lcmF0b3JQYXJzZU1vZGUoU291cmNlUGFy
c2VNb2RlIHBhcnNlTW9kZSkKK3sKKyAgICByZXR1cm4gU291cmNlUGFyc2VNb2RlU2V0KAorICAg
ICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvckJvZHlNb2RlLAorICAgICAgICBTb3VyY2VQ
YXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUsCisgICAgICAgIFNvdXJjZVBh
cnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlck1ldGhvZE1vZGUpLmNvbnRhaW5zKHBhcnNlTW9kZSk7
ICAgIAorfQorCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNHZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2Rl
KFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCit7CisgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9k
ZVNldCgKKyAgICAgICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25N
b2RlLAorICAgICAgICBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBwZXJNZXRob2RNb2Rl
KS5jb250YWlucyhwYXJzZU1vZGUpOworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNBcnJvd0Z1
bmN0aW9uUGFyc2VNb2RlKFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgcmV0dXJu
IFNvdXJjZVBhcnNlTW9kZVNldCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5kZXggY2VlNDEwZGY5MjQuLjdjMWIwODg5ZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFi
bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFi
bGUuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXJyb3dGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6QXJyb3dG
dW5jdGlvbk1vZGU7IH0KICAgICBib29sIGlzR2V0dGVyKCkgY29uc3QgeyByZXR1cm4gcGFyc2VN
b2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpHZXR0ZXJNb2RlOyB9CiAgICAgYm9vbCBpc1NldHRl
cigpIGNvbnN0IHsgcmV0dXJuIHBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6U2V0dGVy
TW9kZTsgfQotICAgIGJvb2wgaXNHZW5lcmF0b3IoKSBjb25zdCB7IHJldHVybiBTb3VyY2VQYXJz
ZU1vZGVTZXQoU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JCb2R5TW9kZSwgU291cmNlUGFyc2VN
b2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlKS5jb250YWlucyhwYXJzZU1vZGUoKSk7
IH0KKyAgICBib29sIGlzR2VuZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gaXNHZW5lcmF0b3JQYXJz
ZU1vZGUocGFyc2VNb2RlKCkpOyB9CiAgICAgYm9vbCBpc01ldGhvZCgpIGNvbnN0IHsgcmV0dXJu
IHBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZTsgfQogICAgIGJvb2wg
aGFzQ2FsbGVyQW5kQXJndW1lbnRzUHJvcGVydGllcygpIGNvbnN0CiAgICAgewpAQCAtMTM2LDcg
KzEzNiw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFNvdXJjZVBhcnNlTW9kZVNldCgKICAg
ICAgICAgICAgIFNvdXJjZVBhcnNlTW9kZTo6Tm9ybWFsRnVuY3Rpb25Nb2RlLAogICAgICAgICAg
ICAgU291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JCb2R5TW9kZSwKLSAgICAgICAgICAgIFNvdXJj
ZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9kZQorICAgICAgICAgICAgU291
cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlLAorICAgICAgICAgICAg
U291cmNlUGFyc2VNb2RlOjpHZW5lcmF0b3JXcmFwcGVyTWV0aG9kTW9kZQogICAgICAgICApLmNv
bnRhaW5zKHBhcnNlTW9kZSgpKSB8fCBpc0NsYXNzKCk7CiAgICAgfQogICAgIERlcml2ZWRDb250
ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3VubGlua2VkRXhl
Y3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNTFkNDE1NGY4NmYuLjQyZjcwOWMwMjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzU4
LDcgKzM1OCw3IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgICAgIFByb3BlcnR5T2Zm
c2V0IG9mZnNldCA9IHRoaXNPYmplY3QtPmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1l
LCBhdHRyaWJ1dGVzKTsKICAgICAgICAgaWYgKCFpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKICAg
ICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBudWxscHRyOwotICAgICAgICAgICAgaWYg
KHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5wYXJzZU1vZGUoKSA9PSBTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpIHsKKyAgICAgICAgICAgIGlmIChpc0dl
bmVyYXRvcldyYXBwZXJQYXJzZU1vZGUodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPnBhcnNl
TW9kZSgpKSkgewogICAgICAgICAgICAgICAgIC8vIFVubGlrZSBmdW5jdGlvbiBpbnN0YW5jZXMs
IHRoZSBvYmplY3QgdGhhdCBpcyB0aGUgdmFsdWUgb2YgdGhlIGEgR2VuZXJhdG9yRnVuY3Rpb24n
cyBwcm90b3R5cGUKICAgICAgICAgICAgICAgICAvLyBwcm9wZXJ0eSBkb2VzIG5vdCBoYXZlIGEg
Y29uc3RydWN0b3IgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgdGhlIEdlbmVyYXRvckZ1bmN0aW9u
IGluc3RhbmNlLgogICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNt
YTI2Mi8jc2VjLWdlbmVyYXRvcmZ1bmN0aW9uLWluc3RhbmNlcy1wcm90b3R5cGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>