<?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>196712</bug_id>
          
          <creation_ts>2019-04-08 15:02:14 -0700</creation_ts>
          <short_desc>Modify how we do SetArgument when we inline varargs calls</short_desc>
          <delta_ts>2019-04-15 19:41:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>196828</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525406</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 15:02:14 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525421</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-04-08 15:24:19 -0700</bug_when>
    <thetext>wait, GetStack has children?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525422</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-04-08 15:25:32 -0700</bug_when>
    <thetext>Also... this smells like a safeToExecute situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525446</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 16:15:59 -0700</bug_when>
    <thetext>        for (unsigned i = data-&gt;limit - 1; i--;)
=&gt;
        for (unsigned i = data-&gt;limit; i--;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525447</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 16:16:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/49605012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525451</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 16:21:08 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt;         for (unsigned i = data-&gt;limit - 1; i--;)
&gt; =&gt;
&gt;         for (unsigned i = data-&gt;limit; i--;)

Interestingly this isn&apos;t the fix. But it also looks wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525536</commentid>
    <comment_count>6</comment_count>
      <attachid>367017</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 19:38:25 -0700</bug_when>
    <thetext>Created attachment 367017
WIP

Currently fails a bunch of tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525563</commentid>
    <comment_count>7</comment_count>
      <attachid>367028</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 22:20:07 -0700</bug_when>
    <thetext>Created attachment 367028
WIP

test on EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525582</commentid>
    <comment_count>8</comment_count>
      <attachid>367028</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-09 00:43:33 -0700</bug_when>
    <thetext>Comment on attachment 367028
WIP

Attachment 367028 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/11815225

New failing tests:
stress/tailCallForwardArguments.js.dfg-eager-no-cjit-validate
stress/tailCallForwardArguments.js.ftl-eager
stress/tailCallForwardArguments.js.ftl-eager-no-cjit-b3o1
v8-v6/v8-raytrace.js.ftl-eager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525587</commentid>
    <comment_count>9</comment_count>
      <attachid>367034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-09 01:24:20 -0700</bug_when>
    <thetext>Created attachment 367034
WIP

See if this works on EWS. I&apos;m thinking perhaps we really want to keep these SetArgument nodes and just mark the ones from mandatoryMinimum to limit to not be lowered to GetStack in SSA conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525588</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-09 01:26:45 -0700</bug_when>
    <thetext>Attachment 367034 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:1861:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:412:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4347:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4349:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4358:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4360:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1870:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1872:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 8 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526524</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-11 16:15:33 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt;         for (unsigned i = data-&gt;limit - 1; i--;)
&gt; =&gt;
&gt;         for (unsigned i = data-&gt;limit; i--;)

FWIW, this isn&apos;t an issue. We&apos;re doing the right thing here.

The bug is actually in clobberize, we claim to write an extra stack slot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526525</commentid>
    <comment_count>12</comment_count>
      <attachid>367260</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-11 16:17:04 -0700</bug_when>
    <thetext>Created attachment 367260
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527448</commentid>
    <comment_count>13</comment_count>
      <attachid>367260</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-04-15 15:04:10 -0700</bug_when>
    <thetext>Comment on attachment 367260
patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        However, we used to always to emit SetArgumentDefinitely up to &quot;limit - 1&quot; for

Awkward wording.  How about &quot;However, we used to always emit ...&quot;

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        all are arguments, even when some arguments aren&apos;t guaranteed to be in a valid

Delete *are*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527556</commentid>
    <comment_count>14</comment_count>
      <attachid>367484</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-15 18:11:53 -0700</bug_when>
    <thetext>Created attachment 367484
patch for landing

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527586</commentid>
    <comment_count>15</comment_count>
      <attachid>367484</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-15 19:41:44 -0700</bug_when>
    <thetext>Comment on attachment 367484
patch for landing

Clearing flags on attachment: 367484

Committed r244324: &lt;https://trac.webkit.org/changeset/244324&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527587</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-15 19:41:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367017</attachid>
            <date>2019-04-08 19:38:25 -0700</date>
            <delta_ts>2019-04-08 22:20:07 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>2583</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDI0NDAzOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcxLDcgKzM3MSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgfQogICAgICAgICBMb2FkVmFyYXJnc0RhdGEqIGRhdGEgPSBub2Rl
LT5sb2FkVmFyYXJnc0RhdGEoKTsKICAgICAgICAgbV9zdGF0ZS5vcGVyYW5kKGRhdGEtPmNvdW50
KS5zZXROb25DZWxsVHlwZShTcGVjSW50MzJPbmx5KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gZGF0YS0+bGltaXQgLSAxOyBpLS07KQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkYXRh
LT5saW1pdDsgaS0tOykKICAgICAgICAgICAgIG1fc3RhdGUub3BlcmFuZChkYXRhLT5zdGFydC5v
ZmZzZXQoKSArIGkpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShy
ZXZpc2lvbiAyNDQwMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ2LDggKzU0NiwxMCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNXaXRo
Rml4dXAuc2l6ZSgpOwogICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJl
Q2FsbCkKICAgICAgICAgICAgICAgICBhZGRGbHVzaERpcmVjdChpbmxpbmVDYWxsRnJhbWUsIHJl
bWFwT3BlcmFuZChpbmxpbmVDYWxsRnJhbWUsIFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90
OjpjYWxsZWUpKSk7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5pc1ZhcmFyZ3Mo
KSkKKyAgICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzVmFyYXJncygpKSB7CiAgICAg
ICAgICAgICAgICAgYWRkRmx1c2hEaXJlY3QoaW5saW5lQ2FsbEZyYW1lLCByZW1hcE9wZXJhbmQo
aW5saW5lQ2FsbEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRD
b3VudCkpKTsKKyAgICAgICAgICAgICAgICBudW1Bcmd1bWVudHMgPSBpbmxpbmVDYWxsRnJhbWUt
PmJhc2VsaW5lQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gbV9ncmFwaC5iYXNlbGluZUNv
ZGVCbG9ja0ZvcihpbmxpbmVDYWxsRnJhbWUpLT5udW1QYXJhbWV0ZXJzKCk7CiAKQEAgLTE4NjQs
OCArMTg2Niw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVZhcmFyZ3NJbmxpbmkKICAg
ICAgICAgbV9jdXJyZW50QmxvY2stPnZhcmlhYmxlc0F0VGFpbC5zZXRPcGVyYW5kKGNvdW50VmFy
aWFibGUtPmxvY2FsKCksIHNldEFyZ3VtZW50Q291bnQpOwogICAgICAgICAKICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudFN0YXJ0KSwgZ2V0KHRoaXNBcmd1bWVudCksIEltbWVk
aWF0ZU5ha2VkU2V0KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IDE7IGFyZ3Vt
ZW50IDwgbWF4TnVtQXJndW1lbnRzOyArK2FyZ3VtZW50KSB7Ci0gICAgICAgICAgICBWYXJpYWJs
ZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbmV3VmFyaWFibGVBY2Nlc3NEYXRhKFZpcnR1YWxSZWdp
c3RlcihyZW1hcHBlZEFyZ3VtZW50U3RhcnQgKyBhcmd1bWVudCkpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGFyZ3VtZW50ID0gMDsgYXJndW1lbnQgPCBtYW5kYXRvcnlNaW5pbXVtOyArK2FyZ3Vt
ZW50KSB7CisgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbmV3VmFy
aWFibGVBY2Nlc3NEYXRhKFZpcnR1YWxSZWdpc3RlcihyZW1hcHBlZEFyZ3VtZW50U3RhcnQgKyBh
cmd1bWVudCArIDEpKTsKICAgICAgICAgICAgIHZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVyVW5i
b3godHJ1ZSk7IC8vIFdlIGN1cnJlbnRseSBoYXZlIG5vd2hlcmUgdG8gcHV0IHRoZSB0eXBlIGNo
ZWNrIG9uIHRoZSBMb2FkVmFyYXJncy4gTG9hZFZhcmFyZ3MgaXMgZWZmZWN0ZnVsLCBzbyBhZnRl
ciBpdCBmaW5pc2hlcywgd2UgY2Fubm90IGV4aXQuCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IC8vIEZvciBhIHdoaWxlIGl0IGhhZCBiZWVuIG15IGludGVudGlvbiB0byBkbyB0aGluZ3MgbGlr
ZSB0aGlzIGluc2lkZSB0aGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367028</attachid>
            <date>2019-04-08 22:20:07 -0700</date>
            <delta_ts>2019-04-09 01:24:20 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>3871</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDI0NDA2NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcxLDcgKzM3MSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgfQogICAgICAgICBMb2FkVmFyYXJnc0RhdGEqIGRhdGEgPSBub2Rl
LT5sb2FkVmFyYXJnc0RhdGEoKTsKICAgICAgICAgbV9zdGF0ZS5vcGVyYW5kKGRhdGEtPmNvdW50
KS5zZXROb25DZWxsVHlwZShTcGVjSW50MzJPbmx5KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gZGF0YS0+bGltaXQgLSAxOyBpLS07KQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkYXRh
LT5saW1pdDsgaS0tOykKICAgICAgICAgICAgIG1fc3RhdGUub3BlcmFuZChkYXRhLT5zdGFydC5v
ZmZzZXQoKSArIGkpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShy
ZXZpc2lvbiAyNDQwNjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ2LDggKzU0NiwxMCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNXaXRo
Rml4dXAuc2l6ZSgpOwogICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJl
Q2FsbCkKICAgICAgICAgICAgICAgICBhZGRGbHVzaERpcmVjdChpbmxpbmVDYWxsRnJhbWUsIHJl
bWFwT3BlcmFuZChpbmxpbmVDYWxsRnJhbWUsIFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90
OjpjYWxsZWUpKSk7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5pc1ZhcmFyZ3Mo
KSkKKyAgICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzVmFyYXJncygpKSB7CiAgICAg
ICAgICAgICAgICAgYWRkRmx1c2hEaXJlY3QoaW5saW5lQ2FsbEZyYW1lLCByZW1hcE9wZXJhbmQo
aW5saW5lQ2FsbEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRD
b3VudCkpKTsKKyAgICAgICAgICAgICAgICBudW1Bcmd1bWVudHMgPSBpbmxpbmVDYWxsRnJhbWUt
PmJhc2VsaW5lQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gbV9ncmFwaC5iYXNlbGluZUNv
ZGVCbG9ja0ZvcihpbmxpbmVDYWxsRnJhbWUpLT5udW1QYXJhbWV0ZXJzKCk7CiAKQEAgLTE4NjQs
OCArMTg2Niw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVZhcmFyZ3NJbmxpbmkKICAg
ICAgICAgbV9jdXJyZW50QmxvY2stPnZhcmlhYmxlc0F0VGFpbC5zZXRPcGVyYW5kKGNvdW50VmFy
aWFibGUtPmxvY2FsKCksIHNldEFyZ3VtZW50Q291bnQpOwogICAgICAgICAKICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudFN0YXJ0KSwgZ2V0KHRoaXNBcmd1bWVudCksIEltbWVk
aWF0ZU5ha2VkU2V0KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IDE7IGFyZ3Vt
ZW50IDwgbWF4TnVtQXJndW1lbnRzOyArK2FyZ3VtZW50KSB7Ci0gICAgICAgICAgICBWYXJpYWJs
ZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbmV3VmFyaWFibGVBY2Nlc3NEYXRhKFZpcnR1YWxSZWdp
c3RlcihyZW1hcHBlZEFyZ3VtZW50U3RhcnQgKyBhcmd1bWVudCkpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGFyZ3VtZW50ID0gMDsgYXJndW1lbnQgPCBtYW5kYXRvcnlNaW5pbXVtOyArK2FyZ3Vt
ZW50KSB7CisgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbmV3VmFy
aWFibGVBY2Nlc3NEYXRhKFZpcnR1YWxSZWdpc3RlcihyZW1hcHBlZEFyZ3VtZW50U3RhcnQgKyBh
cmd1bWVudCArIDEpKTsKICAgICAgICAgICAgIHZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVyVW5i
b3godHJ1ZSk7IC8vIFdlIGN1cnJlbnRseSBoYXZlIG5vd2hlcmUgdG8gcHV0IHRoZSB0eXBlIGNo
ZWNrIG9uIHRoZSBMb2FkVmFyYXJncy4gTG9hZFZhcmFyZ3MgaXMgZWZmZWN0ZnVsLCBzbyBhZnRl
ciBpdCBmaW5pc2hlcywgd2UgY2Fubm90IGV4aXQuCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IC8vIEZvciBhIHdoaWxlIGl0IGhhZCBiZWVuIG15IGludGVudGlvbiB0byBkbyB0aGluZ3MgbGlr
ZSB0aGlzIGluc2lkZSB0aGUKQEAgLTcwMzEsNyArNzAzMyw3IEBAIEJ5dGVDb2RlUGFyc2VyOjpJ
bmxpbmVTdGFja0VudHJ5OjpJbmxpbmUKICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUtPmRpcmVj
dENhbGxlciA9IGJ5dGVDb2RlUGFyc2VyLT5jdXJyZW50Q29kZU9yaWdpbigpOwogICAgICAgICBt
X2lubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzV2l0aEZpeHVwLnJlc2l6ZVRvRml0KGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzV2l0aEZpeHVwKTsgLy8gU2V0IHRoZSBudW1iZXIgb2YgYXJndW1l
bnRzIGluY2x1ZGluZyB0aGlzLCBidXQgZG9uJ3QgY29uZmlndXJlIHRoZSB2YWx1ZSByZWNvdmVy
aWVzLCB5ZXQuCiAgICAgICAgIG1faW5saW5lQ2FsbEZyYW1lLT5raW5kID0ga2luZDsKLSAgICAg
ICAgCisKICAgICAgICAgbV9pZGVudGlmaWVyUmVtYXAucmVzaXplKGNvZGVCbG9jay0+bnVtYmVy
T2ZJZGVudGlmaWVycygpKTsKICAgICAgICAgbV9zd2l0Y2hSZW1hcC5yZXNpemUoY29kZUJsb2Nr
LT5udW1iZXJPZlN3aXRjaEp1bXBUYWJsZXMoKSk7CiAKQEAgLTcwNzAsNiArNzA3MiwxNCBAQCBC
eXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAgICAgYnl0ZUNvZGVQYXJz
ZXItPm1faW5saW5lQ2FsbEZyYW1lVG9Bcmd1bWVudFBvc2l0aW9ucy5hZGQobV9pbmxpbmVDYWxs
RnJhbWUsIG1fYXJndW1lbnRQb3NpdGlvbnMpOwogICAgIAogICAgIGJ5dGVDb2RlUGFyc2VyLT5t
X2lubGluZVN0YWNrVG9wID0gdGhpczsKKworICAgIGlmIChtX2lubGluZUNhbGxGcmFtZSAmJiBt
X2lubGluZUNhbGxGcmFtZS0+aXNWYXJhcmdzKCkpIHsKKyAgICAgICAgZm9yIChpbnQgYXJndW1l
bnQgPSBtX2lubGluZUNhbGxGcmFtZS0+YmFzZWxpbmVDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMo
KTsgYXJndW1lbnQgPCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1dpdGhGaXh1cDsgKythcmd1
bWVudCkgeworICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IGJ5dGVD
b2RlUGFyc2VyLT5uZXdWYXJpYWJsZUFjY2Vzc0RhdGEocmVtYXBPcGVyYW5kKHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KSkpOworICAgICAgICAgICAgdmFyaWFibGUtPnByZWRp
Y3QoU3BlY0J5dGVjb2RlVG9wKTsKKyAgICAgICAgICAgIG1fYXJndW1lbnRQb3NpdGlvbnNbYXJn
dW1lbnRdLT5hZGRWYXJpYWJsZSh2YXJpYWJsZSk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIEJ5
dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5Ojp+SW5saW5lU3RhY2tFbnRyeSgpCg==
</data>
<flag name="commit-queue"
          id="383376"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367034</attachid>
            <date>2019-04-09 01:24:20 -0700</date>
            <delta_ts>2019-04-11 16:17:04 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>8789</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvc3RyZXNzL3RhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy90YWlsQ2FsbEZvcndhcmRBcmd1bWVudHMuanMJKHJldmlz
aW9uIDI0NDA2NykKKysrIEpTVGVzdHMvc3RyZXNzL3RhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw3IEBAIGZvciAobGV0IGkgPSAwOyBpIDwg
MTAwMDAwOyBpKyspIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGkpOwogfQogCi1wdXRGdW5j
VG9Qcml2YXRlTmFtZShmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSk7CitwdXRGdW5j
VG9Qcml2YXRlTmFtZShmdW5jdGlvbiBoZWxsbygpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSk7CiB2
YXIgZm9vNiA9IGNyZWF0ZVRhaWxDYWxsRm9yd2FyZGluZ0Z1bmNXaXRoKGJvZHlUZXh0LCAieyB0
aGlzVmFsdWU6IHRoaXMsIG90aGVyVmFsdWU6ICdoZWxsbyd9ICIpOwogZnVuY3Rpb24gYmF6Nigp
IHsKICAgICAidXNlIHN0cmljdCIKQEAgLTE1NSw3ICsxNTUsNyBAQCBmdW5jdGlvbiBhcnJheUVx
KGEsIGIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7CiAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIGlmIChhW2ldICE9PSBiW2ldKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGk9
JHtpfSBhW2ldPSR7YVtpXX0gYltpXT0ke2JbaV19YCk7CiAgICAgfQogfQogbGV0IGFyZ3MgPSBb
ImEiLCB7fSwgW10sIFN5bWJvbCgpLCAxLCAxLjIzNCwgdW5kZWZpbmVkLCBudWxsXTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDI0NDA2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcxLDcgKzM3MSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHkKICAgICAgICAgfQogICAgICAgICBMb2FkVmFyYXJnc0RhdGEqIGRhdGEgPSBub2RlLT5sb2Fk
VmFyYXJnc0RhdGEoKTsKICAgICAgICAgbV9zdGF0ZS5vcGVyYW5kKGRhdGEtPmNvdW50KS5zZXRO
b25DZWxsVHlwZShTcGVjSW50MzJPbmx5KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gZGF0
YS0+bGltaXQgLSAxOyBpLS07KQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkYXRhLT5saW1p
dDsgaS0tOykKICAgICAgICAgICAgIG1fc3RhdGUub3BlcmFuZChkYXRhLT5zdGFydC5vZmZzZXQo
KSArIGkpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAyNDQwNjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ2LDggKzU0NiwxMCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgbnVtQXJndW1lbnRzID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNXaXRoRml4dXAu
c2l6ZSgpOwogICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkK
ICAgICAgICAgICAgICAgICBhZGRGbHVzaERpcmVjdChpbmxpbmVDYWxsRnJhbWUsIHJlbWFwT3Bl
cmFuZChpbmxpbmVDYWxsRnJhbWUsIFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpKSk7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5pc1ZhcmFyZ3MoKSkKKyAg
ICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzVmFyYXJncygpKSB7CiAgICAgICAgICAg
ICAgICAgYWRkRmx1c2hEaXJlY3QoaW5saW5lQ2FsbEZyYW1lLCByZW1hcE9wZXJhbmQoaW5saW5l
Q2FsbEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCkp
KTsKKyAgICAgICAgICAgICAgICBudW1Bcmd1bWVudHMgPSBpbmxpbmVDYWxsRnJhbWUtPmJhc2Vs
aW5lQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgbnVtQXJndW1lbnRzID0gbV9ncmFwaC5iYXNlbGluZUNvZGVCbG9j
a0ZvcihpbmxpbmVDYWxsRnJhbWUpLT5udW1QYXJhbWV0ZXJzKCk7CiAKQEAgLTE4NjQsOCArMTg2
NiwxMCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVWYXJhcmdzSW5saW5pCiAgICAgICAg
IG1fY3VycmVudEJsb2NrLT52YXJpYWJsZXNBdFRhaWwuc2V0T3BlcmFuZChjb3VudFZhcmlhYmxl
LT5sb2NhbCgpLCBzZXRBcmd1bWVudENvdW50KTsKICAgICAgICAgCiAgICAgICAgIHNldChWaXJ0
dWFsUmVnaXN0ZXIoYXJndW1lbnRTdGFydCksIGdldCh0aGlzQXJndW1lbnQpLCBJbW1lZGlhdGVO
YWtlZFNldCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgYXJndW1lbnQgPSAxOyBhcmd1bWVudCA8
IG1heE51bUFyZ3VtZW50czsgKythcmd1bWVudCkgewotICAgICAgICAgICAgVmFyaWFibGVBY2Nl
c3NEYXRhKiB2YXJpYWJsZSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShWaXJ0dWFsUmVnaXN0ZXIo
cmVtYXBwZWRBcmd1bWVudFN0YXJ0ICsgYXJndW1lbnQpKTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgbWFuZGF0b3J5TWluaW11bTsgKythcmd1bWVudCkg
eworICAgICAgICAvL2ZvciAodW5zaWduZWQgYXJndW1lbnQgPSAxOyBhcmd1bWVudCA8IG1heE51
bUFyZ3VtZW50czsgKythcmd1bWVudCkgeworICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRh
KiB2YXJpYWJsZSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShWaXJ0dWFsUmVnaXN0ZXIocmVtYXBw
ZWRBcmd1bWVudFN0YXJ0ICsgYXJndW1lbnQgKyAxKSk7CisgICAgICAgICAgICAvL1ZhcmlhYmxl
QWNjZXNzRGF0YSogdmFyaWFibGUgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEoVmlydHVhbFJlZ2lz
dGVyKHJlbWFwcGVkQXJndW1lbnRTdGFydCArIGFyZ3VtZW50KSk7CiAgICAgICAgICAgICB2YXJp
YWJsZS0+bWVyZ2VTaG91bGROZXZlclVuYm94KHRydWUpOyAvLyBXZSBjdXJyZW50bHkgaGF2ZSBu
b3doZXJlIHRvIHB1dCB0aGUgdHlwZSBjaGVjayBvbiB0aGUgTG9hZFZhcmFyZ3MuIExvYWRWYXJh
cmdzIGlzIGVmZmVjdGZ1bCwgc28gYWZ0ZXIgaXQgZmluaXNoZXMsIHdlIGNhbm5vdCBleGl0Lgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBGb3IgYSB3aGlsZSBpdCBoYWQgYmVlbiBteSBp
bnRlbnRpb24gdG8gZG8gdGhpbmdzIGxpa2UgdGhpcyBpbnNpZGUgdGhlCkBAIC03MDMxLDcgKzcw
MzUsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAgICAgICAg
IG1faW5saW5lQ2FsbEZyYW1lLT5kaXJlY3RDYWxsZXIgPSBieXRlQ29kZVBhcnNlci0+Y3VycmVu
dENvZGVPcmlnaW4oKTsKICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1dpdGhG
aXh1cC5yZXNpemVUb0ZpdChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1dpdGhGaXh1cCk7IC8v
IFNldCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBpbmNsdWRpbmcgdGhpcywgYnV0IGRvbid0IGNv
bmZpZ3VyZSB0aGUgdmFsdWUgcmVjb3ZlcmllcywgeWV0LgogICAgICAgICBtX2lubGluZUNhbGxG
cmFtZS0+a2luZCA9IGtpbmQ7Ci0gICAgICAgIAorCiAgICAgICAgIG1faWRlbnRpZmllclJlbWFw
LnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mSWRlbnRpZmllcnMoKSk7CiAgICAgICAgIG1fc3dp
dGNoUmVtYXAucmVzaXplKGNvZGVCbG9jay0+bnVtYmVyT2ZTd2l0Y2hKdW1wVGFibGVzKCkpOwog
CkBAIC03MDcwLDYgKzcwNzQsMTUgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6
OklubGluZQogICAgIGJ5dGVDb2RlUGFyc2VyLT5tX2lubGluZUNhbGxGcmFtZVRvQXJndW1lbnRQ
b3NpdGlvbnMuYWRkKG1faW5saW5lQ2FsbEZyYW1lLCBtX2FyZ3VtZW50UG9zaXRpb25zKTsKICAg
ICAKICAgICBieXRlQ29kZVBhcnNlci0+bV9pbmxpbmVTdGFja1RvcCA9IHRoaXM7CisKKyAgICBp
ZiAobV9pbmxpbmVDYWxsRnJhbWUgJiYgbV9pbmxpbmVDYWxsRnJhbWUtPmlzVmFyYXJncygpKSB7
CisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gbV9pbmxpbmVDYWxsRnJhbWUtPmJhc2VsaW5l
Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7IGFyZ3VtZW50IDwgYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXNXaXRoRml4dXA7ICsrYXJndW1lbnQpIHsKKyAgICAgICAgICAgIFZhcmlhYmxlQWNj
ZXNzRGF0YSogdmFyaWFibGUgPSBieXRlQ29kZVBhcnNlci0+bmV3VmFyaWFibGVBY2Nlc3NEYXRh
KHJlbWFwT3BlcmFuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpKTsKKyAg
ICAgICAgICAgIHZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVyVW5ib3godHJ1ZSk7CisgICAgICAg
ICAgICB2YXJpYWJsZS0+cHJlZGljdChTcGVjQnl0ZWNvZGVUb3ApOworICAgICAgICAgICAgbV9h
cmd1bWVudFBvc2l0aW9uc1thcmd1bWVudF0tPmFkZFZhcmlhYmxlKHZhcmlhYmxlKTsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6On5Jbmxp
bmVTdGFja0VudHJ5KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAko
cmV2aXNpb24gMjQ0MDY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDcgKzQwOSw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0
aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1TU0FMb3dlcmlu
Zyk7CiAgICAgICAgIAogICAgICAgICAvLyBJZGVhbGx5LCB0aGVzZSB3b3VsZCBiZSBydW4gdG8g
Zml4cG9pbnQgd2l0aCB0aGUgb2JqZWN0IGFsbG9jYXRpb24gc2lua2luZyBwaGFzZS4KLSAgICAg
ICAgUlVOX1BIQVNFKHBlcmZvcm1Bcmd1bWVudHNFbGltaW5hdGlvbik7CisgICAgICAgIC8vUlVO
X1BIQVNFKHBlcmZvcm1Bcmd1bWVudHNFbGltaW5hdGlvbik7CiAgICAgICAgIGlmIChPcHRpb25z
Ojp1c2VQdXRTdGFja1NpbmtpbmcoKSkKICAgICAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtUHV0
U3RhY2tTaW5raW5nKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDI0NDA2NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzNDMsMTEgKzQzNDMsMjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogCiAgICAgY2FzZSBMb2FkVmFyYXJnczogewogICAgICAgICBjb21waWxl
TG9hZFZhcmFyZ3Mobm9kZSk7CisgICAgICAgIExvYWRWYXJhcmdzRGF0YSogZGF0YSA9IG5vZGUt
PmxvYWRWYXJhcmdzRGF0YSgpOworICAgICAgICAvL2RhdGFMb2dMbigiTm9kZTogQCIsIG5vZGUt
PmluZGV4KCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBkYXRhLT5saW1pdDsgaS0tOykg
eworICAgICAgICAgICAgLy9kYXRhTG9nTG4oVmlydHVhbFJlZ2lzdGVyKGRhdGEtPnN0YXJ0Lm9m
ZnNldCgpICsgaSksICIgPSAiLCBWaXJ0dWFsUmVnaXN0ZXIoZGF0YS0+bWFjaGluZVN0YXJ0Lm9m
ZnNldCgpICsgaSkpOworICAgICAgICAgICAgcmVjb3JkU2V0TG9jYWwoVmlydHVhbFJlZ2lzdGVy
KGRhdGEtPnN0YXJ0Lm9mZnNldCgpICsgaSksIFZpcnR1YWxSZWdpc3RlcihkYXRhLT5tYWNoaW5l
U3RhcnQub2Zmc2V0KCkgKyBpKSwgRGF0YUZvcm1hdEpTKTsKKyAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6IHsKICAgICAg
ICAgY29tcGlsZUZvcndhcmRWYXJhcmdzKG5vZGUpOworICAgICAgICBMb2FkVmFyYXJnc0RhdGEq
IGRhdGEgPSBub2RlLT5sb2FkVmFyYXJnc0RhdGEoKTsKKyAgICAgICAgLy9kYXRhTG9nTG4oIk5v
ZGU6IEAiLCBub2RlLT5pbmRleCgpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gZGF0YS0+
bGltaXQ7IGktLTspIHsKKyAgICAgICAgICAgIC8vZGF0YUxvZ0xuKFZpcnR1YWxSZWdpc3Rlcihk
YXRhLT5zdGFydC5vZmZzZXQoKSArIGkpLCAiID0gIiwgVmlydHVhbFJlZ2lzdGVyKGRhdGEtPm1h
Y2hpbmVTdGFydC5vZmZzZXQoKSArIGkpKTsKKyAgICAgICAgICAgIHJlY29yZFNldExvY2FsKFZp
cnR1YWxSZWdpc3RlcihkYXRhLT5zdGFydC5vZmZzZXQoKSArIGkpLCBWaXJ0dWFsUmVnaXN0ZXIo
ZGF0YS0+bWFjaGluZVN0YXJ0Lm9mZnNldCgpICsgaSksIERhdGFGb3JtYXRKUyk7CisgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyNDQwNjcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTgzOSw2ICsxODM5LDM0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDdXJyZW50QmxvY2sKICAgICAgICAgICAgICAgICBmb3JtYXQpKTsKICAgICB9CiAKKyAg
ICB7CisgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gbV9ibG9jay0+
YXQoMCktPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUoKTsKKyAgICAgICAgd2hpbGUg
KGlubGluZUNhbGxGcmFtZSkgeworICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNW
YXJhcmdzKCkpIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpID0gMDsKKyAgICAgICAgICAg
ICAgICBmb3IgKDsgaSA8IG1fZ3JhcGgubV9pbmxpbmVWYXJpYWJsZURhdGEuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgICAgICAgICAgSW5saW5lVmFyaWFibGVEYXRhIGRhdGEgPSBtX2dyYXBo
Lm1faW5saW5lVmFyaWFibGVEYXRhW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5p
bmxpbmVDYWxsRnJhbWUgPT0gaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgSW5saW5lVmFy
aWFibGVEYXRhIGRhdGEgPSBtX2dyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhW2ldOworCisgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IDE7IGFyZ3VtZW50IDwgaW5saW5l
Q2FsbEZyYW1lLT5hcmd1bWVudHNXaXRoRml4dXAuc2l6ZSgpOyArK2FyZ3VtZW50KSB7CisgICAg
ICAgICAgICAgICAgICAgIEFyZ3VtZW50UG9zaXRpb24mIHBvc2l0aW9uID0gbV9ncmFwaC5tX2Fy
Z3VtZW50UG9zaXRpb25zW2RhdGEuYXJndW1lbnRQb3NpdGlvblN0YXJ0ICsgYXJndW1lbnRdOwor
ICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gcG9zaXRp
b24uc29tZVZhcmlhYmxlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdmFyaWFibGUpIC8v
IE9PUFM6IEFTU0VSVD8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9nKFZhcmlhYmxlRXZlbnQ6OnNldExv
Y2FsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLT5sb2NhbCgpLCB2YXJp
YWJsZS0+bWFjaGluZUxvY2FsKCksIERhdGFGb3JtYXRKUykpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lID0gaW5saW5lQ2Fs
bEZyYW1lLT5kaXJlY3RDYWxsZXIuaW5saW5lQ2FsbEZyYW1lKCk7CisgICAgICAgIH0KKyAgICB9
CisKKwogICAgIG1fb3JpZ2luID0gTm9kZU9yaWdpbigpOwogICAgIAogICAgIGZvciAobV9pbmRl
eEluQmxvY2sgPSAwOyBtX2luZGV4SW5CbG9jayA8IG1fYmxvY2stPnNpemUoKTsgKyttX2luZGV4
SW5CbG9jaykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367260</attachid>
            <date>2019-04-11 16:17:04 -0700</date>
            <delta_ts>2019-04-15 18:11:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>31999</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQxOTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE5LTA0LTExICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIE1vZGlmeSBob3cgd2UgZG8gU2V0QXJndW1lbnQgd2hlbiB3ZSBpbmxp
bmUgdmFyYXJncyBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NzEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYwNTAxMj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9nZXQt
c3RhY2std3JvbmctdHlwZS13aGVuLWlubGluZS12YXJhcmdzLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisKIDIwMTktMDQtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWJzdHJhY3RWYWx1ZTo6dmFsaWRhdGVPU1JFbnRyeVZhbHVlIGlzIHdyb25nIGZv
ciBJbnQ1MiBjb25zdGFudHMKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2dldC1zdGFjay13cm9uZy10
eXBlLXdoZW4taW5saW5lLXZhcmFyZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3Mv
Z2V0LXN0YWNrLXdyb25nLXR5cGUtd2hlbi1pbmxpbmUtdmFyYXJncy5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy9nZXQtc3RhY2std3JvbmctdHlwZS13aGVuLWlubGluZS12YXJh
cmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKy8vQCBydW5EZWZhdWx0KCIt
LXVzZUNvbmN1cnJlbnRKSVQ9MCIsICItLXZhbGlkYXRlQWJzdHJhY3RJbnRlcnByZXRlclN0YXRl
PTEiLCAiLS12YWxpZGF0ZUFic3RyYWN0SW50ZXJwcmV0ZXJTdGF0ZVByb2JhYmlsaXR5PTEuMCIs
ICItLWZvcmNlRWFnZXJDb21waWxhdGlvbj0xIikKKworZnVuY3Rpb24gZm9vKGEsIHYpIHsKKyAg
ICBhWzBdID0gdiArIDIwMDAwMDAwMDA7Cit9Citub0lubGluZShmb28pOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgZm9vKHt9LCAxMDAwMDAwMDAwKTsKK30KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg2IEBACisy
MDE5LTA0LTExICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGlmeSBob3cgd2UgZG8gU2V0QXJndW1lbnQgd2hlbiB3ZSBpbmxpbmUgdmFyYXJncyBjYWxscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzEyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYwNTAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdlIGlubGluZSB2YXJhcmdzIGNhbGxzLCB3
ZSBndWFyYW50ZWUgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0CisgICAgICAgIGdv
IG9uIHRoZSBzdGFjayBhcmUgc29tZXdoZXJlIGJldHdlZW4gdGhlICJtYW5kYXRvcnlNaW5pbXVt
IiBhbmQgdGhlICJsaW1pdCAtIDEiLgorICAgICAgICBIb3dldmVyLCB3ZSBjYW4ndCBzdGF0aWNh
bGx5IGd1YXJhbnRlZSB0aGF0IHRoZSBhcmd1bWVudHMgYmV0d2VlbiB0aGVzZSB0d28KKyAgICAg
ICAgcmFuZ2VzIHdhcyBmaWxsZWQgb3V0IGJ5IExvYWQvRm9yd2FyZFZhcmFyZ3MuIFRoaXMgaXMg
YmVjYXVzZSBpbiB0aGUgZ2VuZXJhbAorICAgICAgICBjYXNlIHdlIGRvbid0IGtub3cgdGhlIGFy
Z3VtZW50IGNvdW50IHN0YXRpY2FsbHkuCisgICAgICAgIAorICAgICAgICBIb3dldmVyLCB3ZSB1
c2VkIHRvIGFsd2F5cyB0byBlbWl0IFNldEFyZ3VtZW50RGVmaW5pdGVseSB1cCB0byAibGltaXQg
LSAxIiBmb3IKKyAgICAgICAgYWxsIGFyZSBhcmd1bWVudHMsIGV2ZW4gd2hlbiBzb21lIGFyZ3Vt
ZW50cyBhcmVuJ3QgZ3VhcmFudGVlZCB0byBiZSBpbiBhIHZhbGlkCisgICAgICAgIHN0YXRlLiBF
bWl0dGluZyB0aGVzZSBTZXRBcmd1bWVudERlZmluaXRlbHkgd2VyZSBoZWxwZnVsIGJlY2F1c2Ug
dGhleSBsZXQgdXMKKyAgICAgICAgaGFuZGxlIHZhcmlhYmxlIGxpdmVuZXNzIGFuZCBPU1IgZXhp
dCBtZXRhZGF0YS4gSG93ZXZlciwgd2hlbiB3ZSBjb252ZXJ0ZWQKKyAgICAgICAgdG8gU1NBLCB3
ZSBlbmRlZCB1cCBlbWl0dGluZyBhIEdldFN0YWNrIGZvciBlYWNoIHN1Y2ggU2V0QXJndW1lbnRE
ZWZpbml0ZWx5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyB3cm9uZywgYXMgd2UgY2FuJ3Qg
Z3VhcmFudGVlIHN1Y2ggU2V0QXJndW1lbnREZWZpbml0ZWx5IG5vZGVzIGFyZQorICAgICAgICBh
Y3R1YWxseSBsb29raW5nIGF0IGEgcmFuZ2Ugb2YgdGhlIHN0YWNrIHRoYXQgYXJlIGd1YXJhbnRl
ZWQgdG8gYmUgaW5pdGlhbGl6ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5l
dyBmb3JtIG9mIFNldEFyZ3VtZW50IG5vZGU6IFNldEFyZ3VtZW50TWF5YmUuIEluIHRlcm1zCisg
ICAgICAgIG9mIE9TUiBleGl0IG1ldGFkYXRhIGFuZCB2YXJpYWJsZSBsaXZlbmVzcyB0cmFja2lu
ZywgaXQgYmVoYXZlcyBsaWtlIFNldEFyZ3VtZW50RGVmaW5pdGVseS4KKyAgICAgICAgCisgICAg
ICAgIEhvd2V2ZXIsIGl0IGRpZmZlcnMgaW4gYSBjb3VwbGUga2V5IHdheXM6CisgICAgICAgIDEu
IEluIFRocmVhZGVkQ1BTLCBHZXRMb2NhbChAU2V0QXJndW1lbnRNYXliZSkgaXMgaW52YWxpZCBJ
UiwgYXMgdGhpcyBpbXBsaWVzCisgICAgICAgIHlvdSBtaWdodCBiZSBsb2FkaW5nIHVuaW5pdGlh
bGl6ZWQgc3RhY2suIChUaGlzIHNhbWUgcnVsZSBhcHBsaWVzIHdoZW4geW91IGRvCisgICAgICAg
IHRoZSBmdWxsIGRhdGEgZmxvdyByZWFjaGFiaWxpdHkgYW5hbHlzaXMgb3ZlciBDUFMgUGhpcy4p
IElmIHNvbWVvbmUgbG9naWNhbGx5CisgICAgICAgIHdhbnRlZCB0byBlbWl0IGNvZGUgbGlrZSB0
aGlzLCB0aGUgY29ycmVjdCBub2RlIHRvIGVtaXQgd291bGQgYmUgR2V0QXJndW1lbnQsCisgICAg
ICAgIG5vdCBHZXRMb2NhbC4gRm9yIHNpbWlsYXIgcmVhc29ucywgUGhhbnRvbUxvY2FsKEBTZXRB
cmd1bWVudE1heWJlKSBpcyBhbHNvCisgICAgICAgIGludmFsaWQgSVIuCisgICAgICAgIDIuIFRv
IHRyYWNrIGxpdmVuZXNzLCBGbHVzaChAU2V0QXJndW1lbnRNYXliZSkgaXMgdmFsaWQsIGFuZCBp
cyB0aGUgbWFpbiB1c2VyCisgICAgICAgIG9mIFNldEFyZ3VtZW50TWF5YmUuCisgICAgICAgIDMu
IEluIFNTQSBjb252ZXJzaW9uLCB3ZSBkb24ndCBsb3dlciBTZXRBcmd1bWVudE1heWJlIHRvIEdl
dFN0YWNrLCBhcyB0aGVyZQorICAgICAgICBzaG91bGQgYmUgbm8gZGF0YSBmbG93IHVzZXIgb2Yg
U2V0QXJndW1lbnRNYXliZS4KKyAgICAgICAgCisgICAgICAgIFNldEFyZ3VtZW50RGVmaW5pdGVs
eSBndWFyYW50ZWVzIHRoYXQgdGhlIHN0YWNrIHNsb3QgaXMgaW5pdGlhbGl6ZWQuCisgICAgICAg
IFNldEFyZ3VtZW50TWF5YmUgbWFrZXMgbm8gc3VjaCBndWFyYW50ZWUuCisKKyAgICAgICAgKiBk
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgor
ICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVZhcmFyZ3NJbmxpbmluZyk6CisgICAgICAgICogZGZnL0RG
R0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFk
aW5nUGhhc2U6OmZyZWVVbm5lY2Vzc2FyeU5vZGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpDUFNS
ZXRocmVhZGluZ1BoYXNlOjpjYW5vbmljYWxpemVHZXRMb2NhbEZvcik6CisgICAgICAgIChKU0M6
OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFzZTo6Y2Fub25pY2FsaXplRmx1c2hPclBoYW50b21Mb2Nh
bEZvcik6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFzZTo6Y2Fub25pY2Fs
aXplTG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFz
ZTo6cHJvcGFnYXRlUGhpcyk6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFz
ZTo6Y29tcHV0ZUlzRmx1c2hlZCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29tbW9uLmg6
CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dD
KToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3RyYWN0
U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjplbmRC
YXNpY0Jsb2NrKToKKyAgICAgICAgKiBkZmcvREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRp
b25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6TGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2
YXRpb25QaGFzZTo6aGFuZGxlQmxvY2tGb3JUcnlDYXRjaCk6CisgICAgICAgICogZGZnL0RGR01h
eGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpNYXhpbWFs
Rmx1c2hJbnNlcnRpb25QaGFzZTo6dHJlYXRSZWd1bGFyQmxvY2spOgorICAgICAgICAoSlNDOjpE
Rkc6Ok1heGltYWxGbHVzaEluc2VydGlvblBoYXNlOjp0cmVhdFJvb3RCbG9jayk6CisgICAgICAg
ICogZGZnL0RGR01heUV4aXQuY3BwOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjpoYXNWYXJpYWJsZUFjY2Vzc0RhdGEpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6Cisg
ICAgICAgICogZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U1NBQ29udmVyc2lvblBoYXNlOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVj
dXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisKIDIwMTktMDQtMTEgIFNhYW0gYmFy
YXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFNldEFyZ3VtZW50IHRv
IFNldEFyZ3VtZW50RGVmaW5pdGVseQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkocmV2aXNpb24g
MjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjIsNyArMzIyLDggQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIH0KICAgICAgICAgCiAgICAgY2Fz
ZSBTZXRBcmd1bWVudERlZmluaXRlbHk6Ci0gICAgICAgIC8vIEFzc2VydCB0aGF0IHRoZSBzdGF0
ZSBvZiBhcmd1bWVudHMgaGFzIGJlZW4gc2V0LiBTZXRBcmd1bWVudERlZmluaXRlbHkgbWVhbnMK
KyAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CisgICAgICAgIC8vIEFzc2VydCB0aGF0IHRoZSBz
dGF0ZSBvZiBhcmd1bWVudHMgaGFzIGJlZW4gc2V0LiBTZXRBcmd1bWVudERlZmluaXRlbHkvU2V0
QXJndW1lbnRNYXliZSBtZWFucwogICAgICAgICAvLyB0aGF0IHNvbWVvbmUgc2V0IHRoZSBhcmd1
bWVudCB2YWx1ZXMgb3V0LW9mLWJhbmQsIGFuZCBjdXJyZW50bHkgdGhpcyBhbHdheXMgbWVhbnMg
c2V0dGluZyB0byBhCiAgICAgICAgIC8vIG5vbi1jbGVhciB2YWx1ZS4KICAgICAgICAgQVNTRVJU
KCFtX3N0YXRlLm9wZXJhbmQobm9kZS0+bG9jYWwoKSkuaXNDbGVhcigpKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2Myw2ICsxODYzLDcgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlVmFyYXJnc0lubGluaQogICAgICAgICBtX2N1cnJlbnRCbG9jay0+dmFyaWFi
bGVzQXRUYWlsLnNldE9wZXJhbmQoY291bnRWYXJpYWJsZS0+bG9jYWwoKSwgc2V0QXJndW1lbnRD
b3VudCk7CiAgICAgICAgIAogICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50U3Rh
cnQpLCBnZXQodGhpc0FyZ3VtZW50KSwgSW1tZWRpYXRlTmFrZWRTZXQpOworICAgICAgICB1bnNp
Z25lZCBudW1TZXRBcmd1bWVudHMgPSAwOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50
ID0gMTsgYXJndW1lbnQgPCBtYXhOdW1Bcmd1bWVudHM7ICsrYXJndW1lbnQpIHsKICAgICAgICAg
ICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEo
VmlydHVhbFJlZ2lzdGVyKHJlbWFwcGVkQXJndW1lbnRTdGFydCArIGFyZ3VtZW50KSk7CiAgICAg
ICAgICAgICB2YXJpYWJsZS0+bWVyZ2VTaG91bGROZXZlclVuYm94KHRydWUpOyAvLyBXZSBjdXJy
ZW50bHkgaGF2ZSBub3doZXJlIHRvIHB1dCB0aGUgdHlwZSBjaGVjayBvbiB0aGUgTG9hZFZhcmFy
Z3MuIExvYWRWYXJhcmdzIGlzIGVmZmVjdGZ1bCwgc28gYWZ0ZXIgaXQgZmluaXNoZXMsIHdlIGNh
bm5vdCBleGl0LgpAQCAtMTg4Miw4ICsxODgzLDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlVmFyYXJnc0lubGluaQogICAgICAgICAgICAgICAgIHZhcmlhYmxlLT5wcmVkaWN0KHByb2Zp
bGUuY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlcikpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBOb2RlKiBzZXRBcmd1bWVudCA9IGFkZFRvR3JhcGgoU2V0
QXJndW1lbnREZWZpbml0ZWx5LCBPcEluZm8odmFyaWFibGUpKTsKKyAgICAgICAgICAgIE5vZGUq
IHNldEFyZ3VtZW50ID0gYWRkVG9HcmFwaChudW1TZXRBcmd1bWVudHMgPj0gbWFuZGF0b3J5TWlu
aW11bSA/IFNldEFyZ3VtZW50TWF5YmUgOiBTZXRBcmd1bWVudERlZmluaXRlbHksIE9wSW5mbyh2
YXJpYWJsZSkpOwogICAgICAgICAgICAgbV9jdXJyZW50QmxvY2stPnZhcmlhYmxlc0F0VGFpbC5z
ZXRPcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpLCBzZXRBcmd1bWVudCk7CisgICAgICAgICAgICAr
K251bVNldEFyZ3VtZW50czsKICAgICAgICAgfQogICAgIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVh
ZGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNiArOTQsOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS0+b3AoKSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbm9kZSwgIkludmFsaWQgUGhhbnRvbShAU2V0QXJn
dW1lbnRNYXliZSkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgICAgICBjYXNlIFBoaToKICAgICAgICAgICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVu
dERlZmluaXRlbHk6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6CkBAIC0xNjks
MTIgKzE3MiwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBtX2Jsb2NrLT52YXJp
YWJsZXNBdFRhaWwuYXRGb3I8b3BlcmFuZEtpbmQ+KGlkeCkgPSBub2RlOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEFTU0VS
VChvdGhlck5vZGUtPm9wKCkgIT0gU2V0QXJndW1lbnRNYXliZSk7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCBvdGhlck5vZGUtPm9wKCkgPT0g
U2V0QXJndW1lbnREZWZpbml0ZWx5KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIEFTU0VSVChvdGhlck5vZGUtPm9wKCkgIT0gU2V0QXJndW1l
bnRNYXliZSk7CiAgICAgICAgICAgICBBU1NFUlQob3RoZXJOb2RlLT5vcCgpID09IFNldExvY2Fs
IHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgfHwgb3RoZXJOb2Rl
LT5vcCgpID09IEdldExvY2FsKTsKICAgICAgICAgICAgIEFTU0VSVChvdGhlck5vZGUtPnZhcmlh
YmxlQWNjZXNzRGF0YSgpID09IHZhcmlhYmxlKTsKICAgICAgICAgICAgIApAQCAtMjMwLDcgKzIz
NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIEFTU0VSVChvdGhlck5vZGUtPm9wKCkgPT0gUGhpIHx8
IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCBvdGhlck5vZGUtPm9wKCkgPT0gU2V0QXJn
dW1lbnREZWZpbml0ZWx5KTsKKyAgICAgICAgICAgIEFTU0VSVChvdGhlck5vZGUtPm9wKCkgPT0g
UGhpIHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCBvdGhlck5vZGUtPm9wKCkgPT0g
U2V0QXJndW1lbnREZWZpbml0ZWx5IHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudE1h
eWJlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKG5vZGVUeXBlID09IFBoYW50b21M
b2NhbCAmJiBvdGhlck5vZGUtPm9wKCkgPT0gU2V0TG9jYWwpIHsKICAgICAgICAgICAgICAgICAv
LyBQaGFudG9tTG9jYWwoU2V0TG9jYWwpIGRvZXNuJ3QgbWFrZSBzZW5zZS4gUGhhbnRvbUxvY2Fs
IG1lYW5zOiBhdCB0aGlzCkBAIC0yOTcsMTIgKzMwMiwxMiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgLy8gVGhlIHJ1bGVzIGZvciB0aHJlYWRlZCBDUFMgZm9ybToKICAgICAgICAgICAgIC8vIAog
ICAgICAgICAgICAgLy8gSGVhZCB2YXJpYWJsZTogZGVzY3JpYmVzIHdoYXQgaXMgbGl2ZSBhdCB0
aGUgaGVhZCBvZiB0aGUgYmFzaWMgYmxvY2suCi0gICAgICAgICAgICAvLyBIZWFkIHZhcmlhYmxl
IGxpbmtzIG1heSByZWZlciB0byBGbHVzaCwgUGhhbnRvbUxvY2FsLCBQaGksIG9yIFNldEFyZ3Vt
ZW50RGVmaW5pdGVseS4KLSAgICAgICAgICAgIC8vIFNldEFyZ3VtZW50RGVmaW5pdGVseSBtYXkg
b25seSBhcHBlYXIgaW4gdGhlIHJvb3QgYmxvY2suCisgICAgICAgICAgICAvLyBIZWFkIHZhcmlh
YmxlIGxpbmtzIG1heSByZWZlciB0byBGbHVzaCwgUGhhbnRvbUxvY2FsLCBQaGksIG9yIFNldEFy
Z3VtZW50RGVmaW5pdGVseS9TZXRBcmd1bWVudE1heWJlLgorICAgICAgICAgICAgLy8gU2V0QXJn
dW1lbnREZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUgbWF5IG9ubHkgYXBwZWFyIGluIHRoZSBy
b290IGJsb2NrLgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vIFRhaWwgdmFyaWFibGU6
IHRoZSBsYXN0IHRoaW5nIHRoYXQgaGFwcGVuZWQgdG8gdGhlIHZhcmlhYmxlIGluIHRoZSBibG9j
ay4KLSAgICAgICAgICAgIC8vIEl0IG1heSBiZSBhIEZsdXNoLCBQaGFudG9tTG9jYWwsIEdldExv
Y2FsLCBTZXRMb2NhbCwgU2V0QXJndW1lbnREZWZpbml0ZWx5LCBvciBQaGkuCi0gICAgICAgICAg
ICAvLyBTZXRBcmd1bWVudERlZmluaXRlbHkgbWF5IG9ubHkgYXBwZWFyIGluIHRoZSByb290IGJs
b2NrLiBOb3RlIHRoYXQgaWYgdGhlcmUgZXZlcgorICAgICAgICAgICAgLy8gSXQgbWF5IGJlIGEg
Rmx1c2gsIFBoYW50b21Mb2NhbCwgR2V0TG9jYWwsIFNldExvY2FsLCBTZXRBcmd1bWVudERlZmlu
aXRlbHkvU2V0QXJndW1lbnRNYXliZSwgb3IgUGhpLgorICAgICAgICAgICAgLy8gU2V0QXJndW1l
bnREZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUgbWF5IG9ubHkgYXBwZWFyIGluIHRoZSByb290
IGJsb2NrLiBOb3RlIHRoYXQgaWYgdGhlcmUgZXZlcgogICAgICAgICAgICAgLy8gd2FzIGEgR2V0
TG9jYWwgdG8gdGhlIHZhcmlhYmxlLCBhbmQgaXQgd2FzIGZvbGxvd2VkIGJ5IFBoYW50b21Mb2Nh
bHMgYW5kCiAgICAgICAgICAgICAvLyBGbHVzaGVzIGJ1dCBub3QgU2V0TG9jYWxzLCB0aGVuIHRo
ZSB0YWlsIHZhcmlhYmxlIHdpbGwgYmUgdGhlIEdldExvY2FsLgogICAgICAgICAgICAgLy8gVGhp
cyByZWZsZWN0cyB0aGUgZmFjdCB0aGF0IHlvdSBvbmx5IGNhcmUgdGhhdCB0aGUgdGFpbCB2YXJp
YWJsZSBpcyBhCkBAIC0zMTEsMjIgKzMxNiwyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8g
dmFyaWFibGUgd2lsbCBiZSBhIFNldExvY2FsIGFuZCBub3QgdGhvc2Ugc3Vic2VxdWVudCBGbHVz
aGVzLgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vIENoaWxkIG9mIEdldExvY2FsOiB0
aGUgb3BlcmF0aW9uIHRoYXQgdGhlIEdldExvY2FsIGtlZXBzIGFsaXZlLiBJdCBtYXkgYmUKLSAg
ICAgICAgICAgIC8vIGEgUGhpIGZyb20gdGhlIGN1cnJlbnQgYmxvY2suIEZvciBhcmd1bWVudHMs
IGl0IG1heSBiZSBhIFNldEFyZ3VtZW50RGVmaW5pdGVseS4KKyAgICAgICAgICAgIC8vIGEgUGhp
IGZyb20gdGhlIGN1cnJlbnQgYmxvY2suIEZvciBhcmd1bWVudHMsIGl0IG1heSBiZSBhIFNldEFy
Z3VtZW50RGVmaW5pdGVseQorICAgICAgICAgICAgLy8gYnV0IGl0IGNhbid0IGJlIGEgU2V0QXJn
dW1lbnRNYXliZS4KICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBDaGlsZCBvZiBTZXRM
b2NhbDogbXVzdCBiZSBhIHZhbHVlIHByb2R1Y2luZyBub2RlLgogICAgICAgICAgICAgLy8KICAg
ICAgICAgICAgIC8vIENoaWxkIG9mIEZsdXNoOiBpdCBtYXkgYmUgYSBQaGkgZnJvbSB0aGUgY3Vy
cmVudCBibG9jayBvciBhIFNldExvY2FsLiBGb3IKLSAgICAgICAgICAgIC8vIGFyZ3VtZW50cyBp
dCBtYXkgYWxzbyBiZSBhIFNldEFyZ3VtZW50RGVmaW5pdGVseS4KKyAgICAgICAgICAgIC8vIGFy
Z3VtZW50cyBpdCBtYXkgYWxzbyBiZSBhIFNldEFyZ3VtZW50RGVmaW5pdGVseS9TZXRBcmd1bWVu
dE1heWJlLgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vIENoaWxkIG9mIFBoYW50b21M
b2NhbDogaXQgbWF5IGJlIGEgUGhpIGZyb20gdGhlIGN1cnJlbnQgYmxvY2suIEZvcgotICAgICAg
ICAgICAgLy8gYXJndW1lbnRzIGl0IG1heSBhbHNvIGJlIGEgU2V0QXJndW1lbnREZWZpbml0ZWx5
LgorICAgICAgICAgICAgLy8gYXJndW1lbnRzIGl0IG1heSBhbHNvIGJlIGEgU2V0QXJndW1lbnRE
ZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUuCiAgICAgICAgICAgICAvLwogICAgICAgICAgICAg
Ly8gQ2hpbGRyZW4gb2YgUGhpOiBvdGhlciBQaGlzIGluIHRoZSBzYW1lIGJhc2ljIGJsb2NrLCBv
ciBhbnkgb2YgdGhlCi0gICAgICAgICAgICAvLyBmb2xsb3dpbmcgZnJvbSBwcmVkZWNlc3NvciBi
bG9ja3M6IFNldExvY2FsLCBQaGksIG9yIFNldEFyZ3VtZW50RGVmaW5pdGVseS4KKyAgICAgICAg
ICAgIC8vIGZvbGxvd2luZyBmcm9tIHByZWRlY2Vzc29yIGJsb2NrczogU2V0TG9jYWwsIFBoaSwg
b3IgU2V0QXJndW1lbnREZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUuCiAgICAgICAgICAgICAv
LyBUaGVzZSBhcmUgY29tcHV0ZWQgYnkgbG9va2luZyBhdCB0aGUgdGFpbCB2YXJpYWJsZXMgb2Yg
dGhlIHByZWRlY2Vzc29yIGJsb2NrcwotICAgICAgICAgICAgLy8gYW5kIGVpdGhlciB1c2luZyBp
dCBkaXJlY3RseSAoaWYgaXQncyBhIFNldExvY2FsLCBQaGksIG9yIFNldEFyZ3VtZW50RGVmaW5p
dGVseSkgb3IKKyAgICAgICAgICAgIC8vIGFuZCBlaXRoZXIgdXNpbmcgaXQgZGlyZWN0bHkgKGlm
IGl0J3MgYSBTZXRMb2NhbCwgUGhpLCBvciBTZXRBcmd1bWVudERlZmluaXRlbHkvU2V0QXJndW1l
bnRNYXliZSkgb3IKICAgICAgICAgICAgIC8vIGxvYWRpbmcgdGhhdCBub2RlcyBjaGlsZCAoaWYg
aXQncyBhIEdldExvY2FsLCBQaGFub21Mb2NhbCwgb3IgRmx1c2ggLSBhbGwKLSAgICAgICAgICAg
IC8vIG9mIHRoZXNlIHdpbGwgaGF2ZSBjaGlsZHJlbiB0aGF0IGFyZSBTZXRMb2NhbCwgUGhpLCBv
ciBTZXRBcmd1bWVudERlZmluaXRlbHkpLgorICAgICAgICAgICAgLy8gb2YgdGhlc2Ugd2lsbCBo
YXZlIGNoaWxkcmVuIHRoYXQgYXJlIFNldExvY2FsLCBQaGksIG9yIFNldEFyZ3VtZW50RGVmaW5p
dGVseS9TZXRBcmd1bWVudE1heWJlKS4KICAgICAgICAgICAgIAogICAgICAgICAgICAgc3dpdGNo
IChub2RlLT5vcCgpKSB7CiAgICAgICAgICAgICBjYXNlIEdldExvY2FsOgpAQCAtMzQ2LDYgKzM1
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgICAgIGNh
c2UgU2V0QXJndW1lbnRNYXliZToKICAgICAgICAgICAgICAgICBjYW5vbmljYWxpemVTZXQobm9k
ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCkBAIC00MjAsNyAr
NDI3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBBU1NFUlQoCiAgICAgICAgICAgICAg
ICAgICAgIHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSA9PSBTZXRMb2NhbAogICAgICAgICAgICAg
ICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkgPT0gUGhpCi0gICAgICAgICAgICAg
ICAgICAgIHx8IHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRl
bHkpOworICAgICAgICAgICAgICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkgPT0g
U2V0QXJndW1lbnREZWZpbml0ZWx5CisgICAgICAgICAgICAgICAgICAgIHx8IHZhcmlhYmxlSW5Q
cmV2aW91cy0+b3AoKSA9PSBTZXRBcmd1bWVudE1heWJlKTsKICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBpZiAoIWN1cnJlbnRQaGktPmNoaWxkMSgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGN1cnJlbnRQaGktPmNoaWxkcmVuLnNldENoaWxkMShFZGdlKHZhcmlhYmxlSW5QcmV2aW91cykp
OwpAQCAtNDgzLDYgKzQ5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUt
Pm9wKCkpIHsKICAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6CiAgICAgICAgICAgICBjYXNlIFNl
dEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZToK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNh
c2UgRmx1c2g6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1MSw2ICs0NTEsNyBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgY2FzZSBQaGk6CiAgICAgY2FzZSBQaGFu
dG9tTG9jYWw6CiAgICAgY2FzZSBTZXRBcmd1bWVudERlZmluaXRlbHk6CisgICAgY2FzZSBTZXRB
cmd1bWVudE1heWJlOgogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNl
IFN3aXRjaDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAkocmV2aXNp
b24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIGVudW0gR3JhcGhGb3JtIHsKICAgICAvLyBt
b3N0IGxpa2VseSkgdGhlbiBpdCBpbXBsaWVzIHRoYXQgdGhlIGxvY2FsIGlzIHN0aWxsIGxpdmUg
YnV0IHRoYXQgaXQgbmVlZAogICAgIC8vIG5vdCBiZSBzdG9yZWQgdG8gdGhlIHN0YWNrIG5lY2Vz
c2FyaWx5LiBUaGlzIGltcGxpZXMgdGhhdCBQaGFudG9tIGNhbgogICAgIC8vIHJlZmVyZW5jZSBu
b2RlcyB0aGF0IGhhdmUgbm8gcmVzdWx0LCBhcyBsb25nIGFzIHRob3NlIG5vZGVzIGFyZSB2YWxp
ZAotICAgIC8vIEdldExvY2FsIGNoaWxkcmVuIChpLmUuIFBoaSwgU2V0TG9jYWwsIFNldEFyZ3Vt
ZW50RGVmaW5pdGVseSkuCisgICAgLy8gR2V0TG9jYWwgY2hpbGRyZW4gKGkuZS4gUGhpLCBTZXRM
b2NhbCwgU2V0QXJndW1lbnREZWZpbml0ZWx5LCBTZXRBcmd1bWVudE1heWJlKS4KICAgICAvLwog
ICAgIC8vIExvYWRTdG9yZSBmb3JtIGFsc28gaW1wbGllcyB0aGF0IFBoaXMgbmVlZCBub3QgaGF2
ZSBjaGlsZHJlbi4gQnkgZGVmYXVsdCwKICAgICAvLyB0aGV5IGVuZCB1cCBoYXZpbmcgbm8gY2hp
bGRyZW4gaWYgeW91IGVudGVyIExvYWRTdG9yZSB1c2luZyB0aGUgY2Fub25pY2FsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZpc2lvbiAyNDQxOTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5LDYgKzc5LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQog
ICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgY2FzZSBTZXRBcmd1
bWVudERlZmluaXRlbHk6CisgICAgY2FzZSBTZXRBcmd1bWVudE1heWJlOgogICAgIGNhc2UgQXJp
dGhCaXROb3Q6CiAgICAgY2FzZSBBcml0aEJpdEFuZDoKICAgICBjYXNlIEFyaXRoQml0T3I6Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlz
aW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMjUsNiArMjMyNSw3IEBAIHByaXZhdGU6CiAjaWYgIUFT
U0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZlIHRoZXNlIG5vLW9wIGNhc2VzIGhlcmUgdG8g
ZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8gYWRkIGhhbmRsZXJzIGZvciBuZXcgb3Bjb2Rl
cy4KICAgICAgICAgY2FzZSBTZXRBcmd1bWVudERlZmluaXRlbHk6CisgICAgICAgIGNhc2UgU2V0
QXJndW1lbnRNYXliZToKICAgICAgICAgY2FzZSBKU0NvbnN0YW50OgogICAgICAgICBjYXNlIExh
enlKU0NvbnN0YW50OgogICAgICAgICBjYXNlIERvdWJsZUNvbnN0YW50OgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5j
cHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5Q
bGFjZUFic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNiArMjM1LDcgQEAg
Ym9vbCBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6ZW5kQmFzaWNCbG9jawogICAgICAgICAgICAgc3dp
dGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgICAgICBjYXNlIFBoaToKICAgICAgICAgICAgIGNh
c2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudE1h
eWJlOgogICAgICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgICAgICAgICBjYXNlIEZs
dXNoOiB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIGJsb2NrIHRyYW5zZmVycyB0aGUgdmFsdWUg
ZnJvbSBoZWFkIHRvIHRhaWwuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xp
dmVDYXRjaFZhcmlhYmxlUHJlc2VydmF0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
TGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgY3VycmVudEV4Y2VwdGlv
bkhhbmRsZXIgPSBuZXdIYW5kbGVyOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAo
Y3VycmVudEV4Y2VwdGlvbkhhbmRsZXIgJiYgKG5vZGUtPm9wKCkgPT0gU2V0TG9jYWwgfHwgbm9k
ZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkpKSB7CisgICAgICAgICAgICBpZiAoY3Vy
cmVudEV4Y2VwdGlvbkhhbmRsZXIgJiYgKG5vZGUtPm9wKCkgPT0gU2V0TG9jYWwgfHwgbm9kZS0+
b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgfHwgbm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVu
dE1heWJlKSkgewogICAgICAgICAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZy
YW1lID0gbm9kZS0+b3JpZ2luLnNlbWFudGljLmlubGluZUNhbGxGcmFtZSgpOwogICAgICAgICAg
ICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgICAgIHNlZW5Jbmxp
bmVDYWxsRnJhbWVzLmFkZChpbmxpbmVDYWxsRnJhbWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpbW9yZGlhbFNldEFy
Z3VtZW50ID0gbm9kZSA9PSBpdGVyLT52YWx1ZVtub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKV07
CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0g
U2V0TG9jYWwgfHwgKG5vZGUtPm9wKCkgPT0gU2V0QXJndW1lbnREZWZpbml0ZWx5ICYmICFpc1By
aW1vcmRpYWxTZXRBcmd1bWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9
PSBTZXRMb2NhbCB8fCAobm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgJiYgIWlz
UHJpbW9yZGlhbFNldEFyZ3VtZW50KSB8fCBub2RlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUp
IHsKICAgICAgICAgICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQgPSBub2RlLT5s
b2NhbCgpOwogICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIGZsdXNoQWNj
ZXNzRGF0YSA9IGN1cnJlbnRCbG9ja0FjY2Vzc0RhdGEub3BlcmFuZChvcGVyYW5kKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFmbHVzaEFjY2Vzc0RhdGEpCkBAIC0xMzYsNyArMTM2LDcgQEAg
cHVibGljOgogCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+dmFyaWFi
bGVzQXRUYWlsLm51bWJlck9mTG9jYWxzKCk7IGkrKykgewogICAgICAgICAgICAgVmlydHVhbFJl
Z2lzdGVyIG9wZXJhbmQgPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKTsKLSAgICAgICAgICAg
IERGR19BU1NFUlQobV9ncmFwaCwgbnVsbHB0ciwgaW5pdGlhbEFjY2Vzc05vZGVzLm9wZXJhbmQo
b3BlcmFuZCktPm9wKCkgPT0gRmx1c2gpOyAvLyBXZSBzaG91bGQgaGF2ZSBpbnNlcnRlZCBhIEZs
dXNoIGJlZm9yZSBhbnkgU2V0TG9jYWwvU2V0QXJndW1lbnREZWZpbml0ZWx5IGZvciB0aGUgbG9j
YWwgdGhhdCB3ZSBhcmUgYW5hbHl6aW5nIG5vdy4KKyAgICAgICAgICAgIERGR19BU1NFUlQobV9n
cmFwaCwgbnVsbHB0ciwgaW5pdGlhbEFjY2Vzc05vZGVzLm9wZXJhbmQob3BlcmFuZCktPm9wKCkg
PT0gRmx1c2gpOyAvLyBXZSBzaG91bGQgaGF2ZSBpbnNlcnRlZCBhIEZsdXNoIGJlZm9yZSBhbnkg
U2V0TG9jYWwvU2V0QXJndW1lbnREZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUgZm9yIHRoZSBs
b2NhbCB0aGF0IHdlIGFyZSBhbmFseXppbmcgbm93LgogICAgICAgICAgICAgVmFyaWFibGVBY2Nl
c3NEYXRhKiBhY2Nlc3NEYXRhID0gaW5pdGlhbEFjY2Vzc0RhdGEub3BlcmFuZChvcGVyYW5kKTsK
ICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbnVsbHB0ciwgYWNjZXNzRGF0YSk7CiAg
ICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgwLCBTcGVjTm9uZSwgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heUV4aXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAJKHJldmlzaW9uIDI0NDE5MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDYgKzQ4LDcgQEAgRXhpdE1vZGUgbWF5RXhpdEltcGwoR3JhcGgmIGdyYXBoLCBO
b2RlKgogICAgIC8vIGNvbnNlcnZhdGl2ZSB3aGVuIG1haW50YWluaW5nIHRoaXMgbGlzdCwgYmVj
YXVzZSBhZGRpbmcgbmV3IG5vZGUgdHlwZXMgdG8gaXQgZG9lc24ndAogICAgIC8vIGdlbmVyYWxs
eSBtYWtlIHRoaW5ncyBhIGxvdCBiZXR0ZXIgYnV0IGl0IG1pZ2h0IGludHJvZHVjZSBzdWJ0bGUg
YnVncy4KICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICBjYXNlIFNldEFyZ3Vt
ZW50TWF5YmU6CiAgICAgY2FzZSBKU0NvbnN0YW50OgogICAgIGNhc2UgRG91YmxlQ29uc3RhbnQ6
CiAgICAgY2FzZSBMYXp5SlNDb25zdGFudDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmNwcAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQCBib29sIE5vZGU6
Omhhc1ZhcmlhYmxlQWNjZXNzRGF0YShHcmFwaCYgCiAgICAgY2FzZSBHZXRMb2NhbDoKICAgICBj
YXNlIFNldExvY2FsOgogICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgIGNhc2Ug
U2V0QXJndW1lbnRNYXliZToKICAgICBjYXNlIEZsdXNoOgogICAgIGNhc2UgUGhhbnRvbUxvY2Fs
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDggKzEwMywxMCBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tUaWVyVXBBbmRPU1JF
bnRlciwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrVGllclVwQXRSZXR1cm4s
IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCi0gICAgLyogTWFya2VyIGZvciBhbiBhcmd1bWVu
dCBiZWluZyBzZXQgYXQgdGhlIHByb2xvZ3VlIG9mIGEgZnVuY3Rpb24uICovXAorICAgIC8qIE1h
cmtlciBmb3IgYW4gYXJndW1lbnQgYmVpbmcgc2V0IGF0IHRoZSBwcm9sb2d1ZSBvZiBhIGZ1bmN0
aW9uLiBUaGUgYXJndW1lbnQgaXMgZ3VhcmFudGVlZCB0byBiZSBzZXQgYWZ0ZXIgdGhpcyBub2Rl
LiAqL1wKICAgICBtYWNybyhTZXRBcmd1bWVudERlZmluaXRlbHksIDApIFwKKyAgICAvKiBBIG1h
cmtlciBsaWtlIHRoZSBhYm92ZSB0aGF0IHdlIHVzZSB0byB0cmFjayB2YXJpYWJsZSBsaXZlbmVz
cyBhbmQgT1NSIGV4aXQgc3RhdGUuIEhvd2V2ZXIsIGl0J3Mgbm90IGd1YXJhbnRlZWQgdG8gYmUg
c2V0LiBUbyB2ZXJpZnkgaXQgd2FzIHNldCwgeW91J2QgbmVlZCB0byBjaGVjayB0aGUgYWN0dWFs
IGFyZ3VtZW50IGxlbmd0aC4gV2UgdXNlIHRoaXMgZm9yIHZhcmFyZ3Mgd2hlbiB3ZSdyZSB1bnN1
cmUgaG93IG1hbnkgYXJndW1lbnQgbWF5IGFjdHVhbGx5IGVuZCB1cCBvbiB0aGUgc3RhY2suICov
XAorICAgIG1hY3JvKFNldEFyZ3VtZW50TWF5YmUsIDApIFwKICAgICBcCiAgICAgLyogTWFya2Vy
IG9mIGxvY2F0aW9uIGluIHRoZSBJUiB3aGVyZSB3ZSBtYXkgcG9zc2libHkgcGVyZm9ybSBqdW1w
IHJlcGxhY2VtZW50IHRvICovXAogICAgIC8qIGludmFsaWRhdGUgdGhpcyBjb2RlIGJsb2NrLiAq
L1wKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50
b21JbnNlcnRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE3LDYgKzExNyw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIGNhc2UgR2V0TG9jYWw6
CiAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgICAgIGNh
c2UgU2V0QXJndW1lbnRNYXliZToKICAgICAgICAgICAgICAgICBtX3ZhbHVlcy5vcGVyYW5kKG5v
ZGUtPmxvY2FsKCkpID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAyNDQxOTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1Miw2ICsxMjUyLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgICAgIGNhc2UgRm9yY2VPU1JFeGl0Ogog
ICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgY2FzZSBTZXRBcmd1
bWVudE1heWJlOgogICAgICAgICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKICAgICAgICAgY2FzZSBD
aGVja1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja0NlbGw6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCShyZXZp
c2lvbiAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vICAgICB2YWx1ZUZvck9wZXJhbmQuCiAgICAgICAgIC8vCiAgICAgICAgIC8vICAg
LSBTZXRBcmd1bWVudERlZmluaXRlbHkgaXMgcmVtb3ZlZC4gTm90ZSB0aGF0IEdldFN0YWNrIG5v
ZGVzIGhhdmUgYWxyZWFkeSBiZWVuIGluc2VydGVkLgorICAgICAgICAvLworICAgICAgICAvLyAg
IC0gU2V0QXJndW1lbnRNYXliZSBpcyByZW1vdmVkLiBJdCBzaG91bGQgbm90IGhhdmUgYW55IGRh
dGEgZmxvdyB1c2VzLgogICAgICAgICBPcGVyYW5kczxOb2RlKj4gdmFsdWVGb3JPcGVyYW5kKE9w
ZXJhbmRzTGlrZSwgbV9ncmFwaC5ibG9jaygwKS0+dmFyaWFibGVzQXRIZWFkKTsKICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fZ3JhcGguYmxvY2tzSW5QcmVPcmRlcigpKSB7CiAg
ICAgICAgICAgICB2YWx1ZUZvck9wZXJhbmQuY2xlYXIoKTsKQEAgLTM5Myw2ICszOTUsMTEgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAK
KyAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6IHsKKyAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCShy
ZXZpc2lvbiAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDYgKzE5OCw3IEBAIGJvb2wgc2FmZVRvRXhl
Y3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAgICBjYXNlIEZsdXNoOgogICAgIGNhc2UgUGhh
bnRvbUxvY2FsOgogICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgIGNhc2UgU2V0
QXJndW1lbnRNYXliZToKICAgICBjYXNlIEFyaXRoQml0Tm90OgogICAgIGNhc2UgQXJpdGhCaXRB
bmQ6CiAgICAgY2FzZSBBcml0aEJpdE9yOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAyNDQxOTMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTczLDYgKzE5NzMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAgY2FzZSBTZXRBcmd1bWVudERlZmlu
aXRlbHk6CisgICAgY2FzZSBTZXRBcmd1bWVudE1heWJlOgogICAgICAgICAvLyBUaGlzIGlzIGEg
bm8tb3A7IGl0IGp1c3QgbWFya3MgdGhlIGZhY3QgdGhhdCB0aGUgYXJndW1lbnQgaXMgYmVpbmcg
dXNlZC4KICAgICAgICAgLy8gQnV0IGl0IG1heSBiZSBwcm9maXRhYmxlIHRvIHVzZSB0aGlzIGFz
IGEgaG9vayB0byBydW4gc3BlY3VsYXRpb24gY2hlY2tzCiAgICAgICAgIC8vIG9uIGFyZ3VtZW50
cywgdGhlcmVieSBhbGxvd2luZyB1cyB0byB0cml2aWFsbHkgZWxpbWluYXRlIHN1Y2ggY2hlY2tz
IGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzIsNiArMjA3
Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICB9CiAK
ICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICBjYXNlIFNldEFyZ3VtZW50TWF5
YmU6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcDsgaXQganVzdCBtYXJrcyB0aGUgZmFjdCB0
aGF0IHRoZSBhcmd1bWVudCBpcyBiZWluZyB1c2VkLgogICAgICAgICAvLyBCdXQgaXQgbWF5IGJl
IHByb2ZpdGFibGUgdG8gdXNlIHRoaXMgYXMgYSBob29rIHRvIHJ1biBzcGVjdWxhdGlvbiBjaGVj
a3MKICAgICAgICAgLy8gb24gYXJndW1lbnRzLCB0aGVyZWJ5IGFsbG93aW5nIHVzIHRvIHRyaXZp
YWxseSBlbGltaW5hdGUgc3VjaCBjaGVja3MgaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDcgKzQ5
NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZSwgZWRnZSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICBlZGdlLT5vcCgpID09IFNldExvY2FsCiAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBlZGdlLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQotICAg
ICAgICAgICAgICAgICAgICAgICAgfHwgZWRnZS0+b3AoKSA9PSBGbHVzaAorICAgICAgICAgICAg
ICAgICAgICAgICAgfHwgZWRnZS0+b3AoKSA9PSBTZXRBcmd1bWVudE1heWJlCiAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBlZGdlLT5vcCgpID09IFBoaSk7CiAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICBpZiAocGhpc0luVGhpc0Jsb2NrLmNvbnRhaW5zKGVkZ2Uu
bm9kZSgpKSkKQEAgLTUwNSw3ICs1MDUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChub2RlLCBlZGdlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGdl
LT5vcCgpID09IFNldExvY2FsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZWRnZS0+
b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8fCBlZGdlLT5vcCgpID09IEZsdXNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
fCBlZGdlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAg
ICAgfQpAQCAtNTM3LDYgKzUzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxvY2FsLCBibG9jay0+cHJlZGVjZXNzb3JzW2tdLCBwcmV2Tm9kZSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJldk5vZGUtPm9wKCkgPT0gU2V0TG9jYWwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8fCBwcmV2Tm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmlu
aXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmV2Tm9kZS0+b3AoKSA9PSBT
ZXRBcmd1bWVudE1heWJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcHJldk5vZGUt
Pm9wKCkgPT0gUGhpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2Tm9kZSA9PSBl
ZGdlLm5vZGUoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsK
QEAgLTY2Niw2ICs2NjcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBpZiAobV9n
cmFwaC5tX2Zvcm0gPT0gVGhyZWFkZWRDUFMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFZB
TElEQVRFKChub2RlLCBibG9jayksIGdldExvY2FsUG9zaXRpb25zLm9wZXJhbmQobm9kZS0+bG9j
YWwoKSkgPT0gbm90U2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2Rl
LCBibG9jayksICEhbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgVkFM
SURBVEUoKG5vZGUsIGJsb2NrKSwgbm9kZS0+Y2hpbGQxKCktPm9wKCkgPT0gU2V0QXJndW1lbnRE
ZWZpbml0ZWx5IHx8IG5vZGUtPmNoaWxkMSgpLT5vcCgpID09IFBoaSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZ2V0TG9jYWxQb3NpdGlvbnMub3BlcmFuZChu
b2RlLT5sb2NhbCgpKSA9IGk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjgyLDYg
KzY4NCwyMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBnZXRMb2NhbFBvc2l0aW9u
cy5vcGVyYW5kKG5vZGUtPmxvY2FsKCkpID0gbm90U2V0OwogICAgICAgICAgICAgICAgICAgICBz
ZXRMb2NhbFBvc2l0aW9ucy5vcGVyYW5kKG5vZGUtPmxvY2FsKCkpID0gbm90U2V0OwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5
YmU6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRmx1
c2g6CisgICAgICAgICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CisgICAgICAgICAgICAgICAg
ICAgIGlmIChtX2dyYXBoLm1fZm9ybSA9PSBUaHJlYWRlZENQUykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoKG5vZGUsIGJsb2NrKSwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+Y2hpbGQxKCktPm9wKCkgPT0gUGhpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfHwgbm9kZS0+Y2hpbGQxKCktPm9wKCkgPT0gU2V0TG9jYWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8fCBub2RlLT5jaGlsZDEoKS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmlu
aXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBub2RlLT5jaGlsZDEoKS0+b3Ao
KSA9PSBTZXRBcmd1bWVudE1heWJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5vcCgpID09IFBoYW50b21Mb2NhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQUxJ
REFURSgobm9kZSwgYmxvY2spLCBub2RlLT5jaGlsZDEoKS0+b3AoKSAhPSBTZXRBcmd1bWVudE1h
eWJlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CkBAIC02OTksNiArNzE1LDUyIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIGJsb2NrLCBnZXRMb2NhbFBvc2l0aW9ucywgc2V0TG9jYWxQb3NpdGlvbnMsIHZp
cnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisg
ICAgICAgIGlmIChtX2dyYXBoLm1fZm9ybSA9PSBUaHJlYWRlZENQUykgeworICAgICAgICAgICAg
VmVjdG9yPE5vZGUqPiB3b3JrbGlzdDsKKyAgICAgICAgICAgIEhhc2hTZXQ8Tm9kZSo+IHNlZW47
CisgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9ncmFwaC5ibG9ja3NJbk5h
dHVyYWxPcmRlcigpKSB7CisgICAgICAgICAgICAgICAgZm9yIChOb2RlKiBub2RlIDogKmJsb2Nr
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldExvY2FsIHx8IG5v
ZGUtPm9wKCkgPT0gUGhhbnRvbUxvY2FsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3b3Jr
bGlzdC5hcHBlbmQobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGFkZFJlc3Vs
dCA9IHNlZW4uYWRkKG5vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5v
ZGUsIGJsb2NrKSwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAo
d29ya2xpc3Quc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IHdvcmtsaXN0
LnRha2VMYXN0KCk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CisgICAgICAgICAgICAgICAgY2FzZSBHZXRM
b2NhbDogeworICAgICAgICAgICAgICAgICAgICBOb2RlKiBjaGlsZCA9IG5vZGUtPmNoaWxkMSgp
Lm5vZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlZW4uYWRkKGNoaWxkKS5pc05ld0Vu
dHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgd29ya2xpc3QuYXBwZW5kKGNoaWxkKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGNhc2UgUGhpOiB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2dyYXBoLm51bUNoaWxkcmVuKG5vZGUpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEVkZ2UgZWRnZSA9IG1fZ3JhcGguY2hpbGQobm9kZSwgaSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoIWVkZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2Vlbi5hZGQoZWRnZS5ub2RlKCkpLmlz
TmV3RW50cnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2xpc3QuYXBwZW5kKGVk
Z2Uubm9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBTZXRMb2NhbDoK
KyAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudE1heWJlOgor
ICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksICEiU2hvdWxkIG5vdCByZWFjaCBT
ZXRBcmd1bWVudE1heWJlLiBHZXRMb2NhbCB0aGF0IGhhcyBkYXRhIGZsb3cgdGhhdCByZWFjaGVz
IGEgU2V0QXJndW1lbnRNYXliZSBpcyBpbnZhbGlkIElSLiIpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBW
QUxJREFURSgobm9kZSksICEiVW5leGVjcHRlZCBub2RlIHR5cGUuIik7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQogICAgIH0KICAgICAKICAgICB2b2lkIHZhbGlkYXRlU1NBKCkKQEAgLTc0MCw2ICs4MDIsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0TG9jYWw6CiAgICAgICAgICAgICAg
ICAgY2FzZSBTZXRMb2NhbDoKICAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5p
dGVseToKKyAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CiAgICAgICAgICAg
ICAgICAgY2FzZSBQaGFudG9tOgogICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSks
ICEiYmFkIG5vZGUgdHlwZSBmb3IgU1NBIik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAko
cmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIGlubGluZSBDYXBhYmls
aXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBjYXNlIEZsdXNoOgogICAgIGNhc2UgUGhh
bnRvbUxvY2FsOgogICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgIGNhc2UgU2V0
QXJndW1lbnRNYXliZToKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNlIEFyaXRoQml0Tm90Ogog
ICAgIGNhc2UgQXJpdGhCaXRBbmQ6Cg==
</data>
<flag name="review"
          id="383615"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367484</attachid>
            <date>2019-04-15 18:11:53 -0700</date>
            <delta_ts>2019-04-15 19:41:44 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>31992</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQxOTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE5LTA0LTExICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIE1vZGlmeSBob3cgd2UgZG8gU2V0QXJndW1lbnQgd2hlbiB3ZSBpbmxp
bmUgdmFyYXJncyBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NzEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYwNTAxMj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIFNhYm9mZi4KKworICAgICAgICAqIHN0cmVzcy9nZXQt
c3RhY2std3JvbmctdHlwZS13aGVuLWlubGluZS12YXJhcmdzLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisKIDIwMTktMDQtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWJzdHJhY3RWYWx1ZTo6dmFsaWRhdGVPU1JFbnRyeVZhbHVlIGlzIHdyb25nIGZv
ciBJbnQ1MiBjb25zdGFudHMKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2dldC1zdGFjay13cm9uZy10
eXBlLXdoZW4taW5saW5lLXZhcmFyZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3Mv
Z2V0LXN0YWNrLXdyb25nLXR5cGUtd2hlbi1pbmxpbmUtdmFyYXJncy5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy9nZXQtc3RhY2std3JvbmctdHlwZS13aGVuLWlubGluZS12YXJh
cmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKy8vQCBydW5EZWZhdWx0KCIt
LXVzZUNvbmN1cnJlbnRKSVQ9MCIsICItLXZhbGlkYXRlQWJzdHJhY3RJbnRlcnByZXRlclN0YXRl
PTEiLCAiLS12YWxpZGF0ZUFic3RyYWN0SW50ZXJwcmV0ZXJTdGF0ZVByb2JhYmlsaXR5PTEuMCIs
ICItLWZvcmNlRWFnZXJDb21waWxhdGlvbj0xIikKKworZnVuY3Rpb24gZm9vKGEsIHYpIHsKKyAg
ICBhWzBdID0gdiArIDIwMDAwMDAwMDA7Cit9Citub0lubGluZShmb28pOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgZm9vKHt9LCAxMDAwMDAwMDAwKTsKK30KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg2IEBACisy
MDE5LTA0LTExICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGlmeSBob3cgd2UgZG8gU2V0QXJndW1lbnQgd2hlbiB3ZSBpbmxpbmUgdmFyYXJncyBjYWxscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzEyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYwNTAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBN
aWNoYWVsIFNhYm9mZi4KKworICAgICAgICBXaGVuIHdlIGlubGluZSB2YXJhcmdzIGNhbGxzLCB3
ZSBndWFyYW50ZWUgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0CisgICAgICAgIGdv
IG9uIHRoZSBzdGFjayBhcmUgc29tZXdoZXJlIGJldHdlZW4gdGhlICJtYW5kYXRvcnlNaW5pbXVt
IiBhbmQgdGhlICJsaW1pdCAtIDEiLgorICAgICAgICBIb3dldmVyLCB3ZSBjYW4ndCBzdGF0aWNh
bGx5IGd1YXJhbnRlZSB0aGF0IHRoZSBhcmd1bWVudHMgYmV0d2VlbiB0aGVzZSB0d28KKyAgICAg
ICAgcmFuZ2VzIHdhcyBmaWxsZWQgb3V0IGJ5IExvYWQvRm9yd2FyZFZhcmFyZ3MuIFRoaXMgaXMg
YmVjYXVzZSBpbiB0aGUgZ2VuZXJhbAorICAgICAgICBjYXNlIHdlIGRvbid0IGtub3cgdGhlIGFy
Z3VtZW50IGNvdW50IHN0YXRpY2FsbHkuCisgICAgICAgIAorICAgICAgICBIb3dldmVyLCB3ZSB1
c2VkIHRvIGFsd2F5cyBlbWl0IFNldEFyZ3VtZW50RGVmaW5pdGVseSB1cCB0byAibGltaXQgLSAx
IiBmb3IKKyAgICAgICAgYWxsIGFyZ3VtZW50cywgZXZlbiB3aGVuIHNvbWUgYXJndW1lbnRzIGFy
ZW4ndCBndWFyYW50ZWVkIHRvIGJlIGluIGEgdmFsaWQKKyAgICAgICAgc3RhdGUuIEVtaXR0aW5n
IHRoZXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseSB3ZXJlIGhlbHBmdWwgYmVjYXVzZSB0aGV5IGxl
dCB1cworICAgICAgICBoYW5kbGUgdmFyaWFibGUgbGl2ZW5lc3MgYW5kIE9TUiBleGl0IG1ldGFk
YXRhLiBIb3dldmVyLCB3aGVuIHdlIGNvbnZlcnRlZAorICAgICAgICB0byBTU0EsIHdlIGVuZGVk
IHVwIGVtaXR0aW5nIGEgR2V0U3RhY2sgZm9yIGVhY2ggc3VjaCBTZXRBcmd1bWVudERlZmluaXRl
bHkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIHdyb25nLCBhcyB3ZSBjYW4ndCBndWFyYW50
ZWUgc3VjaCBTZXRBcmd1bWVudERlZmluaXRlbHkgbm9kZXMgYXJlCisgICAgICAgIGFjdHVhbGx5
IGxvb2tpbmcgYXQgYSByYW5nZSBvZiB0aGUgc3RhY2sgdGhhdCBhcmUgZ3VhcmFudGVlZCB0byBi
ZSBpbml0aWFsaXplZC4KKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZvcm0g
b2YgU2V0QXJndW1lbnQgbm9kZTogU2V0QXJndW1lbnRNYXliZS4gSW4gdGVybXMKKyAgICAgICAg
b2YgT1NSIGV4aXQgbWV0YWRhdGEgYW5kIHZhcmlhYmxlIGxpdmVuZXNzIHRyYWNraW5nLCBpdCBi
ZWhhdmVzIGxpa2UgU2V0QXJndW1lbnREZWZpbml0ZWx5LgorICAgICAgICAKKyAgICAgICAgSG93
ZXZlciwgaXQgZGlmZmVycyBpbiBhIGNvdXBsZSBrZXkgd2F5czoKKyAgICAgICAgMS4gSW4gVGhy
ZWFkZWRDUFMsIEdldExvY2FsKEBTZXRBcmd1bWVudE1heWJlKSBpcyBpbnZhbGlkIElSLCBhcyB0
aGlzIGltcGxpZXMKKyAgICAgICAgeW91IG1pZ2h0IGJlIGxvYWRpbmcgdW5pbml0aWFsaXplZCBz
dGFjay4gKFRoaXMgc2FtZSBydWxlIGFwcGxpZXMgd2hlbiB5b3UgZG8KKyAgICAgICAgdGhlIGZ1
bGwgZGF0YSBmbG93IHJlYWNoYWJpbGl0eSBhbmFseXNpcyBvdmVyIENQUyBQaGlzLikgSWYgc29t
ZW9uZSBsb2dpY2FsbHkKKyAgICAgICAgd2FudGVkIHRvIGVtaXQgY29kZSBsaWtlIHRoaXMsIHRo
ZSBjb3JyZWN0IG5vZGUgdG8gZW1pdCB3b3VsZCBiZSBHZXRBcmd1bWVudCwKKyAgICAgICAgbm90
IEdldExvY2FsLiBGb3Igc2ltaWxhciByZWFzb25zLCBQaGFudG9tTG9jYWwoQFNldEFyZ3VtZW50
TWF5YmUpIGlzIGFsc28KKyAgICAgICAgaW52YWxpZCBJUi4KKyAgICAgICAgMi4gVG8gdHJhY2sg
bGl2ZW5lc3MsIEZsdXNoKEBTZXRBcmd1bWVudE1heWJlKSBpcyB2YWxpZCwgYW5kIGlzIHRoZSBt
YWluIHVzZXIKKyAgICAgICAgb2YgU2V0QXJndW1lbnRNYXliZS4KKyAgICAgICAgMy4gSW4gU1NB
IGNvbnZlcnNpb24sIHdlIGRvbid0IGxvd2VyIFNldEFyZ3VtZW50TWF5YmUgdG8gR2V0U3RhY2ss
IGFzIHRoZXJlCisgICAgICAgIHNob3VsZCBiZSBubyBkYXRhIGZsb3cgdXNlciBvZiBTZXRBcmd1
bWVudE1heWJlLgorICAgICAgICAKKyAgICAgICAgU2V0QXJndW1lbnREZWZpbml0ZWx5IGd1YXJh
bnRlZXMgdGhhdCB0aGUgc3RhY2sgc2xvdCBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgU2V0QXJn
dW1lbnRNYXliZSBtYWtlcyBubyBzdWNoIGd1YXJhbnRlZS4KKworICAgICAgICAqIGRmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAg
ICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlVmFyYXJnc0lubGluaW5nKToKKyAgICAgICAgKiBkZmcvREZHQ1BTUmV0
aHJlYWRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJlYWRpbmdQaGFz
ZTo6ZnJlZVVubmVjZXNzYXJ5Tm9kZXMpOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFk
aW5nUGhhc2U6OmNhbm9uaWNhbGl6ZUdldExvY2FsRm9yKToKKyAgICAgICAgKEpTQzo6REZHOjpD
UFNSZXRocmVhZGluZ1BoYXNlOjpjYW5vbmljYWxpemVGbHVzaE9yUGhhbnRvbUxvY2FsRm9yKToK
KyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGluZ1BoYXNlOjpjYW5vbmljYWxpemVMb2Nh
bHNJbkJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGluZ1BoYXNlOjpwcm9w
YWdhdGVQaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGluZ1BoYXNlOjpjb21w
dXRlSXNGbHVzaGVkKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAo
SlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OmVuZEJhc2ljQmxv
Y2spOgorICAgICAgICAqIGRmZy9ERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBo
YXNlOjpoYW5kbGVCbG9ja0ZvclRyeUNhdGNoKToKKyAgICAgICAgKiBkZmcvREZHTWF4aW1hbEZs
dXNoSW5zZXJ0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok1heGltYWxGbHVzaElu
c2VydGlvblBoYXNlOjp0cmVhdFJlZ3VsYXJCbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6TWF4
aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U6OnRyZWF0Um9vdEJsb2NrKToKKyAgICAgICAgKiBkZmcv
REZHTWF5RXhpdC5jcHA6CisgICAgICAgICogZGZnL0RGR05vZGUuY3BwOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6Omhhc1ZhcmlhYmxlQWNjZXNzRGF0YSk6CisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHA6Cisg
ICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAg
KiBkZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FD
b252ZXJzaW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RG
R1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKwogMjAxOS0wNC0xMSAgU2FhbSBiYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgU2V0QXJndW1lbnQgdG8gU2V0QXJn
dW1lbnREZWZpbml0ZWx5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAyNDQxOTMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMiw3ICszMjIsOCBAQCBib29sIEFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFNldEFy
Z3VtZW50RGVmaW5pdGVseToKLSAgICAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIHN0YXRlIG9mIGFy
Z3VtZW50cyBoYXMgYmVlbiBzZXQuIFNldEFyZ3VtZW50RGVmaW5pdGVseSBtZWFucworICAgIGNh
c2UgU2V0QXJndW1lbnRNYXliZToKKyAgICAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIHN0YXRlIG9m
IGFyZ3VtZW50cyBoYXMgYmVlbiBzZXQuIFNldEFyZ3VtZW50RGVmaW5pdGVseS9TZXRBcmd1bWVu
dE1heWJlIG1lYW5zCiAgICAgICAgIC8vIHRoYXQgc29tZW9uZSBzZXQgdGhlIGFyZ3VtZW50IHZh
bHVlcyBvdXQtb2YtYmFuZCwgYW5kIGN1cnJlbnRseSB0aGlzIGFsd2F5cyBtZWFucyBzZXR0aW5n
IHRvIGEKICAgICAgICAgLy8gbm9uLWNsZWFyIHZhbHVlLgogICAgICAgICBBU1NFUlQoIW1fc3Rh
dGUub3BlcmFuZChub2RlLT5sb2NhbCgpKS5pc0NsZWFyKCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDI0NDE5
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODYzLDYgKzE4NjMsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVWYXJhcmdzSW5saW5pCiAgICAgICAgIG1fY3VycmVudEJsb2NrLT52YXJpYWJsZXNBdFRh
aWwuc2V0T3BlcmFuZChjb3VudFZhcmlhYmxlLT5sb2NhbCgpLCBzZXRBcmd1bWVudENvdW50KTsK
ICAgICAgICAgCiAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRTdGFydCksIGdl
dCh0aGlzQXJndW1lbnQpLCBJbW1lZGlhdGVOYWtlZFNldCk7CisgICAgICAgIHVuc2lnbmVkIG51
bVNldEFyZ3VtZW50cyA9IDA7CiAgICAgICAgIGZvciAodW5zaWduZWQgYXJndW1lbnQgPSAxOyBh
cmd1bWVudCA8IG1heE51bUFyZ3VtZW50czsgKythcmd1bWVudCkgewogICAgICAgICAgICAgVmFy
aWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IG5ld1ZhcmlhYmxlQWNjZXNzRGF0YShWaXJ0dWFs
UmVnaXN0ZXIocmVtYXBwZWRBcmd1bWVudFN0YXJ0ICsgYXJndW1lbnQpKTsKICAgICAgICAgICAg
IHZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVyVW5ib3godHJ1ZSk7IC8vIFdlIGN1cnJlbnRseSBo
YXZlIG5vd2hlcmUgdG8gcHV0IHRoZSB0eXBlIGNoZWNrIG9uIHRoZSBMb2FkVmFyYXJncy4gTG9h
ZFZhcmFyZ3MgaXMgZWZmZWN0ZnVsLCBzbyBhZnRlciBpdCBmaW5pc2hlcywgd2UgY2Fubm90IGV4
aXQuCkBAIC0xODgyLDggKzE4ODMsOSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVWYXJh
cmdzSW5saW5pCiAgICAgICAgICAgICAgICAgdmFyaWFibGUtPnByZWRpY3QocHJvZmlsZS5jb21w
dXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIE5vZGUqIHNldEFyZ3VtZW50ID0gYWRkVG9HcmFwaChTZXRBcmd1bWVu
dERlZmluaXRlbHksIE9wSW5mbyh2YXJpYWJsZSkpOworICAgICAgICAgICAgTm9kZSogc2V0QXJn
dW1lbnQgPSBhZGRUb0dyYXBoKG51bVNldEFyZ3VtZW50cyA+PSBtYW5kYXRvcnlNaW5pbXVtID8g
U2V0QXJndW1lbnRNYXliZSA6IFNldEFyZ3VtZW50RGVmaW5pdGVseSwgT3BJbmZvKHZhcmlhYmxl
KSk7CiAgICAgICAgICAgICBtX2N1cnJlbnRCbG9jay0+dmFyaWFibGVzQXRUYWlsLnNldE9wZXJh
bmQodmFyaWFibGUtPmxvY2FsKCksIHNldEFyZ3VtZW50KTsKKyAgICAgICAgICAgICsrbnVtU2V0
QXJndW1lbnRzOwogICAgICAgICB9CiAgICAgfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAy
NDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPmNoaWxkMSgpLT5vcCgpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IERGR19DUkFTSChtX2dyYXBoLCBub2RlLCAiSW52YWxpZCBQaGFudG9tKEBTZXRBcmd1bWVudE1h
eWJlKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgUGhpOgogICAgICAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5p
dGVseToKICAgICAgICAgICAgICAgICAgICAgY2FzZSBTZXRMb2NhbDoKQEAgLTE2OSwxMiArMTcy
LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPnZhcmlhYmxlc0F0
VGFpbC5hdEZvcjxvcGVyYW5kS2luZD4oaWR4KSA9IG5vZGU7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQVNTRVJUKG90aGVy
Tm9kZS0+b3AoKSAhPSBTZXRBcmd1bWVudE1heWJlKTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
b3RoZXJOb2RlLT5vcCgpID09IFNldExvY2FsIHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRBcmd1
bWVudERlZmluaXRlbHkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAorICAgICAgICAgICAgQVNTRVJUKG90aGVyTm9kZS0+b3AoKSAhPSBTZXRBcmd1bWVudE1heWJl
KTsKICAgICAgICAgICAgIEFTU0VSVChvdGhlck5vZGUtPm9wKCkgPT0gU2V0TG9jYWwgfHwgb3Ro
ZXJOb2RlLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseSB8fCBvdGhlck5vZGUtPm9wKCkg
PT0gR2V0TG9jYWwpOwogICAgICAgICAgICAgQVNTRVJUKG90aGVyTm9kZS0+dmFyaWFibGVBY2Nl
c3NEYXRhKCkgPT0gdmFyaWFibGUpOwogICAgICAgICAgICAgCkBAIC0yMzAsNyArMjM1LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAotICAgICAgICAgICAgQVNTRVJUKG90aGVyTm9kZS0+b3AoKSA9PSBQaGkgfHwgb3RoZXJO
b2RlLT5vcCgpID09IFNldExvY2FsIHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERl
ZmluaXRlbHkpOworICAgICAgICAgICAgQVNTRVJUKG90aGVyTm9kZS0+b3AoKSA9PSBQaGkgfHwg
b3RoZXJOb2RlLT5vcCgpID09IFNldExvY2FsIHx8IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRBcmd1
bWVudERlZmluaXRlbHkgfHwgb3RoZXJOb2RlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobm9kZVR5cGUgPT0gUGhhbnRvbUxvY2FsICYm
IG90aGVyTm9kZS0+b3AoKSA9PSBTZXRMb2NhbCkgewogICAgICAgICAgICAgICAgIC8vIFBoYW50
b21Mb2NhbChTZXRMb2NhbCkgZG9lc24ndCBtYWtlIHNlbnNlLiBQaGFudG9tTG9jYWwgbWVhbnM6
IGF0IHRoaXMKQEAgLTI5NywxMiArMzAyLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBU
aGUgcnVsZXMgZm9yIHRocmVhZGVkIENQUyBmb3JtOgogICAgICAgICAgICAgLy8gCiAgICAgICAg
ICAgICAvLyBIZWFkIHZhcmlhYmxlOiBkZXNjcmliZXMgd2hhdCBpcyBsaXZlIGF0IHRoZSBoZWFk
IG9mIHRoZSBiYXNpYyBibG9jay4KLSAgICAgICAgICAgIC8vIEhlYWQgdmFyaWFibGUgbGlua3Mg
bWF5IHJlZmVyIHRvIEZsdXNoLCBQaGFudG9tTG9jYWwsIFBoaSwgb3IgU2V0QXJndW1lbnREZWZp
bml0ZWx5LgotICAgICAgICAgICAgLy8gU2V0QXJndW1lbnREZWZpbml0ZWx5IG1heSBvbmx5IGFw
cGVhciBpbiB0aGUgcm9vdCBibG9jay4KKyAgICAgICAgICAgIC8vIEhlYWQgdmFyaWFibGUgbGlu
a3MgbWF5IHJlZmVyIHRvIEZsdXNoLCBQaGFudG9tTG9jYWwsIFBoaSwgb3IgU2V0QXJndW1lbnRE
ZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUuCisgICAgICAgICAgICAvLyBTZXRBcmd1bWVudERl
ZmluaXRlbHkvU2V0QXJndW1lbnRNYXliZSBtYXkgb25seSBhcHBlYXIgaW4gdGhlIHJvb3QgYmxv
Y2suCiAgICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gVGFpbCB2YXJpYWJsZTogdGhlIGxh
c3QgdGhpbmcgdGhhdCBoYXBwZW5lZCB0byB0aGUgdmFyaWFibGUgaW4gdGhlIGJsb2NrLgotICAg
ICAgICAgICAgLy8gSXQgbWF5IGJlIGEgRmx1c2gsIFBoYW50b21Mb2NhbCwgR2V0TG9jYWwsIFNl
dExvY2FsLCBTZXRBcmd1bWVudERlZmluaXRlbHksIG9yIFBoaS4KLSAgICAgICAgICAgIC8vIFNl
dEFyZ3VtZW50RGVmaW5pdGVseSBtYXkgb25seSBhcHBlYXIgaW4gdGhlIHJvb3QgYmxvY2suIE5v
dGUgdGhhdCBpZiB0aGVyZSBldmVyCisgICAgICAgICAgICAvLyBJdCBtYXkgYmUgYSBGbHVzaCwg
UGhhbnRvbUxvY2FsLCBHZXRMb2NhbCwgU2V0TG9jYWwsIFNldEFyZ3VtZW50RGVmaW5pdGVseS9T
ZXRBcmd1bWVudE1heWJlLCBvciBQaGkuCisgICAgICAgICAgICAvLyBTZXRBcmd1bWVudERlZmlu
aXRlbHkvU2V0QXJndW1lbnRNYXliZSBtYXkgb25seSBhcHBlYXIgaW4gdGhlIHJvb3QgYmxvY2su
IE5vdGUgdGhhdCBpZiB0aGVyZSBldmVyCiAgICAgICAgICAgICAvLyB3YXMgYSBHZXRMb2NhbCB0
byB0aGUgdmFyaWFibGUsIGFuZCBpdCB3YXMgZm9sbG93ZWQgYnkgUGhhbnRvbUxvY2FscyBhbmQK
ICAgICAgICAgICAgIC8vIEZsdXNoZXMgYnV0IG5vdCBTZXRMb2NhbHMsIHRoZW4gdGhlIHRhaWwg
dmFyaWFibGUgd2lsbCBiZSB0aGUgR2V0TG9jYWwuCiAgICAgICAgICAgICAvLyBUaGlzIHJlZmxl
Y3RzIHRoZSBmYWN0IHRoYXQgeW91IG9ubHkgY2FyZSB0aGF0IHRoZSB0YWlsIHZhcmlhYmxlIGlz
IGEKQEAgLTMxMSwyMiArMzE2LDIzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyB2YXJpYWJs
ZSB3aWxsIGJlIGEgU2V0TG9jYWwgYW5kIG5vdCB0aG9zZSBzdWJzZXF1ZW50IEZsdXNoZXMuCiAg
ICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gQ2hpbGQgb2YgR2V0TG9jYWw6IHRoZSBvcGVy
YXRpb24gdGhhdCB0aGUgR2V0TG9jYWwga2VlcHMgYWxpdmUuIEl0IG1heSBiZQotICAgICAgICAg
ICAgLy8gYSBQaGkgZnJvbSB0aGUgY3VycmVudCBibG9jay4gRm9yIGFyZ3VtZW50cywgaXQgbWF5
IGJlIGEgU2V0QXJndW1lbnREZWZpbml0ZWx5LgorICAgICAgICAgICAgLy8gYSBQaGkgZnJvbSB0
aGUgY3VycmVudCBibG9jay4gRm9yIGFyZ3VtZW50cywgaXQgbWF5IGJlIGEgU2V0QXJndW1lbnRE
ZWZpbml0ZWx5CisgICAgICAgICAgICAvLyBidXQgaXQgY2FuJ3QgYmUgYSBTZXRBcmd1bWVudE1h
eWJlLgogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vIENoaWxkIG9mIFNldExvY2FsOiBt
dXN0IGJlIGEgdmFsdWUgcHJvZHVjaW5nIG5vZGUuCiAgICAgICAgICAgICAvLwogICAgICAgICAg
ICAgLy8gQ2hpbGQgb2YgRmx1c2g6IGl0IG1heSBiZSBhIFBoaSBmcm9tIHRoZSBjdXJyZW50IGJs
b2NrIG9yIGEgU2V0TG9jYWwuIEZvcgotICAgICAgICAgICAgLy8gYXJndW1lbnRzIGl0IG1heSBh
bHNvIGJlIGEgU2V0QXJndW1lbnREZWZpbml0ZWx5LgorICAgICAgICAgICAgLy8gYXJndW1lbnRz
IGl0IG1heSBhbHNvIGJlIGEgU2V0QXJndW1lbnREZWZpbml0ZWx5L1NldEFyZ3VtZW50TWF5YmUu
CiAgICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gQ2hpbGQgb2YgUGhhbnRvbUxvY2FsOiBp
dCBtYXkgYmUgYSBQaGkgZnJvbSB0aGUgY3VycmVudCBibG9jay4gRm9yCi0gICAgICAgICAgICAv
LyBhcmd1bWVudHMgaXQgbWF5IGFsc28gYmUgYSBTZXRBcmd1bWVudERlZmluaXRlbHkuCisgICAg
ICAgICAgICAvLyBhcmd1bWVudHMgaXQgbWF5IGFsc28gYmUgYSBTZXRBcmd1bWVudERlZmluaXRl
bHkvU2V0QXJndW1lbnRNYXliZS4KICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBDaGls
ZHJlbiBvZiBQaGk6IG90aGVyIFBoaXMgaW4gdGhlIHNhbWUgYmFzaWMgYmxvY2ssIG9yIGFueSBv
ZiB0aGUKLSAgICAgICAgICAgIC8vIGZvbGxvd2luZyBmcm9tIHByZWRlY2Vzc29yIGJsb2Nrczog
U2V0TG9jYWwsIFBoaSwgb3IgU2V0QXJndW1lbnREZWZpbml0ZWx5LgorICAgICAgICAgICAgLy8g
Zm9sbG93aW5nIGZyb20gcHJlZGVjZXNzb3IgYmxvY2tzOiBTZXRMb2NhbCwgUGhpLCBvciBTZXRB
cmd1bWVudERlZmluaXRlbHkvU2V0QXJndW1lbnRNYXliZS4KICAgICAgICAgICAgIC8vIFRoZXNl
IGFyZSBjb21wdXRlZCBieSBsb29raW5nIGF0IHRoZSB0YWlsIHZhcmlhYmxlcyBvZiB0aGUgcHJl
ZGVjZXNzb3IgYmxvY2tzCi0gICAgICAgICAgICAvLyBhbmQgZWl0aGVyIHVzaW5nIGl0IGRpcmVj
dGx5IChpZiBpdCdzIGEgU2V0TG9jYWwsIFBoaSwgb3IgU2V0QXJndW1lbnREZWZpbml0ZWx5KSBv
cgorICAgICAgICAgICAgLy8gYW5kIGVpdGhlciB1c2luZyBpdCBkaXJlY3RseSAoaWYgaXQncyBh
IFNldExvY2FsLCBQaGksIG9yIFNldEFyZ3VtZW50RGVmaW5pdGVseS9TZXRBcmd1bWVudE1heWJl
KSBvcgogICAgICAgICAgICAgLy8gbG9hZGluZyB0aGF0IG5vZGVzIGNoaWxkIChpZiBpdCdzIGEg
R2V0TG9jYWwsIFBoYW5vbUxvY2FsLCBvciBGbHVzaCAtIGFsbAotICAgICAgICAgICAgLy8gb2Yg
dGhlc2Ugd2lsbCBoYXZlIGNoaWxkcmVuIHRoYXQgYXJlIFNldExvY2FsLCBQaGksIG9yIFNldEFy
Z3VtZW50RGVmaW5pdGVseSkuCisgICAgICAgICAgICAvLyBvZiB0aGVzZSB3aWxsIGhhdmUgY2hp
bGRyZW4gdGhhdCBhcmUgU2V0TG9jYWwsIFBoaSwgb3IgU2V0QXJndW1lbnREZWZpbml0ZWx5L1Nl
dEFyZ3VtZW50TWF5YmUpLgogICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUt
Pm9wKCkpIHsKICAgICAgICAgICAgIGNhc2UgR2V0TG9jYWw6CkBAIC0zNDYsNiArMzUyLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgICAgICAgICAgY2FzZSBTZXRB
cmd1bWVudE1heWJlOgogICAgICAgICAgICAgICAgIGNhbm9uaWNhbGl6ZVNldChub2RlKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKQEAgLTQyMCw3ICs0MjcsOCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIEFTU0VSVCgKICAgICAgICAgICAgICAgICAgICAg
dmFyaWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldExvY2FsCiAgICAgICAgICAgICAgICAgICAg
IHx8IHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSA9PSBQaGkKLSAgICAgICAgICAgICAgICAgICAg
fHwgdmFyaWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseSk7Cisg
ICAgICAgICAgICAgICAgICAgIHx8IHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSA9PSBTZXRBcmd1
bWVudERlZmluaXRlbHkKKyAgICAgICAgICAgICAgICAgICAgfHwgdmFyaWFibGVJblByZXZpb3Vz
LT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUpOwogICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGlmICghY3VycmVudFBoaS0+Y2hpbGQxKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY3VycmVu
dFBoaS0+Y2hpbGRyZW4uc2V0Q2hpbGQxKEVkZ2UodmFyaWFibGVJblByZXZpb3VzKSk7CkBAIC00
ODMsNiArNDkxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkg
ewogICAgICAgICAgICAgY2FzZSBTZXRMb2NhbDoKICAgICAgICAgICAgIGNhc2UgU2V0QXJndW1l
bnREZWZpbml0ZWx5OgorICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudE1heWJlOgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBGbHVz
aDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZp
c2lvbiAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDYgKzQ1MSw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICBjYXNlIFBoaToKICAgICBjYXNlIFBoYW50b21Mb2Nh
bDoKICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICBjYXNlIFNldEFyZ3VtZW50
TWF5YmU6CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNo
OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCShyZXZpc2lvbiAyNDQx
OTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzMsNyArMTczLDcgQEAgZW51bSBHcmFwaEZvcm0gewogICAgIC8vIG1vc3QgbGlr
ZWx5KSB0aGVuIGl0IGltcGxpZXMgdGhhdCB0aGUgbG9jYWwgaXMgc3RpbGwgbGl2ZSBidXQgdGhh
dCBpdCBuZWVkCiAgICAgLy8gbm90IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sgbmVjZXNzYXJpbHku
IFRoaXMgaW1wbGllcyB0aGF0IFBoYW50b20gY2FuCiAgICAgLy8gcmVmZXJlbmNlIG5vZGVzIHRo
YXQgaGF2ZSBubyByZXN1bHQsIGFzIGxvbmcgYXMgdGhvc2Ugbm9kZXMgYXJlIHZhbGlkCi0gICAg
Ly8gR2V0TG9jYWwgY2hpbGRyZW4gKGkuZS4gUGhpLCBTZXRMb2NhbCwgU2V0QXJndW1lbnREZWZp
bml0ZWx5KS4KKyAgICAvLyBHZXRMb2NhbCBjaGlsZHJlbiAoaS5lLiBQaGksIFNldExvY2FsLCBT
ZXRBcmd1bWVudERlZmluaXRlbHksIFNldEFyZ3VtZW50TWF5YmUpLgogICAgIC8vCiAgICAgLy8g
TG9hZFN0b3JlIGZvcm0gYWxzbyBpbXBsaWVzIHRoYXQgUGhpcyBuZWVkIG5vdCBoYXZlIGNoaWxk
cmVuLiBCeSBkZWZhdWx0LAogICAgIC8vIHRoZXkgZW5kIHVwIGhhdmluZyBubyBjaGlsZHJlbiBp
ZiB5b3UgZW50ZXIgTG9hZFN0b3JlIHVzaW5nIHRoZSBjYW5vbmljYWwKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzks
NiArNzksNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBGbHVzaDoKICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICBjYXNlIFNldEFyZ3VtZW50RGVm
aW5pdGVseToKKyAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CiAgICAgY2FzZSBBcml0aEJpdE5v
dDoKICAgICBjYXNlIEFyaXRoQml0QW5kOgogICAgIGNhc2UgQXJpdGhCaXRPcjoKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjQ0
MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjMyNSw2ICsyMzI1LDcgQEAgcHJpdmF0ZToKICNpZiAhQVNTRVJUX0RJ
U0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUg
dGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgogICAg
ICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToKKyAgICAgICAgY2FzZSBTZXRBcmd1bWVu
dE1heWJlOgogICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CiAgICAgICAgIGNhc2UgTGF6eUpTQ29u
c3RhbnQ6CiAgICAgICAgIGNhc2UgRG91YmxlQ29uc3RhbnQ6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkocmV2
aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJz
dHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQCBib29sIElu
UGxhY2VBYnN0cmFjdFN0YXRlOjplbmRCYXNpY0Jsb2NrCiAgICAgICAgICAgICBzd2l0Y2ggKG5v
ZGUtPm9wKCkpIHsKICAgICAgICAgICAgIGNhc2UgUGhpOgogICAgICAgICAgICAgY2FzZSBTZXRB
cmd1bWVudERlZmluaXRlbHk6CisgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CiAg
ICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAgICAgICAgIGNhc2UgRmx1c2g6IHsK
ICAgICAgICAgICAgICAgICAvLyBUaGUgYmxvY2sgdHJhbnNmZXJzIHRoZSB2YWx1ZSBmcm9tIGhl
YWQgdG8gdGFpbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTGl2ZUNhdGNo
VmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmNwcAko
cmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMaXZlQ2F0
Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDcg
KzE5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBjdXJyZW50RXhjZXB0aW9uSGFuZGxl
ciA9IG5ld0hhbmRsZXI7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChjdXJyZW50
RXhjZXB0aW9uSGFuZGxlciAmJiAobm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCBub2RlLT5vcCgp
ID09IFNldEFyZ3VtZW50RGVmaW5pdGVseSkpIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50RXhj
ZXB0aW9uSGFuZGxlciAmJiAobm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCBub2RlLT5vcCgpID09
IFNldEFyZ3VtZW50RGVmaW5pdGVseSB8fCBub2RlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUp
KSB7CiAgICAgICAgICAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBu
b2RlLT5vcmlnaW4uc2VtYW50aWMuaW5saW5lQ2FsbEZyYW1lKCk7CiAgICAgICAgICAgICAgICAg
aWYgKGlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgICAgICAgICAgc2VlbklubGluZUNhbGxG
cmFtZXMuYWRkKGlubGluZUNhbGxGcmFtZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcAko
cmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFs
Rmx1c2hJbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmltb3JkaWFsU2V0QXJndW1lbnQg
PSBub2RlID09IGl0ZXItPnZhbHVlW25vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpXTsKICAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBTZXRMb2Nh
bCB8fCAobm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgJiYgIWlzUHJpbW9yZGlh
bFNldEFyZ3VtZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFNldExv
Y2FsIHx8IChub2RlLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseSAmJiAhaXNQcmltb3Jk
aWFsU2V0QXJndW1lbnQpIHx8IG5vZGUtPm9wKCkgPT0gU2V0QXJndW1lbnRNYXliZSkgewogICAg
ICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCA9IG5vZGUtPmxvY2FsKCk7
CiAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogZmx1c2hBY2Nlc3NEYXRh
ID0gY3VycmVudEJsb2NrQWNjZXNzRGF0YS5vcGVyYW5kKG9wZXJhbmQpOwogICAgICAgICAgICAg
ICAgICAgICBpZiAoIWZsdXNoQWNjZXNzRGF0YSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6
CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT52YXJpYWJsZXNBdFRh
aWwubnVtYmVyT2ZMb2NhbHMoKTsgaSsrKSB7CiAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIg
b3BlcmFuZCA9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpOwotICAgICAgICAgICAgREZHX0FT
U0VSVChtX2dyYXBoLCBudWxscHRyLCBpbml0aWFsQWNjZXNzTm9kZXMub3BlcmFuZChvcGVyYW5k
KS0+b3AoKSA9PSBGbHVzaCk7IC8vIFdlIHNob3VsZCBoYXZlIGluc2VydGVkIGEgRmx1c2ggYmVm
b3JlIGFueSBTZXRMb2NhbC9TZXRBcmd1bWVudERlZmluaXRlbHkgZm9yIHRoZSBsb2NhbCB0aGF0
IHdlIGFyZSBhbmFseXppbmcgbm93LgorICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBu
dWxscHRyLCBpbml0aWFsQWNjZXNzTm9kZXMub3BlcmFuZChvcGVyYW5kKS0+b3AoKSA9PSBGbHVz
aCk7IC8vIFdlIHNob3VsZCBoYXZlIGluc2VydGVkIGEgRmx1c2ggYmVmb3JlIGFueSBTZXRMb2Nh
bC9TZXRBcmd1bWVudERlZmluaXRlbHkvU2V0QXJndW1lbnRNYXliZSBmb3IgdGhlIGxvY2FsIHRo
YXQgd2UgYXJlIGFuYWx5emluZyBub3cuCiAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEq
IGFjY2Vzc0RhdGEgPSBpbml0aWFsQWNjZXNzRGF0YS5vcGVyYW5kKG9wZXJhbmQpOwogICAgICAg
ICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBudWxscHRyLCBhY2Nlc3NEYXRhKTsKICAgICAgICAg
ICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDAsIFNwZWNOb25lLCAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDgsNiArNDgsNyBAQCBFeGl0TW9kZSBtYXlFeGl0SW1wbChHcmFwaCYgZ3JhcGgsIE5vZGUqCiAg
ICAgLy8gY29uc2VydmF0aXZlIHdoZW4gbWFpbnRhaW5pbmcgdGhpcyBsaXN0LCBiZWNhdXNlIGFk
ZGluZyBuZXcgbm9kZSB0eXBlcyB0byBpdCBkb2Vzbid0CiAgICAgLy8gZ2VuZXJhbGx5IG1ha2Ug
dGhpbmdzIGEgbG90IGJldHRlciBidXQgaXQgbWlnaHQgaW50cm9kdWNlIHN1YnRsZSBidWdzLgog
ICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgIGNhc2UgU2V0QXJndW1lbnRNYXli
ZToKICAgICBjYXNlIEpTQ29uc3RhbnQ6CiAgICAgY2FzZSBEb3VibGVDb25zdGFudDoKICAgICBj
YXNlIExhenlKU0NvbnN0YW50OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
Y3BwCShyZXZpc2lvbiAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw3IEBAIGJvb2wgTm9kZTo6aGFzVmFy
aWFibGVBY2Nlc3NEYXRhKEdyYXBoJiAKICAgICBjYXNlIEdldExvY2FsOgogICAgIGNhc2UgU2V0
TG9jYWw6CiAgICAgY2FzZSBTZXRBcmd1bWVudERlZmluaXRlbHk6CisgICAgY2FzZSBTZXRBcmd1
bWVudE1heWJlOgogICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAg
ICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAzLDEwIEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVja1RpZXJVcEFuZE9TUkVudGVyLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tUaWVyVXBBdFJldHVybiwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIFwKLSAgICAvKiBNYXJrZXIgZm9yIGFuIGFyZ3VtZW50IGJlaW5n
IHNldCBhdCB0aGUgcHJvbG9ndWUgb2YgYSBmdW5jdGlvbi4gKi9cCisgICAgLyogTWFya2VyIGZv
ciBhbiBhcmd1bWVudCBiZWluZyBzZXQgYXQgdGhlIHByb2xvZ3VlIG9mIGEgZnVuY3Rpb24uIFRo
ZSBhcmd1bWVudCBpcyBndWFyYW50ZWVkIHRvIGJlIHNldCBhZnRlciB0aGlzIG5vZGUuICovXAog
ICAgIG1hY3JvKFNldEFyZ3VtZW50RGVmaW5pdGVseSwgMCkgXAorICAgIC8qIEEgbWFya2VyIGxp
a2UgdGhlIGFib3ZlIHRoYXQgd2UgdXNlIHRvIHRyYWNrIHZhcmlhYmxlIGxpdmVuZXNzIGFuZCBP
U1IgZXhpdCBzdGF0ZS4gSG93ZXZlciwgaXQncyBub3QgZ3VhcmFudGVlZCB0byBiZSBzZXQuIFRv
IHZlcmlmeSBpdCB3YXMgc2V0LCB5b3UnZCBuZWVkIHRvIGNoZWNrIHRoZSBhY3R1YWwgYXJndW1l
bnQgbGVuZ3RoLiBXZSB1c2UgdGhpcyBmb3IgdmFyYXJncyB3aGVuIHdlJ3JlIHVuc3VyZSBob3cg
bWFueSBhcmd1bWVudCBtYXkgYWN0dWFsbHkgZW5kIHVwIG9uIHRoZSBzdGFjay4gKi9cCisgICAg
bWFjcm8oU2V0QXJndW1lbnRNYXliZSwgMCkgXAogICAgIFwKICAgICAvKiBNYXJrZXIgb2YgbG9j
YXRpb24gaW4gdGhlIElSIHdoZXJlIHdlIG1heSBwb3NzaWJseSBwZXJmb3JtIGp1bXAgcmVwbGFj
ZW1lbnQgdG8gKi9cCiAgICAgLyogaW52YWxpZGF0ZSB0aGlzIGNvZGUgYmxvY2suICovXApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2Vy
dGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcs
NiArMTE3LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgY2FzZSBHZXRMb2NhbDoKICAgICAg
ICAgICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgICAgICAgICAgY2FzZSBTZXRB
cmd1bWVudE1heWJlOgogICAgICAgICAgICAgICAgIG1fdmFsdWVzLm9wZXJhbmQobm9kZS0+bG9j
YWwoKSkgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjUyLDYgKzEyNTIsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IFByb2ZpbGVDb250cm9sRmxvdzoKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAg
IGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5
YmU6CiAgICAgICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgogICAgICAgICBjYXNlIENoZWNrU3Ry
dWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0
NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYxLDYgKzI2MSw4IEBAIHB1YmxpYzoKICAgICAgICAg
Ly8gICAgIHZhbHVlRm9yT3BlcmFuZC4KICAgICAgICAgLy8KICAgICAgICAgLy8gICAtIFNldEFy
Z3VtZW50RGVmaW5pdGVseSBpcyByZW1vdmVkLiBOb3RlIHRoYXQgR2V0U3RhY2sgbm9kZXMgaGF2
ZSBhbHJlYWR5IGJlZW4gaW5zZXJ0ZWQuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgLSBTZXRB
cmd1bWVudE1heWJlIGlzIHJlbW92ZWQuIEl0IHNob3VsZCBub3QgaGF2ZSBhbnkgZGF0YSBmbG93
IHVzZXMuCiAgICAgICAgIE9wZXJhbmRzPE5vZGUqPiB2YWx1ZUZvck9wZXJhbmQoT3BlcmFuZHNM
aWtlLCBtX2dyYXBoLmJsb2NrKDApLT52YXJpYWJsZXNBdEhlYWQpOwogICAgICAgICBmb3IgKEJh
c2ljQmxvY2sqIGJsb2NrIDogbV9ncmFwaC5ibG9ja3NJblByZU9yZGVyKCkpIHsKICAgICAgICAg
ICAgIHZhbHVlRm9yT3BlcmFuZC5jbGVhcigpOwpAQCAtMzkzLDYgKzM5NSwxMSBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAorICAgICAg
ICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZTogeworICAgICAgICAgICAgICAgICAgICBu
b2RlLT5yZW1vdmUobV9ncmFwaCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9u
IDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNiArMTk4LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9j
YWw6CiAgICAgY2FzZSBTZXRBcmd1bWVudERlZmluaXRlbHk6CisgICAgY2FzZSBTZXRBcmd1bWVu
dE1heWJlOgogICAgIGNhc2UgQXJpdGhCaXROb3Q6CiAgICAgY2FzZSBBcml0aEJpdEFuZDoKICAg
ICBjYXNlIEFyaXRoQml0T3I6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5NzMsNiArMTk3Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICB9CiAKICAgICBjYXNlIFNldEFyZ3VtZW50RGVmaW5pdGVseToK
KyAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcDsg
aXQganVzdCBtYXJrcyB0aGUgZmFjdCB0aGF0IHRoZSBhcmd1bWVudCBpcyBiZWluZyB1c2VkLgog
ICAgICAgICAvLyBCdXQgaXQgbWF5IGJlIHByb2ZpdGFibGUgdG8gdXNlIHRoaXMgYXMgYSBob29r
IHRvIHJ1biBzcGVjdWxhdGlvbiBjaGVja3MKICAgICAgICAgLy8gb24gYXJndW1lbnRzLCB0aGVy
ZWJ5IGFsbG93aW5nIHVzIHRvIHRyaXZpYWxseSBlbGltaW5hdGUgc3VjaCBjaGVja3MgaWYKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAkocmV2aXNpb24gMjQ0MTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3Miw2ICsyMDcyLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNh
c2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZToKICAg
ICAgICAgLy8gVGhpcyBpcyBhIG5vLW9wOyBpdCBqdXN0IG1hcmtzIHRoZSBmYWN0IHRoYXQgdGhl
IGFyZ3VtZW50IGlzIGJlaW5nIHVzZWQuCiAgICAgICAgIC8vIEJ1dCBpdCBtYXkgYmUgcHJvZml0
YWJsZSB0byB1c2UgdGhpcyBhcyBhIGhvb2sgdG8gcnVuIHNwZWN1bGF0aW9uIGNoZWNrcwogICAg
ICAgICAvLyBvbiBhcmd1bWVudHMsIHRoZXJlYnkgYWxsb3dpbmcgdXMgdG8gdHJpdmlhbGx5IGVs
aW1pbmF0ZSBzdWNoIGNoZWNrcyBpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDI0NDE5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTQsNyArNDk0LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlLCBlZGdlKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGVkZ2UtPm9wKCkgPT0gU2V0TG9jYWwKICAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IGVkZ2UtPm9wKCkgPT0gU2V0QXJndW1lbnREZWZpbml0ZWx5Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB8fCBlZGdlLT5vcCgpID09IEZsdXNoCisgICAgICAgICAgICAgICAgICAg
ICAgICB8fCBlZGdlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUKICAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IGVkZ2UtPm9wKCkgPT0gUGhpKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgIGlmIChwaGlzSW5UaGlzQmxvY2suY29udGFpbnMoZWRnZS5ub2RlKCkp
KQpAQCAtNTA1LDcgKzUwNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG5vZGUsIGVkZ2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkZ2UtPm9wKCkg
PT0gU2V0TG9jYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlZGdlLT5vcCgpID09
IFNldEFyZ3VtZW50RGVmaW5pdGVseQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVk
Z2UtPm9wKCkgPT0gRmx1c2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVkZ2Ut
Pm9wKCkgPT0gU2V0QXJndW1lbnRNYXliZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CkBA
IC01MzcsNiArNTM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bG9jYWwsIGJsb2NrLT5wcmVkZWNlc3NvcnNba10sIHByZXZOb2RlKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmV2Tm9kZS0+b3AoKSA9PSBTZXRMb2NhbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHx8IHByZXZOb2RlLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHByZXZOb2RlLT5vcCgpID09IFNldEFyZ3Vt
ZW50TWF5YmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmV2Tm9kZS0+b3AoKSA9
PSBQaGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZOb2RlID09IGVkZ2Uubm9k
ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwpAQCAtNjY2
LDYgKzY2Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLm1f
Zm9ybSA9PSBUaHJlYWRlZENQUykgewogICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUo
KG5vZGUsIGJsb2NrKSwgZ2V0TG9jYWxQb3NpdGlvbnMub3BlcmFuZChub2RlLT5sb2NhbCgpKSA9
PSBub3RTZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUsIGJsb2Nr
KSwgISFub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgo
bm9kZSwgYmxvY2spLCBub2RlLT5jaGlsZDEoKS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRl
bHkgfHwgbm9kZS0+Y2hpbGQxKCktPm9wKCkgPT0gUGhpKTsKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICBnZXRMb2NhbFBvc2l0aW9ucy5vcGVyYW5kKG5vZGUtPmxv
Y2FsKCkpID0gaTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC02ODIsNiArNjg0LDIw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGdldExvY2FsUG9zaXRpb25zLm9wZXJh
bmQobm9kZS0+bG9jYWwoKSkgPSBub3RTZXQ7CiAgICAgICAgICAgICAgICAgICAgIHNldExvY2Fs
UG9zaXRpb25zLm9wZXJhbmQobm9kZS0+bG9jYWwoKSkgPSBub3RTZXQ7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZToKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBGbHVzaDoKKyAg
ICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KG1fZ3JhcGgubV9mb3JtID09IFRocmVhZGVkQ1BTKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBWQUxJREFURSgobm9kZSwgYmxvY2spLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5jaGlsZDEoKS0+b3AoKSA9PSBQaGkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
fCBub2RlLT5jaGlsZDEoKS0+b3AoKSA9PSBTZXRMb2NhbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IG5vZGUtPmNoaWxkMSgpLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG5vZGUtPmNoaWxkMSgpLT5vcCgpID09IFNl
dEFyZ3VtZW50TWF5YmUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gUGhhbnRvbUxvY2FsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChu
b2RlLCBibG9jayksIG5vZGUtPmNoaWxkMSgpLT5vcCgpICE9IFNldEFyZ3VtZW50TWF5YmUpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KQEAgLTY5OSw2ICs3MTUsNTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgYmxvY2ssIGdldExvY2FsUG9zaXRpb25zLCBzZXRMb2NhbFBvc2l0aW9ucywgdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoaSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAg
aWYgKG1fZ3JhcGgubV9mb3JtID09IFRocmVhZGVkQ1BTKSB7CisgICAgICAgICAgICBWZWN0b3I8
Tm9kZSo+IHdvcmtsaXN0OworICAgICAgICAgICAgSGFzaFNldDxOb2RlKj4gc2VlbjsKKyAgICAg
ICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX2dyYXBoLmJsb2Nrc0luTmF0dXJhbE9y
ZGVyKCkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgOiAqYmxvY2spIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0TG9jYWwgfHwgbm9kZS0+b3Ao
KSA9PSBQaGFudG9tTG9jYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtsaXN0LmFw
cGVuZChub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gc2Vl
bi5hZGQobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSwgYmxv
Y2spLCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdoaWxlICh3b3JrbGlz
dC5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gd29ya2xpc3QudGFrZUxh
c3QoKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlIFBoYW50b21Mb2NhbDoKKyAgICAgICAgICAgICAgICBjYXNlIEdldExvY2FsOiB7
CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIGNoaWxkID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgp
OworICAgICAgICAgICAgICAgICAgICBpZiAoc2Vlbi5hZGQoY2hpbGQpLmlzTmV3RW50cnkpCisg
ICAgICAgICAgICAgICAgICAgICAgICB3b3JrbGlzdC5hcHBlbmQoY2hpbGQpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2Fz
ZSBQaGk6IHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
Z3JhcGgubnVtQ2hpbGRyZW4obm9kZSk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
RWRnZSBlZGdlID0gbV9ncmFwaC5jaGlsZChub2RlLCBpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghZWRnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWVuLmFkZChlZGdlLm5vZGUoKSkuaXNOZXdFbnRy
eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrbGlzdC5hcHBlbmQoZWRnZS5ub2Rl
KCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFNldExvY2FsOgorICAgICAg
ICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5OgorICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50TWF5YmU6CisgICAgICAg
ICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgISJTaG91bGQgbm90IHJlYWNoIFNldEFyZ3Vt
ZW50TWF5YmUuIEdldExvY2FsIHRoYXQgaGFzIGRhdGEgZmxvdyB0aGF0IHJlYWNoZXMgYSBTZXRB
cmd1bWVudE1heWJlIGlzIGludmFsaWQgSVIuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRF
KChub2RlKSwgISJVbmV4ZWNwdGVkIG5vZGUgdHlwZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogICAgIAogICAgIHZvaWQgdmFsaWRhdGVTU0EoKQpAQCAtNzQwLDYgKzgwMiw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRMb2NhbDoKICAgICAgICAgICAgICAgICBjYXNl
IFNldExvY2FsOgogICAgICAgICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnREZWZpbml0ZWx5Ogor
ICAgICAgICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnRNYXliZToKICAgICAgICAgICAgICAgICBj
YXNlIFBoYW50b206CiAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgISJiYWQg
bm9kZSB0eXBlIGZvciBTU0EiKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lv
biAyNDQxOTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9j
YWw6CiAgICAgY2FzZSBTZXRBcmd1bWVudERlZmluaXRlbHk6CisgICAgY2FzZSBTZXRBcmd1bWVu
dE1heWJlOgogICAgIGNhc2UgUmV0dXJuOgogICAgIGNhc2UgQXJpdGhCaXROb3Q6CiAgICAgY2Fz
ZSBBcml0aEJpdEFuZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>