<?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>27634</bug_id>
          
          <creation_ts>2009-07-23 17:59:53 -0700</creation_ts>
          <short_desc>Give toJS a JSDOMGlobalObject parameter</short_desc>
          <delta_ts>2022-08-20 09:55:33 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>27566</dependson>
    
    <dependson>27588</dependson>
    
    <dependson>27640</dependson>
    
    <dependson>27641</dependson>
    
    <dependson>27643</dependson>
    
    <dependson>27644</dependson>
    
    <dependson>27645</dependson>
    
    <dependson>27661</dependson>
    
    <dependson>27741</dependson>
    
    <dependson>27745</dependson>
          <blocked>27088</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>zan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134336</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 17:59:53 -0700</bug_when>
    <thetext>Give toJS a JSDOMGlobalObject parameter

This completes the plumbing, and fixes almost all of our &quot;wrong prototype&quot; issues covered by bug 27088.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134337</commentid>
    <comment_count>1</comment_count>
      <attachid>33398</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 18:01:01 -0700</bug_when>
    <thetext>Created attachment 33398
Compiles, but crashes fast/dom/gc-6.html.


---
 74 files changed, 747 insertions(+), 581 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134338</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 18:01:49 -0700</bug_when>
    <thetext>This change is crazy-huge.  I need to find a smart way to break it down into smaller chunks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134340</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 18:07:28 -0700</bug_when>
    <thetext>I wonder if we ever forcefully tear-down global objects.  That could explain the 0xbbadbeef I was seeing hit in some lookup table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134341</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 18:15:13 -0700</bug_when>
    <thetext>In the crash I&apos;m seeing, this call:

Structure* getCachedDOMStructure(JSDOMGlobalObject* globalObject, const ClassInfo* classInfo)
{
    JSDOMStructureMap&amp; structures = globalObject-&gt;structures();
    return structures.get(classInfo).get(); // CRASHING LINE
}

structures is junk.

I&apos;m not sure when structures would be junk.

In gc-6.html, the frame is navigated, but the global object should still be alive:

function doit()
{
    var frame = document.getElementById(&quot;frame&quot;);
    spanB = frame.contentDocument.getElementById(&quot;span-B&quot;);
    spanB.customProperty = &quot;B&quot;;
    frame.onload = frameLoaded;    
    frame.src = &quot;about:blank&quot;;    
}

frameLoaded() does a GC and then does:

    output.innerHTML += spanB.parentNode + &quot;&lt;BR&gt;&quot;;

(which is where we&apos;re crashing).

I expect that now that spanB.parentNode would be (correctly) trying to use the prototype chain off of the previous window.  Maybe somehow we&apos;ve destroyed that previous window?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134348</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 19:13:50 -0700</bug_when>
    <thetext>OK.  I&apos;ve verified that the subframe&apos;s global object is getting collected, even though the JSHTMLSpanElement is still alive with a mark() function which i know is marking the frame&apos;s global object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134349</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 19:16:50 -0700</bug_when>
    <thetext>I found the bug. :(

JSNode::mark() is calling         DOMObject::mark();  direclty instead of DOMObjectWithGlobalPointer::mark()!

At least I think so.  Will fix tomrorow!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134368</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 22:44:07 -0700</bug_when>
    <thetext>Fixing the various DOMObject::mark() calls to DOMObjectWithGlobalPointer::mark() calls did not fix the crash. :(  Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134369</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 22:50:02 -0700</bug_when>
    <thetext>Actually, now I&quot;m just hitting an ASSERT in gc-6.

I&quot;m hitting this ASSERT:
        DOMObjectWithGlobalPointer(PassRefPtr&lt;JSC::Structure&gt; structure, JSDOMGlobalObject* globalObject)
            : DOMObject(structure)
            , m_globalObject(globalObject)
        {
            ASSERT(globalObject-&gt;scriptExecutionContext());
        }

Caused by this FIXME:
Document* DOMWindow::document() const
{
    // FIXME: This function shouldn&apos;t need a frame to work.
    if (!m_frame)
        return 0;

I&apos;ll comment out the ASSERT for now.  DOMWindow should always be able to reach the Document!  Just like the Document should always be able to reach the JSDOMWindow.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134373</commentid>
    <comment_count>9</comment_count>
      <attachid>33407</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 23:04:32 -0700</bug_when>
    <thetext>Created attachment 33407
Fully working patch


---
 78 files changed, 764 insertions(+), 593 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134395</commentid>
    <comment_count>10</comment_count>
      <attachid>33407</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 23:33:31 -0700</bug_when>
    <thetext>Comment on attachment 33407
Fully working patch

This patch is ready for review.  I just figure it&apos;s large enough no one will dare.  Feel welcome to make comments or r+/r- however :)  I will attempt to split it up tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134396</commentid>
    <comment_count>11</comment_count>
      <attachid>33407</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 23:34:05 -0700</bug_when>
    <thetext>Comment on attachment 33407
Fully working patch

Hum.. Nevermind.  I havne&apos; tadded ChangeLogs, so it&apos;s not really ready. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134496</commentid>
    <comment_count>12</comment_count>
      <attachid>33407</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 03:39:50 -0700</bug_when>
    <thetext>Comment on attachment 33407
Fully working patch

Most of this patch has been taken care of by sub-bugs.  I need to write a bunch more tests and upload a new copy with the remaining bits tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134629</commentid>
    <comment_count>13</comment_count>
      <attachid>33462</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-24 12:35:08 -0700</bug_when>
    <thetext>Created attachment 33462
Remaining changes, mostly needs a few tests


---
 29 files changed, 105 insertions(+), 99 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174054</commentid>
    <comment_count>14</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-12-21 13:02:32 -0800</bug_when>
    <thetext>Any progress here Eric?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174646</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-23 13:11:11 -0800</bug_when>
    <thetext>This patch is correct, it just needs tests.  The testing will take a little effort because it has to be x-frame, making very specific calls and in some cases may need to be careful that the calls aren&apos;t already cached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175600</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-29 09:40:09 -0800</bug_when>
    <thetext>I haven&apos;t looked at this bug in a long time, no.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809229</commentid>
    <comment_count>17</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-17 03:15:23 -0800</bug_when>
    <thetext>The JSDOMGlobalObject parameter seems to now be present in every toJS declaration and implementation. Can this be closed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892619</commentid>
    <comment_count>18</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-08-20 00:43:23 -0700</bug_when>
    <thetext>rniwa@webkit.org - All dependent bugs are closed? Is this patch needed still and have to rebase? or Webkit is now different path and this is WONTFIX. Appreciate if you can confirm. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892657</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-08-20 09:55:33 -0700</bug_when>
    <thetext>We don&apos;t need this bug holding an obsolete patch, but should check bug 27088 which tracks the observable issue. Also, yes, it does look like all of this has been done over the years.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33398</attachid>
            <date>2009-07-23 18:01:01 -0700</date>
            <delta_ts>2009-07-23 23:04:29 -0700</delta_ts>
            <desc>Compiles, but crashes fast/dom/gc-6.html.</desc>
            <filename>bug-27634-20090723180101.patch</filename>
            <type>text/plain</type>
            <size>177155</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1v
YmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjBmMTNkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjkgQEAKK01ha2Ugc3VyZSBwcm90b3R5cGVzIGFyZSBzZXQgdXAgdXNpbmcgdGhlIHdpbmRvdyBh
IHByb3BlcnR5IGNhbWUgZnJvbSwgaW5zdGVhZCBvZiB0aGUgbGV4aWNhbCBnbG9iYWwgb2JqZWN0
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAobmV3IGlubmVyLkF1ZGlv
KS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5BdWRpbykuY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuRE9NUGFyc2VyKS5pc0lubmVyIGlzIHRydWUK
K1BBU1MgKG5ldyBpbm5lci5ET01QYXJzZXIpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyAobmV3IGlubmVyLkltYWdlKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5J
bWFnZSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuTWVzc2Fn
ZUNoYW5uZWwpLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLk1lc3NhZ2VDaGFubmVs
KS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5PcHRpb24pLmlz
SW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLk9wdGlvbikuY29uc3RydWN0b3IuaXNJbm5l
ciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuV2ViS2l0Q1NTTWF0cml4KS5pc0lubmVyIGlzIHRy
dWUKK1BBU1MgKG5ldyBpbm5lci5XZWJLaXRDU1NNYXRyaXgpLmNvbnN0cnVjdG9yLmlzSW5uZXIg
aXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLldlYktpdFBvaW50KS5pc0lubmVyIGlzIHRydWUKK1BB
U1MgKG5ldyBpbm5lci5XZWJLaXRQb2ludCkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQ
QVNTIChuZXcgaW5uZXIuWE1MSHR0cFJlcXVlc3QpLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3
IGlubmVyLlhNTEh0dHBSZXF1ZXN0KS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1Mg
KG5ldyBpbm5lci5YTUxTZXJpYWxpemVyKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5l
ci5YTUxTZXJpYWxpemVyKS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBp
bm5lci5YUGF0aEV2YWx1YXRvcikuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuWFBh
dGhFdmFsdWF0b3IpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQxNWRiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5odG1s
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAppbmRleCBhZWFiMmEzLi5jZTM2OGU3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC00LDI0NiArNCwyNDYgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogCiBGQUlMIEFycmF5IGZyb20gaW5uZXIuY29uc29sZS5wcm9maWxlcwotRkFJ
TCBBdHRyIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAKLUZB
SUwgQXR0ckNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRy
aWJ1dGVzLjAuY29uc3RydWN0b3IKLUZBSUwgQXR0clByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLl9fcHJvdG9fXwotRkFJTCBCYXJJbmZvIGZy
b20gaW5uZXIubWVudWJhcgotRkFJTCBCYXJJbmZvUHJvdG90eXBlIGZyb20gaW5uZXIubWVudWJh
ci5fX3Byb3RvX18KK1BBU1MgQXR0ciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
YXR0cmlidXRlcy4wCitQQVNTIEF0dHJDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLmNvbnN0cnVjdG9yCitQQVNTIEF0dHJQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5fX3Byb3RvX18K
K1BBU1MgQmFySW5mbyBmcm9tIGlubmVyLm1lbnViYXIKK1BBU1MgQmFySW5mb1Byb3RvdHlwZSBm
cm9tIGlubmVyLm1lbnViYXIuX19wcm90b19fCiBGQUlMIEJvb2xlYW4gZnJvbSBpbm5lci5vZmZz
Y3JlZW5CdWZmZXJpbmcKLUZBSUwgQ1NTUnVsZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5zdHls
ZVNoZWV0cy4wLmNzc1J1bGVzCi1GQUlMIENTU1J1bGVMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLnJ1bGVzLmNvbnN0cnVjdG9yCi1GQUlMIENTU1J1bGVM
aXN0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5jc3NSdWxlcy5f
X3Byb3RvX18KLUZBSUwgQ1NTU3R5bGVEZWNsYXJhdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LnNj
cmlwdHMuMC5zdHlsZQotRkFJTCBDU1NTdHlsZURlY2xhcmF0aW9uQ29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnN0eWxlLmNvbnN0cnVjdG9yCi1GQUlMIENTU1N0
eWxlRGVjbGFyYXRpb25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAuc3R5
bGUuX19wcm90b19fCi1GQUlMIENTU1N0eWxlU2hlZXQgZnJvbSBpbm5lci5kb2N1bWVudC5zdHls
ZVNoZWV0cy4wCi1GQUlMIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LnN0eWxlU2hlZXRzLjAuY29uc3RydWN0b3IKLUZBSUwgQ1NTU3R5bGVTaGVldFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAuX19wcm90b19fCi1GQUlMIENoYXJh
Y3RlckRhdGFQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJp
YnV0ZXMuMC5sYXN0Q2hpbGQuX19wcm90b19fLl9fcHJvdG9fXwotRkFJTCBDb2xsZWN0aW9uIGZy
b20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0KLUZBSUwgQ29uc29sZSBmcm9tIGlubmVy
LmNvbnNvbGUKLUZBSUwgQ29uc29sZVByb3RvdHlwZSBmcm9tIGlubmVyLmNvbnNvbGUuX19wcm90
b19fCi1GQUlMIERPTUFwcGxpY2F0aW9uQ2FjaGUgZnJvbSBpbm5lci5hcHBsaWNhdGlvbkNhY2hl
Ci1GQUlMIERPTUFwcGxpY2F0aW9uQ2FjaGVQcm90b3R5cGUgZnJvbSBpbm5lci5hcHBsaWNhdGlv
bkNhY2hlLl9fcHJvdG9fXwotRkFJTCBET01JbXBsZW1lbnRhdGlvbiBmcm9tIGlubmVyLmRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uCi1GQUlMIERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jb25zdHJ1Y3RvcgotRkFJTCBET01JbXBs
ZW1lbnRhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLl9f
cHJvdG9fXworUEFTUyBDU1NSdWxlTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRz
LjAuY3NzUnVsZXMKK1BBU1MgQ1NTUnVsZUxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LnN0eWxlU2hlZXRzLjAucnVsZXMuY29uc3RydWN0b3IKK1BBU1MgQ1NTUnVsZUxpc3RQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLmNzc1J1bGVzLl9fcHJvdG9f
XworUEFTUyBDU1NTdHlsZURlY2xhcmF0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4w
LnN0eWxlCitQQVNTIENTU1N0eWxlRGVjbGFyYXRpb25Db25zdHJ1Y3RvciBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuc3R5bGUuY29uc3RydWN0b3IKK1BBU1MgQ1NTU3R5bGVEZWNs
YXJhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5zdHlsZS5fX3By
b3RvX18KK1BBU1MgQ1NTU3R5bGVTaGVldCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRz
LjAKK1BBU1MgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5
bGVTaGVldHMuMC5jb25zdHJ1Y3RvcgorUEFTUyBDU1NTdHlsZVNoZWV0UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18KK1BBU1MgQ2hhcmFjdGVyRGF0
YVByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4w
Lmxhc3RDaGlsZC5fX3Byb3RvX18uX19wcm90b19fCitQQVNTIENvbGxlY3Rpb24gZnJvbSBpbm5l
ci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybQorUEFTUyBDb25zb2xlIGZyb20gaW5uZXIuY29uc29s
ZQorUEFTUyBDb25zb2xlUHJvdG90eXBlIGZyb20gaW5uZXIuY29uc29sZS5fX3Byb3RvX18KK1BB
U1MgRE9NQXBwbGljYXRpb25DYWNoZSBmcm9tIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUKK1BBU1Mg
RE9NQXBwbGljYXRpb25DYWNoZVByb3RvdHlwZSBmcm9tIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUu
X19wcm90b19fCitQQVNTIERPTUltcGxlbWVudGF0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24KK1BBU1MgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yCitQQVNTIERPTUltcGxlbWVudGF0
aW9uUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uX19wcm90b19f
CiBQQVNTIERPTVdpbmRvdyBmcm9tIGlubmVyCiBQQVNTIERPTVdpbmRvd1Byb3RvdHlwZSBmcm9t
IGlubmVyLl9fcHJvdG9fXwotRkFJTCBEYXRhR3JpZENvbHVtbkxpc3QgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29sdW1ucwotRkFJTCBEYXRhR3JpZENv
bHVtbkxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xNC5jb2x1bW5zLmNvbnN0cnVjdG9yCi1GQUlMIERhdGFHcmlkQ29sdW1uTGlzdFBy
b3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5j
b2x1bW5zLl9fcHJvdG9fXworUEFTUyBEYXRhR3JpZENvbHVtbkxpc3QgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29sdW1ucworUEFTUyBEYXRhR3JpZENv
bHVtbkxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xNC5jb2x1bW5zLmNvbnN0cnVjdG9yCitQQVNTIERhdGFHcmlkQ29sdW1uTGlzdFBy
b3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5j
b2x1bW5zLl9fcHJvdG9fXwogUEFTUyBEb2N1bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50Ll9fcHJvdG9fXy5fX3Byb3RvX18KLUZBSUwgRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KK1BB
U1MgRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19w
cm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KIEZBSUwgRnVuY3Rpb24gZnJvbSBpbm5lci5kb2N1
bWVudC5sb2NhdGlvbi5wYXRobmFtZS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQW5jaG9yRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQKLUZB
SUwgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuY29uc3RydWN0b3IKLUZBSUwgSFRNTEFuY2hvckVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmZpcnN0RWxl
bWVudENoaWxkLl9fcHJvdG9fXwotRkFJTCBIVE1MQXBwbGV0RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFwcGxldHMuMAotRkFJTCBIVE1MQXBwbGV0RWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxBcHBsZXRFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wLl9fcHJvdG9fXwotRkFJ
TCBIVE1MQXJlYUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMgotRkFJTCBIVE1MQXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxBcmVh
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4yLl9fcHJvdG9fXwotRkFJTCBIVE1MQXVkaW9FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMKLUZBSUwgSFRNTEF1ZGlvRWxlbWVudENvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMuY29u
c3RydWN0b3IKLUZBSUwgSFRNTEF1ZGlvRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zLl9fcHJvdG9fXwotRkFJTCBIVE1MQlJFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQKLUZBSUwg
SFRNTEJSRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQuY29uc3RydWN0b3IKLUZBSUwgSFRNTEJSRWxlbWVudFByb3RvdHlwZSBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Ll9fcHJvdG9fXwot
RkFJTCBIVE1MQmFzZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNgotRkFJTCBIVE1MQmFzZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy42LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxC
YXNlRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy42Ll9fcHJvdG9fXwotRkFJTCBIVE1MQmFzZUZvbnRFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjcKLUZBSUwgSFRNTEJhc2VGb250RWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjcuY29uc3RydWN0b3IKLUZBSUwgSFRNTEJhc2VGb250RWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy43Ll9fcHJvdG9fXwotRkFJ
TCBIVE1MQm9keUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ci1GQUlM
IEhUTUxCb2R5RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQm9keUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ll9fcHJvdG9fXwotRkFJTCBIVE1MQnV0dG9uRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45Ci1GQUlMIEhU
TUxCdXR0b25FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuOS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQnV0dG9uRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45Ll9fcHJv
dG9fXwotRkFJTCBIVE1MQ2FudmFzRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4xMAotRkFJTCBIVE1MQ2FudmFzRWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwLmNvbnN0cnVjdG9y
Ci1GQUlMIEhUTUxDYW52YXNFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwLl9fcHJvdG9fXwotRkFJTCBIVE1MQ29sbGVjdGlvbiBm
cm9tIGlubmVyLmRvY3VtZW50LmxpbmtzCi1GQUlMIEhUTUxDb2xsZWN0aW9uUHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3Lm9wdGlvbnMuX19w
cm90b19fCi1GQUlMIEhUTUxETGlzdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuMTEKLUZBSUwgSFRNTERMaXN0RWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjExLmNvbnN0cnVjdG9y
Ci1GQUlMIEhUTUxETGlzdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuMTEuX19wcm90b19fCi1GQUlMIEhUTUxEYXRhR3JpZEVsZW1l
bnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQKLUZBSUwg
SFRNTERhdGFHcmlkRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjE0LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxEYXRhR3JpZEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTQuX19wcm90b19fCi1GQUlMIEhUTUxEaXZFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQucGx1
Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcKLUZBSUwgSFRNTERpdkVsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5n
LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxEaXZFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQucGx1Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuX19wcm90b19fCitQQVNTIEhU
TUxBbmNob3JFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJzdEVs
ZW1lbnRDaGlsZAorUEFTUyBIVE1MQW5jaG9yRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jb25zdHJ1Y3RvcgorUEFT
UyBIVE1MQW5jaG9yRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuX19wcm90b19fCitQQVNTIEhUTUxBcHBsZXRFbGVtZW50
IGZyb20gaW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wCitQQVNTIEhUTUxBcHBsZXRFbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hcHBsZXRzLjAuY29uc3RydWN0b3IKK1BBU1Mg
SFRNTEFwcGxldEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hcHBsZXRzLjAu
X19wcm90b19fCitQQVNTIEhUTUxBcmVhRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4yCitQQVNTIEhUTUxBcmVhRWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjIuY29uc3RydWN0b3IK
K1BBU1MgSFRNTEFyZWFFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjIuX19wcm90b19fCitQQVNTIEhUTUxBdWRpb0VsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMworUEFTUyBIVE1MQXVk
aW9FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQXVkaW9FbGVtZW50UHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMuX19wcm90b19fCitQ
QVNTIEhUTUxCUkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNAorUEFTUyBIVE1MQlJFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQlJFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjQuX19wcm90b19fCitQQVNTIEhUTUxCYXNlRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy42CitQQVNTIEhUTUxCYXNlRWxlbWVudENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjYuY29uc3RydWN0
b3IKK1BBU1MgSFRNTEJhc2VFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjYuX19wcm90b19fCitQQVNTIEhUTUxCYXNlRm9udEVsZW1l
bnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNworUEFTUyBI
VE1MQmFzZUZvbnRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQmFzZUZvbnRFbGVtZW50
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjcu
X19wcm90b19fCitQQVNTIEhUTUxCb2R5RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQKK1BBU1MgSFRNTEJvZHlFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxCb2R5RWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19wcm90b19fCitQQVNTIEhU
TUxCdXR0b25FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjkKK1BBU1MgSFRNTEJ1dHRvbkVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxCdXR0
b25FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjkuX19wcm90b19fCitQQVNTIEhUTUxDYW52YXNFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwCitQQVNTIEhUTUxDYW52YXNFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTAuY29uc3RydWN0b3IKK1BBU1MgSFRNTENhbnZhc0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTAuX19wcm90b19fCitQQVNTIEhU
TUxDb2xsZWN0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQubGlua3MKK1BBU1MgSFRNTENvbGxlY3Rp
b25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NDcub3B0aW9ucy5fX3Byb3RvX18KK1BBU1MgSFRNTERMaXN0RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xMQorUEFTUyBIVE1MRExpc3RFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTEuY29uc3RydWN0b3IKK1BBU1MgSFRNTERMaXN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xMS5fX3Byb3RvX18KK1BBU1MgSFRN
TERhdGFHcmlkRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4xNAorUEFTUyBIVE1MRGF0YUdyaWRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29uc3RydWN0b3IKK1BBU1MgSFRN
TERhdGFHcmlkRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy4xNC5fX3Byb3RvX18KK1BBU1MgSFRNTERpdkVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5wbHVnaW5zLjAucHJldmlvdXNFbGVtZW50U2libGluZworUEFTUyBIVE1MRGl2
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLnByZXZpb3Vz
RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKK1BBU1MgSFRNTERpdkVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAucHJldmlvdXNFbGVtZW50U2libGluZy5fX3By
b3RvX18KIFBBU1MgSFRNTERvY3VtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQKIFBBU1MgSFRNTERv
Y3VtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5jb25zdHJ1Y3RvcgogUEFTUyBI
VE1MRG9jdW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5fX3Byb3RvX18KLUZBSUwg
SFRNTEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAucHJldmlvdXNFbGVtZW50
U2libGluZwotRkFJTCBIVE1MRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
c2NyaXB0cy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKLUZBSUwgSFRNTEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ll9fcHJvdG9f
Xy5fX3Byb3RvX18KLUZBSUwgSFRNTEVtYmVkRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LnBs
dWdpbnMuMAotRkFJTCBIVE1MRW1iZWRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5wbHVnaW5zLjAuY29uc3RydWN0b3IKLUZBSUwgSFRNTEVtYmVkRWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5fX3Byb3RvX18KLUZBSUwgSFRNTEZpZWxk
U2V0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxp
bmcKLUZBSUwgSFRNTEZpZWxkU2V0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQucGx1Z2lucy4wLm5leHRFbGVtZW50U2libGluZy5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MRmll
bGRTZXRFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLm5leHRF
bGVtZW50U2libGluZy5fX3Byb3RvX18KLUZBSUwgSFRNTEZvbnRFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjE5Ci1GQUlMIEhUTUxGb250RWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjE5LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxGb250RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xOS5fX3Byb3RvX18KLUZBSUwgSFRN
TEZvcm1FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVu
dENoaWxkCi1GQUlMIEhUTUxGb3JtRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxG
b3JtRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubGFz
dEVsZW1lbnRDaGlsZC5fX3Byb3RvX18KLUZBSUwgSFRNTEZyYW1lU2V0RWxlbWVudCBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMQotRkFJTCBIVE1MRnJhbWVT
ZXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMjEuY29uc3RydWN0b3IKLUZBSUwgSFRNTEZyYW1lU2V0RWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMS5fX3Byb3Rv
X18KLUZBSUwgSFRNTEhSRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy4yMgotRkFJTCBIVE1MSFJFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjIuY29uc3RydWN0b3IKLUZBSUwgSFRN
TEhSRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4yMi5fX3Byb3RvX18KLUZBSUwgSFRNTEhlYWRFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nCi1GQUlMIEhUTUxIZWFk
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2
aW91c0VsZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxIZWFkRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2li
bGluZy5fX3Byb3RvX18KLUZBSUwgSFRNTEh0bWxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50Ci1GQUlMIEhUTUxIdG1sRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxIdG1sRWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5fX3Byb3Rv
X18KLUZBSUwgSFRNTElGcmFtZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuMjQKLUZBSUwgSFRNTElGcmFtZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNC5jb25zdHJ1Y3Rvcgot
RkFJTCBIVE1MSUZyYW1lRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNC5fX3Byb3RvX18KLUZBSUwgSFRNTEltYWdlRWxlbWVudCBm
cm9tIGlubmVyLmRvY3VtZW50LmltYWdlcy4wCi1GQUlMIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmltYWdlcy4wLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxJ
bWFnZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMC5fX3Byb3Rv
X18KLUZBSUwgSFRNTElucHV0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy4yNgotRkFJTCBIVE1MSW5wdXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjYuY29uc3RydWN0b3IKLUZB
SUwgSFRNTElucHV0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4yNi5fX3Byb3RvX18KLUZBSUwgSFRNTExJRWxlbWVudCBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOAotRkFJTCBIVE1MTElFbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuMjguY29uc3RydWN0b3IKLUZBSUwgSFRNTExJRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOC5fX3Byb3RvX18KLUZBSUwgSFRN
TExhYmVsRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4yOQotRkFJTCBIVE1MTGFiZWxFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjkuY29uc3RydWN0b3IKLUZBSUwgSFRNTExhYmVs
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4yOS5fX3Byb3RvX18KLUZBSUwgSFRNTExlZ2VuZEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAKLUZBSUwgSFRNTExlZ2VuZEVsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
MC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MTGVnZW5kRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMC5fX3Byb3RvX18KLUZBSUwgSFRN
TExpbmtFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjMxCi1GQUlMIEhUTUxMaW5rRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMxLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxMaW5rRWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4zMS5fX3Byb3RvX18KLUZBSUwgSFRNTE1hcEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzIKLUZBSUwgSFRNTE1hcEVsZW1lbnRDb25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5jb25zdHJ1
Y3RvcgotRkFJTCBIVE1MTWFwRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5fX3Byb3RvX18KLUZBSUwgSFRNTE1hcnF1ZWVFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMzCi1GQUlM
IEhUTUxNYXJxdWVlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjMzLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxNYXJxdWVlRWxlbWVu
dFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
My5fX3Byb3RvX18KLUZBSUwgSFRNTE1lZGlhRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zLl9fcHJvdG9fXy5fX3Byb3RvX18KLUZB
SUwgSFRNTE1lbnVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjM1Ci1GQUlMIEhUTUxNZW51RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM1LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxN
ZW51RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4zNS5fX3Byb3RvX18KLUZBSUwgSFRNTE1ldGFFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM2Ci1GQUlMIEhUTUxNZXRhRWxlbWVudENv
bnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM2
LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxNZXRhRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNi5fX3Byb3RvX18KLUZBSUwgSFRNTE9M
aXN0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
OAotRkFJTCBIVE1MT0xpc3RFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzguY29uc3RydWN0b3IKLUZBSUwgSFRNTE9MaXN0RWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4zOC5fX3Byb3RvX18KLUZBSUwgSFRNTE9iamVjdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkKLUZBSUwgSFRNTE9iamVjdEVsZW1lbnRDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOS5j
b25zdHJ1Y3RvcgotRkFJTCBIVE1MT2JqZWN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOS5fX3Byb3RvX18KLUZBSUwgSFRNTE9w
dEdyb3VwRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy40MAotRkFJTCBIVE1MT3B0R3JvdXBFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDAuY29uc3RydWN0b3IKLUZBSUwgSFRNTE9w
dEdyb3VwRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40MC5fX3Byb3RvX18KLUZBSUwgSFRNTE9wdGlvbkVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDEKLUZBSUwgSFRNTE9wdGlvbkVs
ZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy40MS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MT3B0aW9uRWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MS5fX3Byb3RvX18KLUZB
SUwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQ3Lm9wdGlvbnMKLUZBSUwgSFRNTFBhcmFncmFwaEVsZW1lbnQgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDIKLUZBSUwgSFRNTFBhcmFn
cmFwaEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40Mi5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MUGFyYWdyYXBoRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Mi5fX3By
b3RvX18KLUZBSUwgSFRNTFBhcmFtRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy40MwotRkFJTCBIVE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDMuY29uc3RydWN0b3IK
LUZBSUwgSFRNTFBhcmFtRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy40My5fX3Byb3RvX18KLUZBSUwgSFRNTFByZUVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDQKLUZBSUwgSFRNTFBy
ZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy40NC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MUHJlRWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40NC5fX3Byb3RvX18KLUZB
SUwgSFRNTFNjcmlwdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAKLUZBSUwg
SFRNTFNjcmlwdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMu
MC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MU2NyaXB0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LnNjcmlwdHMuMC5fX3Byb3RvX18KLUZBSUwgSFRNTFNlbGVjdEVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDcKLUZBSUwgSFRNTFNl
bGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5uZXh0
RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKLUZBSUwgSFRNTFNlbGVjdEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDcuX19wcm90
b19fCi1GQUlMIEhUTUxTdHlsZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDgKLUZBSUwgSFRNTFN0eWxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ4LmNvbnN0cnVjdG9yCi1G
QUlMIEhUTUxTdHlsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNDguX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ5Ci1GQUlM
IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDkuY29uc3RydWN0b3IKLUZBSUwgSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDkuX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUNlbGxFbGVtZW50IGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUwCi1GQUlMIEhUTUxUYWJsZUNl
bGxFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTAuY29uc3RydWN0b3IKLUZBSUwgSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTAuX19wcm90
b19fCi1GQUlMIEhUTUxUYWJsZUNvbEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNTEKLUZBSUwgSFRNTFRhYmxlQ29sRWxlbWVudENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUxLmNvbnN0cnVj
dG9yCi1GQUlMIEhUTUxUYWJsZUNvbEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTEuX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUVs
ZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIKLUZB
SUwgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjUyLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxUYWJsZUVsZW1lbnRQ
cm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIu
X19wcm90b19fCi1GQUlMIEhUTUxUYWJsZVJvd0VsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTMKLUZBSUwgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzLmNv
bnN0cnVjdG9yCi1GQUlMIEhUTUxUYWJsZVJvd0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTMuX19wcm90b19fCi1GQUlMIEhUTUxU
ZXh0QXJlYUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuNTUKLUZBSUwgSFRNTFRleHRBcmVhRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU1LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxU
ZXh0QXJlYUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuNTUuX19wcm90b19fCi1GQUlMIEhUTUxUaXRsZUVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTYKLUZBSUwgSFRNTFRpdGxlRWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU2LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxUaXRsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTYuX19wcm90b19fCi1GQUlM
IEhUTUxVTGlzdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNTcKLUZBSUwgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU3LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxV
TGlzdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTcuX19wcm90b19fCi1GQUlMIEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTgKLUZBSUwgSFRNTFZpZGVvRWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjU4LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxWaWRlb0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTguX19wcm90b19fCitQQVNTIEhU
TUxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4wLnByZXZpb3VzRWxlbWVudFNp
YmxpbmcKK1BBU1MgSFRNTEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNj
cmlwdHMuMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5fX3Byb3RvX18u
X19wcm90b19fCitQQVNTIEhUTUxFbWJlZEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVn
aW5zLjAKK1BBU1MgSFRNTEVtYmVkRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQucGx1Z2lucy4wLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxFbWJlZEVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAuX19wcm90b19fCitQQVNTIEhUTUxGaWVsZFNl
dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5n
CitQQVNTIEhUTUxGaWVsZFNldEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKK1BBU1MgSFRNTEZpZWxk
U2V0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5uZXh0RWxl
bWVudFNpYmxpbmcuX19wcm90b19fCitQQVNTIEhUTUxGb250RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xOQorUEFTUyBIVE1MRm9udEVsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4x
OS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRm9udEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTkuX19wcm90b19fCitQQVNTIEhUTUxG
b3JtRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRD
aGlsZAorUEFTUyBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRm9y
bUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Lmxhc3RF
bGVtZW50Q2hpbGQuX19wcm90b19fCitQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjEKK1BBU1MgSFRNTEZyYW1lU2V0
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjIxLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjEuX19wcm90b19f
CitQQVNTIEhUTUxIUkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMjIKK1BBU1MgSFRNTEhSRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjIyLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxI
UkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMjIuX19wcm90b19fCitQQVNTIEhUTUxIZWFkRWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZworUEFTUyBIVE1MSGVhZEVs
ZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlv
dXNFbGVtZW50U2libGluZy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSGVhZEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxp
bmcuX19wcm90b19fCitQQVNTIEhUTUxIdG1sRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudAorUEFTUyBIVE1MSHRtbEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSHRtbEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuX19wcm90b19f
CitQQVNTIEhUTUxJRnJhbWVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjI0CitQQVNTIEhUTUxJRnJhbWVFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjQuY29uc3RydWN0b3IKK1BB
U1MgSFRNTElGcmFtZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuMjQuX19wcm90b19fCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMAorUEFTUyBIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0
b3IgZnJvbSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSW1h
Z2VFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1hZ2VzLjAuX19wcm90b19f
CitQQVNTIEhUTUxJbnB1dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuMjYKK1BBU1MgSFRNTElucHV0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjI2LmNvbnN0cnVjdG9yCitQQVNT
IEhUTUxJbnB1dEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuMjYuX19wcm90b19fCitQQVNTIEhUTUxMSUVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjgKK1BBU1MgSFRNTExJRWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjI4LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxMSUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjguX19wcm90b19fCitQQVNTIEhUTUxM
YWJlbEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MjkKK1BBU1MgSFRNTExhYmVsRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjI5LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxMYWJlbEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuMjkuX19wcm90b19fCitQQVNTIEhUTUxMZWdlbmRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMwCitQQVNTIEhUTUxMZWdlbmRFbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAu
Y29uc3RydWN0b3IKK1BBU1MgSFRNTExlZ2VuZEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAuX19wcm90b19fCitQQVNTIEhUTUxM
aW5rRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
MQorUEFTUyBIVE1MTGlua0VsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTGlua0VsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MzEuX19wcm90b19fCitQQVNTIEhUTUxNYXBFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMyCitQQVNTIEhUTUxNYXBFbGVtZW50Q29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzIuY29uc3RydWN0
b3IKK1BBU1MgSFRNTE1hcEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuMzIuX19wcm90b19fCitQQVNTIEhUTUxNYXJxdWVlRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMworUEFTUyBI
VE1MTWFycXVlZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4zMy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTWFycXVlZUVsZW1lbnRQ
cm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzMu
X19wcm90b19fCitQQVNTIEhUTUxNZWRpYUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5fX3Byb3RvX18uX19wcm90b19fCitQQVNT
IEhUTUxNZW51RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zNQorUEFTUyBIVE1MTWVudUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTWVu
dUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMzUuX19wcm90b19fCitQQVNTIEhUTUxNZXRhRWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNgorUEFTUyBIVE1MTWV0YUVsZW1lbnRDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNi5j
b25zdHJ1Y3RvcgorUEFTUyBIVE1MTWV0YUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzYuX19wcm90b19fCitQQVNTIEhUTUxPTGlz
dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzgK
K1BBU1MgSFRNTE9MaXN0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM4LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxPTGlzdEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MzguX19wcm90b19fCitQQVNTIEhUTUxPYmplY3RFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM5CitQQVNTIEhUTUxPYmplY3RFbGVtZW50Q29uc3Ry
dWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkuY29u
c3RydWN0b3IKK1BBU1MgSFRNTE9iamVjdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkuX19wcm90b19fCitQQVNTIEhUTUxPcHRH
cm91cEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NDAKK1BBU1MgSFRNTE9wdEdyb3VwRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQwLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxPcHRH
cm91cEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDAuX19wcm90b19fCitQQVNTIEhUTUxPcHRpb25FbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQxCitQQVNTIEhUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuNDEuY29uc3RydWN0b3IKK1BBU1MgSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDEuX19wcm90b19fCitQQVNT
IEhUTUxPcHRpb25zQ29sbGVjdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40Ny5vcHRpb25zCitQQVNTIEhUTUxQYXJhZ3JhcGhFbGVtZW50IGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQyCitQQVNTIEhUTUxQYXJhZ3Jh
cGhFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDIuY29uc3RydWN0b3IKK1BBU1MgSFRNTFBhcmFncmFwaEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDIuX19wcm90
b19fCitQQVNTIEhUTUxQYXJhbUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDMKK1BBU1MgSFRNTFBhcmFtRWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQzLmNvbnN0cnVjdG9yCitQ
QVNTIEhUTUxQYXJhbUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNDMuX19wcm90b19fCitQQVNTIEhUTUxQcmVFbGVtZW50IGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ0CitQQVNTIEhUTUxQcmVF
bGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNDQuY29uc3RydWN0b3IKK1BBU1MgSFRNTFByZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDQuX19wcm90b19fCitQQVNT
IEhUTUxTY3JpcHRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4wCitQQVNTIEhU
TUxTY3JpcHRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAu
Y29uc3RydWN0b3IKK1BBU1MgSFRNTFNjcmlwdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5zY3JpcHRzLjAuX19wcm90b19fCitQQVNTIEhUTUxTZWxlY3RFbGVtZW50IGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3CitQQVNTIEhUTUxTZWxl
Y3RFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAubmV4dEVs
ZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxTZWxlY3RFbGVtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3Ll9fcHJvdG9f
XworUEFTUyBIVE1MU3R5bGVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQ4CitQQVNTIEhUTUxTdHlsZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40OC5jb25zdHJ1Y3RvcgorUEFT
UyBIVE1MU3R5bGVFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjQ4Ll9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40OQorUEFTUyBI
VE1MVGFibGVDYXB0aW9uRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ5LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxUYWJsZUNhcHRp
b25FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjQ5Ll9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVDZWxsRWxlbWVudCBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41MAorUEFTUyBIVE1MVGFibGVDZWxs
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjUwLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxUYWJsZUNlbGxFbGVtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUwLl9fcHJvdG9f
XworUEFTUyBIVE1MVGFibGVDb2xFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjUxCitQQVNTIEhUTUxUYWJsZUNvbEVsZW1lbnRDb25zdHJ1Y3RvciBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41MS5jb25zdHJ1Y3Rv
cgorUEFTUyBIVE1MVGFibGVDb2xFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUxLl9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUyCitQQVNT
IEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy41Mi5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGFibGVFbGVtZW50UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUyLl9f
cHJvdG9fXworUEFTUyBIVE1MVGFibGVSb3dFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzCitQQVNTIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41My5jb25z
dHJ1Y3RvcgorUEFTUyBIVE1MVGFibGVSb3dFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzLl9fcHJvdG9fXworUEFTUyBIVE1MVGV4
dEFyZWFFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjU1CitQQVNTIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41NS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGV4
dEFyZWFFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5j
aGlsZE5vZGVzLjU1Ll9fcHJvdG9fXworUEFTUyBIVE1MVGl0bGVFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU2CitQQVNTIEhUTUxUaXRsZUVsZW1l
bnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy41Ni5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGl0bGVFbGVtZW50UHJvdG90eXBlIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU2Ll9fcHJvdG9fXworUEFTUyBI
VE1MVUxpc3RFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU3CitQQVNTIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41Ny5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVUxp
c3RFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjU3Ll9fcHJvdG9fXworUEFTUyBIVE1MVmlkZW9FbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU4CitQQVNTIEhUTUxWaWRlb0VsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41
OC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVmlkZW9FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU4Ll9fcHJvdG9fXwogUEFTUyBIaXN0
b3J5IGZyb20gaW5uZXIuaGlzdG9yeQogUEFTUyBIaXN0b3J5UHJvdG90eXBlIGZyb20gaW5uZXIu
aGlzdG9yeS5fX3Byb3RvX18KIFBBU1MgTG9jYXRpb24gZnJvbSBpbm5lci5kb2N1bWVudC5sb2Nh
dGlvbgogUEFTUyBMb2NhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmxvY2F0aW9u
Ll9fcHJvdG9fXwotRkFJTCBNZWRpYUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0
cy4wLm1lZGlhCi1GQUlMIE1lZGlhTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
c3R5bGVTaGVldHMuMC5tZWRpYS5jb25zdHJ1Y3RvcgotRkFJTCBNZWRpYUxpc3RQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1lZGlhLl9fcHJvdG9fXwotRkFJTCBN
aW1lVHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wCi1GQUlMIE1p
bWVUeXBlQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMKLUZBSUwg
TWltZVR5cGVBcnJheUNvbnN0cnVjdG9yIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWlt
ZVR5cGVzLmNvbnN0cnVjdG9yCi1GQUlMIE1pbWVUeXBlQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5l
ci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuX19wcm90b19fCi1GQUlMIE1pbWVUeXBlQ29u
c3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuMC5jb25zdHJ1
Y3RvcgotRkFJTCBNaW1lVHlwZVByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9u
Lm1pbWVUeXBlcy4wLl9fcHJvdG9fXwotRkFJTCBOYW1lZE5vZGVNYXAgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuYXR0cmlidXRlcwotRkFJ
TCBOYXZpZ2F0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbgotRkFJTCBOYXZpZ2F0b3JQ
cm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5fX3Byb3RvX18KLUZBSUwgTm9k
ZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcwotRkFJ
TCBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuY2hpbGROb2Rlcy5jb25z
dHJ1Y3RvcgotRkFJTCBOb2RlTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5jaGlsZE5vZGVzLl9fcHJvdG9fXworUEFTUyBNZWRpYUxpc3QgZnJvbSBpbm5l
ci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1lZGlhCitQQVNTIE1lZGlhTGlzdENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5tZWRpYS5jb25zdHJ1Y3RvcgorUEFT
UyBNZWRpYUxpc3RQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1l
ZGlhLl9fcHJvdG9fXworUEFTUyBNaW1lVHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9u
Lm1pbWVUeXBlcy4wCitQQVNTIE1pbWVUeXBlQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbi5taW1lVHlwZXMKK1BBU1MgTWltZVR5cGVBcnJheUNvbnN0cnVjdG9yIGZyb20gaW5uZXIu
Y2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLmNvbnN0cnVjdG9yCitQQVNTIE1pbWVUeXBlQXJy
YXlQcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuX19wcm90
b19fCitQQVNTIE1pbWVUeXBlQ29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bi5taW1lVHlwZXMuMC5jb25zdHJ1Y3RvcgorUEFTUyBNaW1lVHlwZVByb3RvdHlwZSBmcm9tIGlu
bmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLl9fcHJvdG9fXworUEFTUyBOYW1lZE5v
ZGVNYXAgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNp
YmxpbmcuYXR0cmlidXRlcworUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbgorUEFTUyBOYXZpZ2F0b3JQcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bi5fX3Byb3RvX18KK1BBU1MgTm9kZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuY2hpbGROb2RlcworUEFTUyBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuY2hpbGROb2Rlcy5jb25zdHJ1Y3RvcgorUEFTUyBOb2RlTGlzdFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLl9fcHJvdG9fXwogUEFT
UyBOb2RlUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuX19wcm90b19fLl9fcHJvdG9fXy5f
X3Byb3RvX18KIEZBSUwgTnVtYmVyIGZyb20gaW5uZXIucGFnZVhPZmZzZXQKLUZBSUwgT2JqZWN0
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCi1GQUlMIFBsdWdp
biBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmVuYWJsZWRQbHVnaW4K
LUZBSUwgUGx1Z2luQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zCi1G
QUlMIFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5w
bHVnaW5zLmNvbnN0cnVjdG9yCi1GQUlMIFBsdWdpbkFycmF5UHJvdG90eXBlIGZyb20gaW5uZXIu
Y2xpZW50SW5mb3JtYXRpb24ucGx1Z2lucy5fX3Byb3RvX18KLUZBSUwgUGx1Z2luQ29uc3RydWN0
b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0b3IKLUZB
SUwgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVz
LjAuZW5hYmxlZFBsdWdpbi5fX3Byb3RvX18KLUZBSUwgU2NyZWVuIGZyb20gaW5uZXIuc2NyZWVu
Ci1GQUlMIFNjcmVlblByb3RvdHlwZSBmcm9tIGlubmVyLnNjcmVlbi5fX3Byb3RvX18KLUZBSUwg
U3RvcmFnZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZQotRkFJTCBTdG9yYWdlQ29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKLUZBSUwgU3RvcmFnZVByb3RvdHlw
ZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZS5fX3Byb3RvX18KK1BBU1MgT2JqZWN0IGZyb20gaW5u
ZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCitQQVNTIFBsdWdpbiBmcm9tIGlu
bmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmVuYWJsZWRQbHVnaW4KK1BBU1MgUGx1
Z2luQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zCitQQVNTIFBsdWdp
bkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLmNv
bnN0cnVjdG9yCitQQVNTIFBsdWdpbkFycmF5UHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5m
b3JtYXRpb24ucGx1Z2lucy5fX3Byb3RvX18KK1BBU1MgUGx1Z2luQ29uc3RydWN0b3IgZnJvbSBp
bm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0b3IKK1BBU1MgUGx1Z2lu
UHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuZW5hYmxl
ZFBsdWdpbi5fX3Byb3RvX18KK1BBU1MgU2NyZWVuIGZyb20gaW5uZXIuc2NyZWVuCitQQVNTIFNj
cmVlblByb3RvdHlwZSBmcm9tIGlubmVyLnNjcmVlbi5fX3Byb3RvX18KK1BBU1MgU3RvcmFnZSBm
cm9tIGlubmVyLmxvY2FsU3RvcmFnZQorUEFTUyBTdG9yYWdlQ29uc3RydWN0b3IgZnJvbSBpbm5l
ci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKK1BBU1MgU3RvcmFnZVByb3RvdHlwZSBmcm9tIGlu
bmVyLmxvY2FsU3RvcmFnZS5fX3Byb3RvX18KIEZBSUwgU3RyaW5nIGZyb20gaW5uZXIubmFtZQot
RkFJTCBTdHlsZVNoZWV0TGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzCi1GQUlM
IFN0eWxlU2hlZXRMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0
cy5jb25zdHJ1Y3RvcgotRkFJTCBTdHlsZVNoZWV0TGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LnN0eWxlU2hlZXRzLl9fcHJvdG9fXwotRkFJTCBTdHlsZVNoZWV0UHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18uX19wcm90b19fCi1GQUlM
IFRleHQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5maXJz
dENoaWxkCi1GQUlMIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgotRkFJTCBUZXh0UHJvdG90
eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAubGFzdENo
aWxkLl9fcHJvdG9fXwotRkFJTCBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjMucGxheWVkCi1GQUlMIFRpbWVSYW5nZXNQcm90b3R5cGUgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5wbGF5ZWQuX19wcm90
b19fCi1GQUlMIFZhbGlkaXR5U3RhdGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4
dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5Ci1GQUlMIFZhbGlkaXR5U3RhdGVQcm90b3R5cGUgZnJv
bSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5Ll9f
cHJvdG9fXworUEFTUyBTdHlsZVNoZWV0TGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hl
ZXRzCitQQVNTIFN0eWxlU2hlZXRMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5z
dHlsZVNoZWV0cy5jb25zdHJ1Y3RvcgorUEFTUyBTdHlsZVNoZWV0TGlzdFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLl9fcHJvdG9fXworUEFTUyBTdHlsZVNoZWV0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18uX19wcm90
b19fCitQQVNTIFRleHQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0
ZXMuMC5maXJzdENoaWxkCitQQVNTIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgorUEFTUyBU
ZXh0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVz
LjAubGFzdENoaWxkLl9fcHJvdG9fXworUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMucGxheWVkCitQQVNTIFRpbWVSYW5nZXNQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5wbGF5
ZWQuX19wcm90b19fCitQQVNTIFZhbGlkaXR5U3RhdGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVn
aW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5CitQQVNTIFZhbGlkaXR5U3RhdGVQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZh
bGlkaXR5Ll9fcHJvdG9fXwogUEFTUyBYU0xUUHJvY2Vzc29yQ29uc3J1Y3RvciBmcm9tIGlubmVy
LlhTTFRQcm9jZXNzb3IKIE5ldmVyIGZvdW5kIEF1ZGlvCiBOZXZlciBmb3VuZCBDREFUQVNlY3Rp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5j
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0CmluZGV4IGZmMTZmNjYuLmU3NzhmMjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApA
QCAtMzU3LDggKzM1Nyw4IEBAIEZBSUwgaW5uZXIuYWRkRXZlbnRMaXN0ZW5lci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmFkZEV2ZW50TGlzdGVuZXIuY29u
c3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5h
bGVydC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmFsZXJ0
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5u
ZXIuYXBwbGljYXRpb25DYWNoZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5hcHBsaWNhdGlvbkNhY2hlLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5hcHBsaWNhdGlvbkNhY2hlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogRkFJTCBpbm5lci5hdG9iLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
IEZBSUwgaW5uZXIuYXRvYi5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCiBGQUlMIGlubmVyLmJsdXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgpAQCAtMzcxLDE2ICszNzEsMTYgQEAgRkFJTCBpbm5lci5jbGVhckludGVydmFsLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY2xlYXJJbnRlcnZhbC5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmNs
ZWFyVGltZW91dC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVy
LmNsZWFyVGltZW91dC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuY2xpZW50SW5mb3JtYXRpb24uY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbi5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuY2xpZW50SW5mb3JtYXRpb24uY29uc3Ry
dWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLmNsb3NlLmlzSW5uZXIgc2hvdWxkIGJl
IHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY2xvc2UuY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jbG9zZWQuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jbG9zZWQuY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jb25maXJtLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY29uZmlybS5jb25zdHJ1
Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLmNvbnNv
bGUuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5jb25zb2xl
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5u
ZXIuY29uc29sZS5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuY29uc29sZS5jb25zdHJ1Y3Rv
ci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuZGVmYXVsdFN0YXR1cy5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmRlZmF1bHRTdGF0dXMuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5kZWZhdWx0
c3RhdHVzLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KQEAgLTQxNSwyMiArNDE1
LDIyIEBAIEZBSUwgaW5uZXIuaXNJbm5lci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCiBGQUlMIGlubmVyLmlzSW5uZXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5sZW5ndGguaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgogRkFJTCBpbm5lci5sZW5ndGguY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5sb2NhbFN0b3JhZ2UuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5sb2NhbFN0
b3JhZ2UuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmxvY2FsU3RvcmFnZS5jb25zdHJ1Y3Rv
ci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIubG9jYXRpb24uaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLmxvY2F0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQotRkFJTCBpbm5l
ci5sb2NhdGlvbmJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlu
bmVyLmxvY2F0aW9uYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KLUZBSUwgaW5uZXIubWVudWJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIGlubmVyLm1lbnViYXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5sb2NhdGlvbmJhci5pc0lubmVyIGlzIHRydWUKK1BB
U1MgaW5uZXIubG9jYXRpb25iYXIuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlu
bmVyLm1lbnViYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLm1lbnViYXIuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLm1vdmVCeS5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVCeS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVUby5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVUby5jb25zdHJ1Y3Rvci5pc0lu
bmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm5hbWUuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5uYW1lLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubmF2aWdhdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubmF2aWdhdG9yLmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIu
bmF2aWdhdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5uYXZpZ2F0b3IuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLm9mZnNjcmVlbkJ1ZmZlcmluZy5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm9mZnNjcmVlbkJ1ZmZlcmlu
Zy5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlu
bmVyLm9wZW4uaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpAQCAtNDQ1LDggKzQ0
NSw4IEBAIEZBSUwgaW5uZXIucGFnZVhPZmZzZXQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgogRkFJTCBpbm5lci5wYWdlWE9mZnNldC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnBhZ2VZT2Zmc2V0LmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucGFnZVlPZmZzZXQuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5wZXJzb25h
bGJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnBlcnNv
bmFsYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1MgaW5uZXIucGVyc29uYWxiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnBlcnNvbmFs
YmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5wb3N0TWVzc2FnZS5p
c0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnBvc3RNZXNzYWdl
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5u
ZXIucHJpbnQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpAQCAtNDYxLDggKzQ2
MSw4IEBAIEZBSUwgaW5uZXIucmVzaXplQnkuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgogRkFJTCBpbm5lci5yZXNpemVCeS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnJlc2l6ZVRvLmlzSW5uZXIgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucmVzaXplVG8uY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zY3JlZW4uaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zY3JlZW4uY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5zY3JlZW4uaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLnNjcmVlbi5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUK
IEZBSUwgaW5uZXIuc2NyZWVuTGVmdC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CiBGQUlMIGlubmVyLnNjcmVlbkxlZnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3JlZW5Ub3AuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgpAQCAtNDgxLDI0ICs0ODEsMjQgQEAgRkFJTCBpbm5lci5zY3JvbGxYLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2Nyb2xsWC5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNj
cm9sbFkuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3Jv
bGxZLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwg
aW5uZXIuc2Nyb2xsYmFycy5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLnNjcm9sbGJhcnMuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgorUEFTUyBpbm5lci5zY3JvbGxiYXJzLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5zY3JvbGxiYXJzLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zZWxm
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zZWxmLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQotRkFJTCBpbm5lci5zZXNzaW9uU3RvcmFnZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCi1GQUlMIGlubmVyLnNlc3Npb25TdG9yYWdlLmNvbnN0cnVjdG9yLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuc2Vzc2lvblN0b3JhZ2UuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnNlc3Npb25TdG9yYWdlLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5zZXRJbnRlcnZhbC5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNldEludGVydmFsLmNvbnN0cnVjdG9yLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2V0VGltZW91dC5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNldFRpbWVvdXQuY29uc3Ry
dWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zdGF0
dXMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zdGF0dXMu
Y29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5l
ci5zdGF0dXNiYXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5l
ci5zdGF0dXNiYXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorUEFTUyBpbm5lci5zdGF0dXNiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnN0YXR1
c2Jhci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuc3RvcC5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnN0b3AuY29uc3RydWN0b3Iu
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci50b29sYmFyLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIudG9vbGJhci5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLnRv
b2xiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnRvb2xiYXIuY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdl
LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIud2Via2l0Q29u
dmVydFBvaW50RnJvbU5vZGVUb1BhZ2UuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci53ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9k
ZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjhkNjY4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2NvbnN0cnVj
dGVkLW9iamVjdHMtcHJvdG90eXBlcy5qcwpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigi
TWFrZSBzdXJlIHByb3RvdHlwZXMgYXJlIHNldCB1cCB1c2luZyB0aGUgd2luZG93IGEgcHJvcGVy
dHkgY2FtZSBmcm9tLCBpbnN0ZWFkIG9mIHRoZSBsZXhpY2FsIGdsb2JhbCBvYmplY3QuIikKKwor
dmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHN1YmZyYW1lKTsKK3ZhciBpbm5lciA9IHN1YmZyYW1lLmNvbnRl
bnRXaW5kb3c7IC8vIENhbGwgaXQgImlubmVyIiB0byBtYWtlIHNob3VsZEJlIG91dHB1dCBzaG9y
dGVyCisKKy8vIFN0YXNoIGEgcHJvcGVydHkgb24gdGhlIHByb3RvdHlwZXMuCit3aW5kb3cuT2Jq
ZWN0LnByb3RvdHlwZS5pc0lubmVyID0gZmFsc2U7Citpbm5lci5PYmplY3QucHJvdG90eXBlLmlz
SW5uZXIgPSB0cnVlOworCitmdW5jdGlvbiBjbGFzc05hbWVGb3JPYmplY3Qob2JqZWN0KQorewor
ICAgIC8vIGNhbGwgd2lsbCB1c2UgdGhlIGdsb2JhbCBvYmplY3QgaWYgcGFzc2VkIG51bGwgb3Ig
dW5kZWZpbmVkLCBzbyBzcGVjaWFsIGNhc2UgdGhvc2U6CisgICAgaWYgKG9iamVjdCA9PSBudWxs
KQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKG9iamVjdCk7CisgICAgLy8gcmVtb3ZlICdbb2JqZWN0ICcgYW5kICdd
JworICAgIHJldHVybiByZXN1bHQuc3BsaXQoJyAnKVsxXS5zcGxpdCgnXScpWzBdOworfQorCitm
dW5jdGlvbiBjb25zdHJ1Y3RvclByb3BlcnRpZXNPbldpbmRvdyhnbG9iYWxPYmplY3QpCit7Cisg
ICAgdmFyIGNvbnN0cnVjdG9yTmFtZXMgPSBbXTsKKyAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBn
bG9iYWxPYmplY3QpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaW5uZXJbcHJvcGVydHldOworICAg
ICAgICBpZiAodmFsdWUgPT0gbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2
YXIgdHlwZSA9IGNsYXNzTmFtZUZvck9iamVjdCh2YWx1ZSk7CisgICAgICAgIGlmICghdHlwZS5t
YXRjaCgnQ29uc3RydWN0b3IkJykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29u
c3RydWN0b3JOYW1lcy5wdXNoKHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIGNvbnN0cnVj
dG9yTmFtZXMuc29ydCgpOworfQorCit2YXIgY29uc3RydWN0b3JOYW1lcyA9IGNvbnN0cnVjdG9y
UHJvcGVydGllc09uV2luZG93KGlubmVyKTsKKworZm9yICh2YXIgeCA9IDA7IHggPCBjb25zdHJ1
Y3Rvck5hbWVzLmxlbmd0aDsgeCsrKSB7CisgICAgdmFyIGNvbnN0cnVjdG9yTmFtZSA9IGNvbnN0
cnVjdG9yTmFtZXNbeF07ICAgIAorICAgIC8vIFRlc3QgZmlyc3QgdG8gc2VlIGlmIHRoZSBvYmpl
Y3QgaXMgY29uc3RydWN0YWJsZQorICAgIHZhciBjb25zdHJ1Y3RlZE9iamVjdDsKKyAgICB0cnkg
eworICAgICAgICBjb25zdHJ1Y3RlZE9iamVjdCA9IGV2YWwoIm5ldyBpbm5lci4iICsgY29uc3Ry
dWN0b3JOYW1lKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgY29udGludWU7CisgICAgfQor
CisgICAgc2hvdWxkQmVUcnVlKCIobmV3IGlubmVyLiIgKyBjb25zdHJ1Y3Rvck5hbWUgKyAiKS5p
c0lubmVyIik7CisgICAgc2hvdWxkQmVUcnVlKCIobmV3IGlubmVyLiIgKyBjb25zdHJ1Y3Rvck5h
bWUgKyAiKS5jb25zdHJ1Y3Rvci5pc0lubmVyIik7Cit9CisKK2RvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoc3ViZnJhbWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQWJzdHJhY3RXb3JrZXJDdXN0b20uY3BwCmluZGV4IGE0MzM5
NzMuLjk4OGMyODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYnN0cmFjdFdv
cmtlckN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29ya2Vy
Q3VzdG9tLmNwcApAQCAtODIsMTAgKzgyLDEwIEBAIEpTVmFsdWUgSlNBYnN0cmFjdFdvcmtlcjo6
cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyCiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEFic3RyYWN0V29ya2VyKiBiYXNlT2JqZWN0KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQWJzdHJhY3RXb3JrZXIqIGJh
c2VPYmplY3QpCiB7CiAgICAgLy8gSnVzdCBjYWxsIHRoZSBKU0V2ZW50VGFyZ2V0IGltcGxlbWVu
dGF0aW9uIG9mIHRvSlMoKSwgd2hpY2ggYWxyZWFkeSBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIHRo
ZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zLgotICAgIHJldHVybiB0b0pTKGV4ZWMsIHN0YXRp
Y19jYXN0PEV2ZW50VGFyZ2V0Kj4oYmFzZU9iamVjdCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RXZlbnRUYXJnZXQqPihiYXNlT2JqZWN0KSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0Nv
bnN0cnVjdG9yLmNwcAppbmRleCAwZTJlYTYyLi44N2EzODgwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCkBAIC01MCw5ICs1MCw5IEBAIEpTQXVkaW9Db25z
dHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhCiAKIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0QXVkaW8oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Cisg
ICAgSlNBdWRpb0NvbnN0cnVjdG9yKiBqc0F1ZGlvID0gc3RhdGljX2Nhc3Q8SlNBdWRpb0NvbnN0
cnVjdG9yKj4oY29uc3RydWN0b3IpOwogICAgIC8vIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIG5l
ZWQgdGhlIGNhbGwgdG9KUyBvbiB0aGUgZG9jdW1lbnQgbGlrZSBKU0ltYWdlQ29uc3RydWN0b3I/
Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0F1ZGlvQ29uc3RydWN0
b3IqPihjb25zdHJ1Y3RvciktPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
anNBdWRpby0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBSZWZlcmVuY2VFcnJvciwgIkF1ZGlvIGNvbnN0cnVjdG9yIGFzc29j
aWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKTsKIApAQCAtNjIsNyArNjIsNyBAQCBzdGF0
aWMgSlNPYmplY3QqIGNvbnN0cnVjdEF1ZGlvKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNv
bnN0cnVjdG9yLCBjb25zdCBBcgogICAgICAgICBhdWRpby0+c2V0U3JjKGFyZ3MuYXQoMCkudG9T
dHJpbmcoZXhlYykpOwogICAgICAgICBhdWRpby0+c2NoZWR1bGVMb2FkKCk7CiAgICAgfQotICAg
IHJldHVybiBhc09iamVjdCh0b0pTKGV4ZWMsIGF1ZGlvLnJlbGVhc2UoKSkpOworICAgIHJldHVy
biBhc09iamVjdCh0b0pTKGV4ZWMsIGpzQXVkaW8tPmdsb2JhbE9iamVjdCgpLCBhdWRpby5yZWxl
YXNlKCkpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU0F1ZGlvQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKaW5kZXggNDRhODk1Ny4uYzI3MzhjYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKQEAgLTMyLDEy
ICszMiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIENEQVRBU2VjdGlvbiog
c2VjdGlvbikKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENEQVRBU2VjdGlvbiogc2VjdGlvbikKIHsKICAg
ICBpZiAoIXNlY3Rpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICAKLSAgICByZXR1
cm4gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgQ0RBVEFTZWN0aW9uLCBzZWN0aW9uKTsK
KworICAgIHJldHVybiBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IENEQVRBU2VjdGlvbiwgc2VjdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCAyYzIwNDMxLi4xYjk2YzA2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCkBAIC00OSw0NiArNDks
NDUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBDU1NSdWxlKiBydWxlKQorSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSog
cnVsZSkKIHsKICAgICBpZiAoIXJ1bGUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAogICAg
IERPTU9iamVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBydWxlKTsKLQogICAgIGlmICh3cmFwcGVyKQogICAgICAgICByZXR1cm4gd3Jh
cHBlcjsKIAogICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ1NTUnVs
ZTo6U1RZTEVfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIENTU1N0eWxlUnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1N0eWxlUnVs
ZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJ
QV9SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIo
ZXhlYywgQ1NTTWVkaWFSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTTWVkaWFSdWxlLCBydWxl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OkZPTlRfRkFDRV9S
VUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywgQ1NTRm9udEZhY2VSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTRm9udEZhY2VSdWxlLCBy
dWxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVM
RToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMs
IENTU1BhZ2VSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTUGFnZVJ1bGUsIHJ1bGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6Ci0gICAg
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NJbXBv
cnRSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTSW1wb3J0UnVsZSwgcnVsZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6Ci0gICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NDaGFyc2V0
UnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU0NoYXJzZXRSdWxlLCBydWxlKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgQ1NTVmFyaWFi
bGVzUnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1Rf
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1ZhcmlhYmxlc1J1bGUsIHJ1bGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX0tFWUZSQU1FX1JV
TEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVj
LCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUsIHJ1bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVs
ZTo6V0VCS0lUX0tFWUZSQU1FU19SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fT0JKRUNUX1dSQVBQRVIoZXhlYywgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSwgcnVsZSk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIFdlYktpdENTU0tleWZyYW1lc1J1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9P
QkpFQ1RfV1JBUFBFUihleGVjLCBDU1NSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSwg
cnVsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHdyYXBwZXI7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1ZhbHVlQ3VzdG9tLmNwcAppbmRleCBhZDBjZWUxLi44N2E1NzYwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBleGVjLCBDU1NWYWx1ZSogdmFsdWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAg
ICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNTUsMTkgKzU1LDE5
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAodmFsdWUtPmlzV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQot
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NWYWx1
ZUxpc3QsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZUxpc3QsIHZhbHVlKTsKICNpZiBFTkFCTEUo
U1ZHKQogICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCi0gICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhaW50LCB2YWx1ZSk7CisgICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVj
dCwgU1ZHUGFpbnQsIHZhbHVlKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQot
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdDb2xv
ciwgdmFsdWUpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIFNWR0NvbG9yLCB2YWx1ZSk7CiAjZW5kaWYKICAgICBlbHNlIGlm
ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NQcmltaXRpdmVWYWx1ZSwgdmFsdWUpOworICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IENTU1ByaW1pdGl2ZVZhbHVlLCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NWYWx1ZSwgdmFsdWUpOworICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IENTU1ZhbHVlLCB2YWx1ZSk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAKaW5kZXggMzk4YTY3OS4uNTdiY2RhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKQEAgLTQyLDEyICs0
MiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBDYW52YXNTdHlsZSogc3R5bGUpCitz
dGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FudmFzU3R5bGUqIHN0eWxlKQogewogICAgIGlmIChzdHlsZS0+Y2FudmFz
R3JhZGllbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3R5bGUtPmNhbnZhc0dyYWRp
ZW50KCkpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0eWxlLT5j
YW52YXNHcmFkaWVudCgpKTsKICAgICBpZiAoc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSkKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSk7CisgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSk7CiAg
ICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHN0eWxlLT5jb2xvcigpKTsKIH0KIApAQCAtNjcsNyAr
NjcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXNTdHlsZT4gdG9IVE1MQ2FudmFzU3R5bGUo
RXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c3Ryb2tlU3R5bGUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVy
biB0b0pTKGV4ZWMsIGltcGwoKS0+c3Ryb2tlU3R5bGUoKSk7ICAgICAgICAKKyAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgaW1wbCgpLT5zdHJva2VTdHlsZSgpKTsKIH0KIAog
dm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEpTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VTdHlsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCiAKIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxTdHlsZShF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgaW1wbCgpLT5m
aWxsU3R5bGUoKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcGwo
KS0+ZmlsbFN0eWxlKCkpOwogfQogCiB2b2lkIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpz
ZXRGaWxsU3R5bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMzM5LDcgKzMz
OSw3IEBAIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4o
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0CiAKICAgICBpZiAoby0+aW5oZXJpdHMoJkpT
SFRNTEltYWdlRWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwot
ICAgICAgICBKU1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAgIEpTVmFsdWUgcGF0
dGVybiA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICBjb250ZXh0LT5j
cmVhdGVQYXR0ZXJuKHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihzdGF0aWNfY2FzdDxK
U0hUTUxFbGVtZW50Kj4obyktPmltcGwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIGFyZ3MuYXQoMSkpLCBlYyku
Z2V0KCkpOwogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwpAQCAtMzQ3LDcgKzM0
Nyw3IEBAIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4o
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0CiAgICAgfQogICAgIGlmIChvLT5pbmhlcml0
cygmSlNIVE1MQ2FudmFzRWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjOwotICAgICAgICBKU1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAgIEpTVmFs
dWUgcGF0dGVybiA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICBjb250
ZXh0LT5jcmVhdGVQYXR0ZXJuKHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oc3RhdGlj
X2Nhc3Q8SlNIVE1MRWxlbWVudCo+KG8pLT5pbXBsKCkpLAogICAgICAgICAgICAgICAgIHZhbHVl
VG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIGFyZ3MuYXQoMSkpLCBlYykuZ2V0KCkpOwogICAg
ICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2suY3BwCmluZGV4IDZmOWVmZDkuLjI4OTExZmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAK
QEAgLTQ4LDcgKzQ4LDggQEAgdm9pZCBKU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2
ZW50KEdlb3Bvc2l0aW9uKiBnZW9wb3NpdGlvbiwgYm9vbCYgcmFpc2UKICAgICAKICAgICBpZiAo
IW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAor
CisgICAgLy8gRklYTUU6IFRoaXMgaXMgbGlrZWx5IHRoZSB3cm9uZyBnbG9iYWxPYmplY3QgKGZv
ciBwcm90b3R5cGUgY2hhaW5zIGF0IGxlYXN0KQogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBtX2ZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXhlY1N0YXRl
KiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgCkBAIC02NywxMCArNjgs
MTAgQEAgdm9pZCBKU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KEdlb3Bvc2l0
aW9uKiBnZW9wb3NpdGlvbiwgYm9vbCYgcmFpc2UKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPEpT
Q3VzdG9tUG9zaXRpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLSAgICAKKwogICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBnZW9wb3Np
dGlvbikpOwotICAgIAorICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZ2VvcG9zaXRpb24pKTsKKwogICAgIGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLT50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIGNhbGwoZXhl
YywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jYWxsYmFjaywgYXJncyk7CiAgICAg
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2su
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5j
cHAKaW5kZXggY2M2Y2Q1NS4uODcxOWQ4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKQEAgLTQ4LDcgKzQ4LDggQEAg
dm9pZCBKU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoUG9zaXRpb25F
cnJvciogcG9zaXRpb25FcnJvcikKICAgICAKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5p
c0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCisgICAgLy8gRklYTUU6IFRoaXMg
aXMgbGlrZWx5IHRoZSB3cm9uZyBnbG9iYWxPYmplY3QgKGZvciBwcm90b3R5cGUgY2hhaW5zIGF0
IGxlYXN0KQogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ZyYW1lLT5zY3Jp
cHQoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCk7CiAgICAgCkBAIC02OSw3ICs3MCw3IEBAIHZvaWQgSlNDdXN0b21Qb3Np
dGlvbkVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFBvc2l0aW9uRXJyb3IqIHBvc2l0aW9uRXJy
b3IpCiAgICAgUmVmUHRyPEpTQ3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrPiBwcm90ZWN0KHRo
aXMpOwogICAgIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBl
bmQodG9KUyhleGVjLCBwb3NpdGlvbkVycm9yKSk7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVj
LCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBwb3NpdGlvbkVycm9y
KSk7CiAgICAgCiAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2Vy
LnN0YXJ0KCk7CiAgICAgY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBt
X2NhbGxiYWNrLCBhcmdzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
U1FMU3RhdGVtZW50Q2FsbGJhY2suY3BwCmluZGV4IDEwN2E0OTEuLjc2M2UyNjYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNw
cApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s6Omhh
bmRsZUV2ZW50KFNRTFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgU1FMUgogICAgIGlmICghbV9m
cmFtZS0+c2NyaXB0KCktPmlzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBG
SVhNRTogVGhpcyBpcyBsaWtlbHkgdGhlIHdyb25nIGdsb2JhbE9iamVjdCAoZm9yIHByb3RvdHlw
ZSBjaGFpbnMgYXQgbGVhc3QpCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
ZnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QoKTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICAgICAgCkBAIC03NCw4ICs3NSw4IEBAIHZv
aWQgSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjazo6aGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBTUUxSCiAgICAgUmVmUHRyPEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2Fs
bGJhY2s+IHByb3RlY3QodGhpcyk7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwot
ICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgdHJhbnNhY3Rpb24pKTsKLSAgICBhcmdzLmFwcGVu
ZCh0b0pTKGV4ZWMsIHJlc3VsdFNldCkpOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgdHJhbnNhY3Rpb24pKTsKKyAg
ICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5
cGUoZXhlYyksIHJlc3VsdFNldCkpOwogICAgICAgICAKICAgICBnbG9iYWxPYmplY3QtPmdsb2Jh
bERhdGEoKS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBjYWxsKGV4ZWMsIGZ1bmN0aW9u
LCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY2FsbGJhY2ssIGFyZ3MpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3Bw
CmluZGV4IDAxOGRhYmQuLjQyYjRhNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKQEAgLTU0LDcgKzU0
LDggQEAgYm9vbCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50
KFNRTFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKICAgICAgICAgCiAgICAgaWYgKCFtX2ZyYW1l
LT5zY3JpcHQoKS0+aXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAK
KworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGxpa2VseSB0aGUgd3JvbmcgZ2xvYmFsT2JqZWN0IChm
b3IgcHJvdG90eXBlIGNoYWlucyBhdCBsZWFzdCkKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gbV9mcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdCgpOwogICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgICAgICAKQEAgLTc3LDgg
Kzc4LDggQEAgYm9vbCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2
ZW50KFNRTFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKICAgICBSZWZQdHI8SlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOwogICAgICAgICAKICAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgdHJhbnNh
Y3Rpb24pKTsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGVycm9yKSk7CisgICAgYXJncy5h
cHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMp
LCB0cmFuc2FjdGlvbikpOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEds
b2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZXJyb3IpKTsKICAgICAgICAgCiAgICAgSlNW
YWx1ZSByZXN1bHQ7CiAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVj
a2VyLnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5jcHAKaW5kZXggYTQxYWM3OC4uZDY5YzU1MyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNr
LmNwcApAQCAtOTQsNyArOTQsOCBAQCB2b2lkIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFj
azo6aGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBibwogCiAgICAgaWYg
KCFtX2RhdGEtPmZyYW1lKCktPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgICAgICAKKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGxpa2VseSB0aGUgd3JvbmcgZ2xv
YmFsT2JqZWN0IChmb3IgcHJvdG90eXBlIGNoYWlucyBhdCBsZWFzdCkKICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gbV9kYXRhLT5mcmFtZSgpLT5zY3JpcHQoKS0+Z2xvYmFsT2Jq
ZWN0KCk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7
CiAgICAgICAgIApAQCAtMTE3LDcgKzExOCw3IEBAIHZvaWQgSlNDdXN0b21TUUxUcmFuc2FjdGlv
bkNhbGxiYWNrOjpoYW5kbGVFdmVudChTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGJvCiAg
ICAgUmVmUHRyPEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsK
ICAgICAgICAgCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVu
ZCh0b0pTKGV4ZWMsIHRyYW5zYWN0aW9uKSk7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBk
ZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCB0cmFuc2FjdGlvbikpOwog
CiAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7
CiAgICAgaWYgKGhhbmRsZUV2ZW50Q2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrLmNwcAppbmRleCAzMjRlMmJiLi4yMjFlOGM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNw
cApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrOjpoYW5kbGVFdmVudChTUUxFcnJvciogZXJyb3IpCiAgICAgaWYgKCFtX2ZyYW1lLT5zY3Jp
cHQoKS0+aXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGxpa2VseSB0aGUgd3JvbmcgZ2xvYmFsT2JqZWN0IChmb3IgcHJvdG90eXBlIGNoYWlucyBh
dCBsZWFzdCkKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9mcmFtZS0+c2Ny
aXB0KCktPmdsb2JhbE9iamVjdCgpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpOwogCkBAIC03NCw3ICs3NSw3IEBAIHZvaWQgSlNDdXN0b21TUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNRTEVycm9yKiBlcnJvcikKICAgICBS
ZWZQdHI8SlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7
CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgZXJyb3IpKTsKKyAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9i
YWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIGVycm9yKSk7CiAKICAgICBnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBjYWxsKGV4ZWMsIGZ1
bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY2FsbGJhY2ssIGFyZ3MpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDgxZDU5ZmIuLjkxMGRhMTIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTQ1NSwzMSArNDU1LDM2IEBAIHZvaWQgc2V0RE9N
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSBlYykKICAgICBpZiAoIWVj
IHx8IGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhN
RTogQWxsIGNhbGxlcnMgdG8gc2V0RE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmln
aHQgZ2xvYmFsIG9iamVjdAorICAgIC8vIGZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0
aGUgbGV4aWNhbEdsb2JhbE9iamVjdC4gIFdoaWNoIGlzIHdyb25nIGluIGNhc2VzIGxpa2UgdGhp
czoKKyAgICAvLyBmcmFtZXNbMF0uZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsLCBudWxsKTsg
Ly8gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGljaCBzaG91bGQgaGF2ZSB0aGUgc3ViZnJhbWVzIHBy
b3RvdHlwZXMuCisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0
ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyk7CisKICAgICBFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24gZGVzY3JpcHRpb247CiAgICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKGVj
LCBkZXNjcmlwdGlvbik7CiAKICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0OwogICAgIHN3aXRjaCAo
ZGVzY3JpcHRpb24udHlwZSkgewogICAgICAgICBjYXNlIERPTUV4Y2VwdGlvblR5cGU6Ci0gICAg
ICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgRE9NQ29yZUV4Y2VwdGlvbjo6Y3JlYXRl
KGRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBET01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJhbmdlRXhjZXB0aW9uVHlwZToKLSAgICAgICAg
ICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBSYW5nZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2Ny
aXB0aW9uKSk7CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBSYW5nZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBFdmVudEV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJv
ck9iamVjdCA9IHRvSlMoZXhlYywgRXZlbnRFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikp
OworICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgRXZl
bnRFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25UeXBlOgotICAgICAgICAgICAgZXJy
b3JPYmplY3QgPSB0b0pTKGV4ZWMsIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpjcmVhdGUoZGVz
Y3JpcHRpb24pKTsKKyAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAg
ICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIGNhc2UgU1ZHRXhjZXB0
aW9uVHlwZToKLSAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBTVkdFeGNlcHRp
b246OmNyZWF0ZShkZXNjcmlwdGlvbikuZ2V0KCksIDApOworICAgICAgICAgICAgZXJyb3JPYmpl
Y3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRpb24pLmdldCgpLCAwKTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxF
KFhQQVRIKQogICAgICAgICBjYXNlIFhQYXRoRXhjZXB0aW9uVHlwZToKLSAgICAgICAgICAgIGVy
cm9yT2JqZWN0ID0gdG9KUyhleGVjLCBYUGF0aEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9u
KSk7CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBY
UGF0aEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CiAgICAgICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGM4NjM4Mzku
LjY1ZTdhYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMTY3LDYzICsxNjcs
NjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEpTQzo6SlNPYmplY3QqPihhc09iamVjdChnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNz
PihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpLT5z
dG9yZWRQcm90b3R5cGUoKSkpOwogICAgIH0KLSAgICAjZGVmaW5lIENSRUFURV9ET01fT0JKRUNU
X1dSQVBQRVIoZXhlYywgY2xhc3NOYW1lLCBvYmplY3QpIGNyZWF0ZURPTU9iamVjdFdyYXBwZXI8
SlMjI2NsYXNzTmFtZT4oZXhlYywgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkKLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgRE9N
T2JqZWN0KiBjcmVhdGVET01PYmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01D
bGFzcyogb2JqZWN0KQorICAgICNkZWZpbmUgQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIGNsYXNzTmFtZSwgb2JqZWN0KSBjcmVhdGVET01PYmplY3RXcmFwcGVy
PEpTIyNjbGFzc05hbWU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1l
Kj4ob2JqZWN0KSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNs
YXNzPiBpbmxpbmUgRE9NT2JqZWN0KiBjcmVhdGVET01PYmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01DbGFzcyogb2Jq
ZWN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgICAgIEFTU0VSVCghZ2V0
Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCkpOwogICAg
ICAgICAvLyBGSVhNRTogbmV3IChleGVjKSBjb3VsZCB1c2UgYSBkaWZmZXJlbnQgZ2xvYmFsRGF0
YSB0aGFuIHRoZSBnbG9iYWxEYXRhIHRoaXMgd3JhcHBlciBpcyBjYWNoZWQgb24uCi0gICAgICAg
IFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVwcmVjYXRlZEdsb2JhbE9i
amVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqZWN0KTsKKyAgICAgICAgV3JhcHBlckNsYXNzKiB3
cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJD
bGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogICAgICAg
ICBjYWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QsIHdyYXBw
ZXIpOwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9Ci0gICAgdGVtcGxhdGU8Y2xhc3Mg
V3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRET01P
YmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01DbGFzcyogb2JqZWN0KQorICAg
IHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6
OkpTVmFsdWUgZ2V0RE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG9iamVjdCkKICAgICB7CiAgICAg
ICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7CiAgICAg
ICAgIGlmIChET01PYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKGV4
ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwot
ICAgICAgICByZXR1cm4gY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4ZWMs
IG9iamVjdCk7CisgICAgICAgIHJldHVybiBjcmVhdGVET01PYmplY3RXcmFwcGVyPFdyYXBwZXJD
bGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogICAgIH0KIAogI2lmIEVOQUJMRShT
VkcpCi0gICAgI2RlZmluZSBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGNsYXNzTmFt
ZSwgb2JqZWN0LCBjb250ZXh0KSBjcmVhdGVET01PYmplY3RXcmFwcGVyPEpTIyNjbGFzc05hbWU+
KGV4ZWMsIHN0YXRpY19jYXN0PGNsYXNzTmFtZSo+KG9iamVjdCksIGNvbnRleHQpCi0gICAgdGVt
cGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIERPTU9iamVj
dCogY3JlYXRlRE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9NQ2xhc3Mq
IG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAgICAjZGVmaW5lIENSRUFURV9TVkdfT0JK
RUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBjbGFzc05hbWUsIG9iamVjdCwgY29udGV4
dCkgY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxKUyMjY2xhc3NOYW1lPihleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PGNsYXNzTmFtZSo+KG9iamVjdCksIGNvbnRleHQpCisgICAgdGVtcGxh
dGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIERPTU9iamVjdCog
Y3JlYXRlRE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENh
Y2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKLSAgICAg
ICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBkZXByZWNhdGVkR2xvYmFs
T2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBvYmplY3QsIGNvbnRleHQpOworICAgICAgICBXcmFw
cGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhnZXRET01TdHJ1Y3R1
cmU8V3JhcHBlckNsYXNzPihleGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QsIG9iamVj
dCwgY29udGV4dCk7CiAgICAgICAgIGNhY2hlRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxE
YXRhKCksIG9iamVjdCwgd3JhcHBlcik7CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogICAgIH0K
LSAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUg
SlNDOjpKU1ZhbHVlIGdldERPTU9iamVjdFdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIERP
TUNsYXNzKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAgdGVtcGxhdGU8Y2xhc3Mg
V3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRET01P
YmplY3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBET01DbGFzcyogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KQogICAgIHsK
ICAgICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsK
ICAgICAgICAgaWYgKERPTU9iamVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBw
ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7Ci0gICAgICAgIHJldHVybiBjcmVhdGVET01PYmplY3RXcmFwcGVyPFdyYXBwZXJDbGFzcz4o
ZXhlYywgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURPTU9iamVjdFdy
YXBwZXI8V3JhcHBlckNsYXNzPihleGVjLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgY29udGV4dCk7
CiAgICAgfQogI2VuZGlmCiAKLSAgICAjZGVmaW5lIENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4
ZWMsIGNsYXNzTmFtZSwgb2JqZWN0KSBjcmVhdGVET01Ob2RlV3JhcHBlcjxKUyMjY2xhc3NOYW1l
PihleGVjLCBzdGF0aWNfY2FzdDxjbGFzc05hbWUqPihvYmplY3QpKQotICAgIHRlbXBsYXRlPGNs
YXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU05vZGUqIGNyZWF0ZURP
TU5vZGVXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01DbGFzcyogbm9kZSkKKyAgICAj
ZGVmaW5lIENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgY2xhc3NO
YW1lLCBvYmplY3QpIGNyZWF0ZURPTU5vZGVXcmFwcGVyPEpTIyNjbGFzc05hbWU+KGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgSlNOb2RlKiBjcmVh
dGVET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5vZGUpCiAgICAgewogICAgICAgICBBU1NFUlQobm9k
ZSk7CiAgICAgICAgIEFTU0VSVCghZ2V0Q2FjaGVkRE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1l
bnQoKSwgbm9kZSkpOwotICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMp
IFdyYXBwZXJDbGFzcyhkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhl
YyksIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG5vZGUpOworICAg
ICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhnZXRE
T01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmpl
Y3QsIG5vZGUpOwogICAgICAgICAvLyBGSVhNRTogVGhlIGVudGlyZSBmdW5jdGlvbiBjYW4gYmUg
cmVtb3ZlZCwgb25jZSB3ZSBmaXggY2FjaGluZy4KICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBp
cyBhIG9uZS1vZmYgaGFjayB0byBtYWtlIE5vZGVzIGNhY2hlIGluIHRoZSByaWdodCBnbG9iYWwg
b2JqZWN0LgogICAgICAgICBjYWNoZURPTU5vZGVXcmFwcGVyKG5vZGUtPmRvY3VtZW50KCksIG5v
ZGUsIHdyYXBwZXIpOwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9Ci0gICAgdGVtcGxh
dGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1
ZSBnZXRET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9NQ2xhc3MqIG5vZGUp
CisgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5l
IEpTQzo6SlNWYWx1ZSBnZXRET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5vZGUpCiAgICAgewogICAg
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsKICAgICAg
ICAgaWYgKEpTTm9kZSogd3JhcHBlciA9IGdldENhY2hlZERPTU5vZGVXcmFwcGVyKG5vZGUtPmRv
Y3VtZW50KCksIG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgICAgIHJl
dHVybiBjcmVhdGVET01Ob2RlV3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4ZWMsIG5vZGUpOworICAg
ICAgICByZXR1cm4gY3JlYXRlRE9NTm9kZVdyYXBwZXI8V3JhcHBlckNsYXNzPihleGVjLCBnbG9i
YWxPYmplY3QsIG5vZGUpOwogICAgIH0KIAogICAgIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBnZXRI
YXNoVGFibGVGb3JHbG9iYWxEYXRhKEpTQzo6SlNHbG9iYWxEYXRhJiwgY29uc3QgSlNDOjpIYXNo
VGFibGUqIHN0YXRpY1RhYmxlKTsKQEAgLTI1MCw3ICsyNTAsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIEpTQzo6VVN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZhbHVlIGlzIG51bGwKICAg
ICBKU0M6OlVTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhlIHZhbHVlIGlzIG51bGwg
b3IgdW5kZWZpbmVkCiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFQ+IHB0cikgeyByZXR1
cm4gdG9KUyhleGVjLCBwdHIuZ2V0KCkpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFQ+IHB0cikKKyAgICB7CisgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHRyLmdldCgpKTsKKyAgICB9CiAK
ICAgICBib29sIGNoZWNrTm9kZVNlY3VyaXR5KEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggMGY0MTliYS4uZGY2MDY4
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtNjMsNyArNjMs
NyBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6dXBkYXRlRG9jdW1lbnQoKQogewogICAgIEFTU0VS
VChkKCktPmltcGwtPmRvY3VtZW50KCkpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbEV4
ZWMoKTsKLSAgICBzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVzKElkZW50aWZpZXIoZXhlYywg
ImRvY3VtZW50IiksIHRvSlMoZXhlYywgZCgpLT5pbXBsLT5kb2N1bWVudCgpKSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKKyAgICBzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVzKElkZW50aWZp
ZXIoZXhlYywgImRvY3VtZW50IiksIHRvSlMoZXhlYywgdGhpcywgZCgpLT5pbXBsLT5kb2N1bWVu
dCgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogSlNET01XaW5kb3dCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKQEAgLTE3
Miw2ICsxNzIsMTMgQEAgSlNHbG9iYWxEYXRhKiBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vbkpTR2xv
YmFsRGF0YSgpCiAgICAgcmV0dXJuIGdsb2JhbERhdGE7CiB9CiAKKy8vIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsCisv
LyB1c2UgdGhhdCBET01XaW5kb3cncyBwcm90b3R5cGUgY2hhaW4uCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIERPTVdpbmRvdyogZG9tV2luZG93KQor
eworICAgIHJldHVybiB0b0pTKGV4ZWMsIGRvbVdpbmRvdyk7Cit9CisKIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqLCBET01XaW5kb3cqIGRvbVdpbmRvdykKIHsKICAgICBpZiAoIWRvbVdpbmRvdykK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDExMzM0NGYuLjg0Y2M4MWYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtODksNiArODksOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKIAogICAgIC8vIFJldHVybnMgYSBKU0RPTVdpbmRv
dyBvciBqc051bGwoKQorICAgIC8vIEpTRE9NR2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nl
c2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsCisgICAgLy8gdXNlIHRoYXQgRE9NV2lu
ZG93J3MgcHJvdG90eXBlIGNoYWluLgorICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cqKTsKICAgICBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIERPTVdpbmRvdyopOwogCiAgICAgLy8gUmV0dXJucyBKU0RP
TVdpbmRvdyBvciAwCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmlu
ZGV4IDMzYWM3YmIuLmVkMTAwMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xMjQsOCArMTI0LDggQEAgc3RhdGljIEpTVmFsdWUgbmFtZWRJdGVtR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLAogCiAg
ICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9uID0gZG9jdW1lbnQtPndpbmRvd05h
bWVkSXRlbXMocHJvcGVydHlOYW1lKTsKICAgICBpZiAoY29sbGVjdGlvbi0+bGVuZ3RoKCkgPT0g
MSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgY29sbGVjdGlvbi0+Zmlyc3RJdGVtKCkpOwot
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24uZ2V0KCkpOworICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCB0aGlzT2JqLCBjb2xsZWN0aW9uLT5maXJzdEl0ZW0oKSk7CisgICAgcmV0dXJu
IHRvSlMoZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKIGJvb2wgSlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpAQCAtNDIxLDcgKzQyMSw3IEBA
IEpTVmFsdWUgSlNET01XaW5kb3c6OmV2ZW50KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBF
dmVudCogZXZlbnQgPSBjdXJyZW50RXZlbnQoKTsKICAgICBpZiAoIWV2ZW50KQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBldmVudCk7CisgICAg
cmV0dXJuIHRvSlMoZXhlYywgY29uc3RfY2FzdDxKU0RPTVdpbmRvdyo+KHRoaXMpLCBldmVudCk7
CiB9CiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OmltYWdlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5j
cHAKaW5kZXggYzdmZmNkZS4uOTFiM2QxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgYm9vbCBK
U0RhdGFHcmlkQ29sdW1uTGlzdDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIERhdGFH
cmlkQ29sdW1uTGlzdCogaW0KIEpTVmFsdWUgSlNEYXRhR3JpZENvbHVtbkxpc3Q6Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0RhdGFHcmlkQ29sdW1uTGlzdCogdGhpc09i
aiA9IHN0YXRpY19jYXN0PEpTRGF0YUdyaWRDb2x1bW5MaXN0Kj4oYXNPYmplY3Qoc2xvdC5zbG90
QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5pdGVtV2l0
aE5hbWUocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xv
YmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+aXRlbVdpdGhOYW1lKHByb3BlcnR5TmFtZSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcAppbmRleCA0NGVmOTdiLi40OTNhYWVhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBKU0RvY3VtZW50
OjpzZXRMb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAgZnJhbWUt
PmxvYWRlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHN0ciwgYWN0aXZlRnJhbWUtPmxvYWRl
cigpLT5vdXRnb2luZ1JlZmVycmVyKCksICFhY3RpdmVGcmFtZS0+c2NyaXB0KCktPmFueVBhZ2VJ
c1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpLCBmYWxzZSwgdXNlckdlc3R1cmUpOwogfQogCi1KU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBEb2N1bWVudCogZG9jdW1lbnQpCitKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEb2N1
bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwpAQCAtODksMTMgKzg5LDEzIEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAo
ZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X09CSkVDVF9XUkFQUEVSKGV4ZWMsIEhUTUxEb2N1bWVudCwgZG9jdW1lbnQpOworICAgICAgICB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhU
TUxEb2N1bWVudCwgZG9jdW1lbnQpOwogI2lmIEVOQUJMRShTVkcpCiAgICAgZWxzZSBpZiAoZG9j
dW1lbnQtPmlzU1ZHRG9jdW1lbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JK
RUNUX1dSQVBQRVIoZXhlYywgU1ZHRG9jdW1lbnQsIGRvY3VtZW50KTsKKyAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdEb2N1
bWVudCwgZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBEb2N1bWVudCwgZG9jdW1lbnQpOworICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IERvY3VtZW50LCBkb2N1bWVudCk7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhlIGRvY3VtZW50IGlz
IGtlcHQgYXJvdW5kIGJ5IHRoZSB3aW5kb3cgb2JqZWN0LCBhbmQgd29ya3MgcmlnaHQgd2l0aCB0
aGUKICAgICAvLyBiYWNrL2ZvcndhcmQgY2FjaGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVu
dEN1c3RvbS5jcHAKaW5kZXggYTAxMzU3Yi4uMmVmYjVmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFbGVtZW50Q3VzdG9tLmNwcApAQCAtODksNyArODksNyBAQCBKU1ZhbHVlIEpTRWxlbWVudDo6
c2V0QXR0cmlidXRlTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAg
ICAgaWYgKCFhbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoZXhlYywgaW1wLCBuZXdBdHRy
LT5uYW1lKCksIG5ld0F0dHItPnZhbHVlKCkpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPnNl
dEF0dHJpYnV0ZU5vZGUobmV3QXR0ciwgZWMpKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXAtPnNldEF0dHJpYnV0ZU5vZGUo
bmV3QXR0ciwgZWMpKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQpAQCAtMTIzLDEyICsxMjMsMTIgQEAgSlNWYWx1ZSBKU0VsZW1lbnQ6OnNl
dEF0dHJpYnV0ZU5vZGVOUyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAg
ICAgaWYgKCFhbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoZXhlYywgaW1wLCBuZXdBdHRy
LT5uYW1lKCksIG5ld0F0dHItPnZhbHVlKCkpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPnNl
dEF0dHJpYnV0ZU5vZGVOUyhuZXdBdHRyLCBlYykpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcC0+c2V0QXR0cmlidXRlTm9k
ZU5TKG5ld0F0dHIsIGVjKSkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSog
ZXhlYywgRWxlbWVudCogZWxlbWVudCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVsZW1lbnQqIGVsZW1l
bnQpCiB7CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CkBAIC0x
MzcsMTMgKzEzNywxMyBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVj
LCBFbGVtZW50KiBlbGVtZW50KQogCiAgICAgSlNOb2RlKiB3cmFwcGVyOyAgICAgICAgCiAgICAg
aWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpT
SFRNTFdyYXBwZXIoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7Cisg
ICAgICAgIHdyYXBwZXIgPSBjcmVhdGVKU0hUTUxXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CiAjaWYgRU5BQkxFKFNWRykKICAg
ICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IGNy
ZWF0ZUpTU1ZHV3JhcHBlcihleGVjLCBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVudCkp
OworICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNTVkdXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKICNlbmRpZgogICAgIGVsc2UK
LSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIEVsZW1lbnQs
IGVsZW1lbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhl
YywgZ2xvYmFsT2JqZWN0LCBFbGVtZW50LCBlbGVtZW50KTsKIAogICAgIHJldHVybiB3cmFwcGVy
OyAgICAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCmluZGV4IDNmYTEyNTku
LjQ1NDI3OWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcApAQCAtNzYsMTAg
Kzc2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSlNWYWx1ZSBKU0V2ZW50OjpjbGlwYm9h
cmREYXRhKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gaW1wbCgpLT5pc0Ns
aXBib2FyZEV2ZW50KCkgPyB0b0pTKGV4ZWMsIGltcGwoKS0+Y2xpcGJvYXJkRGF0YSgpKSA6IGpz
VW5kZWZpbmVkKCk7CisgICAgcmV0dXJuIGltcGwoKS0+aXNDbGlwYm9hcmRFdmVudCgpID8gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QoKSwgaW1wbCgpLT5jbGlwYm9hcmREYXRhKCkpIDoganNVbmRl
ZmluZWQoKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRXZlbnQqIGV2ZW50
KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRXZlbnQqIGV2ZW50KQogewogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKIApAQCAt
OTIsNDUgKzkyLDQ1IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEV2ZW50KiBldmVu
dCkKIAogICAgIGlmIChldmVudC0+aXNVSUV2ZW50KCkpIHsKICAgICAgICAgaWYgKGV2ZW50LT5p
c0tleWJvYXJkRXZlbnQoKSkKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVD
VF9XUkFQUEVSKGV4ZWMsIEtleWJvYXJkRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgS2V5Ym9h
cmRFdmVudCwgZXZlbnQpOwogICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkK
LSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFRl
eHRFdmVudCwgZXZlbnQpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNU
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUZXh0RXZlbnQsIGV2ZW50KTsKICAgICAgICAg
ZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQotICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgTW91c2VFdmVudCwgZXZlbnQpOworICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBNb3VzZUV2ZW50LCBldmVudCk7CiAgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVs
RXZlbnQoKSkKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIFdoZWVsRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2hlZWxFdmVudCwgZXZlbnQp
OwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVu
dCgpKQotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywgU1ZHWm9vbUV2ZW50LCBldmVudCk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1pvb21FdmVudCwgZXZlbnQp
OwogI2VuZGlmCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X09CSkVDVF9XUkFQUEVSKGV4ZWMsIFVJRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgVUlFdmVu
dCwgZXZlbnQpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgpKQotICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBNdXRhdGlvbkV2
ZW50LCBldmVudCk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIGdsb2JhbE9iamVjdCwgTXV0YXRpb25FdmVudCwgZXZlbnQpOwogICAgIGVsc2UgaWYg
KGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgT3ZlcmZsb3dFdmVudCwgZXZlbnQpOworICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIE92ZXJm
bG93RXZlbnQsIGV2ZW50KTsKICAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkK
LSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgTWVzc2Fn
ZUV2ZW50LCBldmVudCk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgTWVzc2FnZUV2ZW50LCBldmVudCk7CiAgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CiAgICAgICAgIGlmIChldmVudC0+aXNYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCwgZXZl
bnQpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywgZ2xvYmFsT2JqZWN0LCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQsIGV2ZW50KTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgUHJvZ3Jlc3NFdmVudCwgZXZlbnQpOworICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBQcm9ncmVzc0V2ZW50
LCBldmVudCk7CiAgICAgfQogI2lmIEVOQUJMRShET01fU1RPUkFHRSkKICAgICBlbHNlIGlmIChl
dmVudC0+aXNTdG9yYWdlRXZlbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JK
RUNUX1dSQVBQRVIoZXhlYywgU3RvcmFnZUV2ZW50LCBldmVudCk7CisgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU3RvcmFnZUV2
ZW50LCBldmVudCk7CiAjZW5kaWYKICAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRp
b25FdmVudCgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihl
eGVjLCBXZWJLaXRBbmltYXRpb25FdmVudCwgZXZlbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktpdEFuaW1hdGlv
bkV2ZW50LCBldmVudCk7CiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2
ZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMs
IFdlYktpdFRyYW5zaXRpb25FdmVudCwgZXZlbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktpdFRyYW5zaXRpb25F
dmVudCwgZXZlbnQpOwogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGVsc2UgaWYgKGV2ZW50LT5p
c0Vycm9yRXZlbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgRXJyb3JFdmVudCwgZXZlbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEVycm9yRXZlbnQsIGV2ZW50KTsK
ICNlbmRpZgogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dS
QVBQRVIoZXhlYywgRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFdmVudCwgZXZlbnQpOwogCiAgICAg
cmV0dXJuIHdyYXBwZXI7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAK
aW5kZXggYjllZDY4NS4uZDc4YjI5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmNwcApAQCAtNzEsNiArNzEsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCiAgICAgLy8gTnVsbCBjaGVjayBh
cyBjbGVhckdsb2JhbE9iamVjdCgpIGNhbiBjbGVhciB0aGlzIGFuZCB3ZSBzdGlsbCBnZXQgY2Fs
bGVkIGJhY2sgYnkKICAgICAvLyB4bWxodHRwcmVxdWVzdCBvYmplY3RzLiBTZWUgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzUKICAgICAvLyBGSVhNRTogSXMgdGhp
cyBjaGVjayBzdGlsbCBuZWNlc3Nhcnk/IFJlcXVlc3RzIGFyZSBzdXBwb3NlZCB0byBiZSBzdG9w
cGVkIGJlZm9yZSBjbGVhckdsb2JhbE9iamVjdCgpIGlzIGNhbGxlZC4KKyAgICBBU1NFUlQoZ2xv
YmFsT2JqZWN0KTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0xMDcsNyArMTA4LDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQogICAgICAgICByZWYoKTsKIAogICAgICAgICBN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMs
IGV2ZW50KSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBl
dmVudCkpOwogCiAgICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJy
ZW50RXZlbnQoKTsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZlbnQp
OwpAQCAtMTI3LDcgKzEyOCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChF
dmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKICAgICAgICAgICAgIGlmIChpc1dpbmRv
d0V2ZW50KQogICAgICAgICAgICAgICAgIHRoaXNWYWx1ZSA9IGdsb2JhbE9iamVjdC0+dG9UaGlz
T2JqZWN0KGV4ZWMpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaXNWYWx1
ZSA9IHRvSlMoZXhlYywgZXZlbnQtPmN1cnJlbnRUYXJnZXQoKSk7CisgICAgICAgICAgICAgICAg
dGhpc1ZhbHVlID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGV2ZW50LT5jdXJyZW50VGFyZ2V0
KCkpOwogICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVj
a2VyLnN0YXJ0KCk7CiAgICAgICAgICAgICByZXR2YWwgPSBjYWxsKGV4ZWMsIGpzRnVuY3Rpb24s
IGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdzKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggM2RhYjZmNi4uY2RlMDcyYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgRXZlbnRUYXJnZXQqIHRhcmdldCkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJn
ZXQpCiB7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTcz
LDMyICs3MywzMiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBFdmVudFRhcmdldCog
dGFyZ2V0KQogI2lmIEVOQUJMRShTVkcpCiAgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBv
cnRzIGJvdGggdG9TVkdFbGVtZW50SW5zdGFuY2UgYW5kIHRvTm9kZSBzaW5jZSBzbyBtdWNoIG1v
dXNlIGhhbmRsaW5nIGNvZGUgZGVwZW5kcyBvbiB0b05vZGUgcmV0dXJuaW5nIGEgdmFsaWQgbm9k
ZS4KICAgICBpZiAoU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+dG9TVkdF
bGVtZW50SW5zdGFuY2UoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgaW5zdGFuY2UpOwor
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluc3RhbmNlKTsKICNlbmRp
ZgogICAgIAogICAgIGlmIChOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKSkKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgbm9kZSk7CiAKICAgICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSB0YXJnZXQt
PnRvRE9NV2luZG93KCkpCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGRvbVdpbmRvdyk7Cisg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tV2luZG93KTsKIAogICAg
IGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0KCkpCi0g
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHhocik7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgeGhyKTsKIAogICAgIGlmIChYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBs
b2FkID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0VXBsb2FkKCkpCi0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIHVwbG9hZCk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgdXBsb2FkKTsKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAg
aWYgKERPTUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50b0RPTUFwcGxpY2F0aW9u
Q2FjaGUoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgY2FjaGUpOworICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGNhY2hlKTsKICNlbmRpZgogCiAgICAgaWYgKE1l
c3NhZ2VQb3J0KiBtZXNzYWdlUG9ydCA9IHRhcmdldC0+dG9NZXNzYWdlUG9ydCgpKQotICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCBtZXNzYWdlUG9ydCk7CisgICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnQpOwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAg
ICAgaWYgKFdvcmtlciogd29ya2VyID0gdGFyZ2V0LT50b1dvcmtlcigpKQotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCB3b3JrZXIpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHdvcmtlcik7CiAKICAgICBpZiAoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9
IHRhcmdldC0+dG9Xb3JrZXJDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiB0b0pTRE9NR2xvYmFs
T2JqZWN0KHdvcmtlckNvbnRleHQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEV2ZW50VGFyZ2V0KiB0YXJnZXQpCiAKICNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUlMpCiAgICAgaWYgKFNoYXJlZFdvcmtlciogc2hhcmVkV29ya2VyID0gdGFyZ2V0LT50
b1NoYXJlZFdvcmtlcigpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzaGFyZWRXb3JrZXIp
OworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHNoYXJlZFdvcmtlcik7
CiAjZW5kaWYKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuaAppbmRleCAwNWRmMDU2Li5kZGQ4MjMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXQuaApAQCAtMzUsOCArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50VGFyZ2V0OworICAgIGNsYXNzIEpTRE9NR2xvYmFs
T2JqZWN0OwogCi0gICAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBFdmVudFRh
cmdldCopOworICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqLCBFdmVudFRhcmdldCopOwogICAgIEV2ZW50VGFyZ2V0KiB0b0V2ZW50VGFyZ2V0
KEpTQzo6SlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDAyNzRhY2YuLmRkOWFm
NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3Rv
bS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cApAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgSlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0
ZSogZXhlYywgSlNIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgY29ucwogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgY29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXNbMF0u
Z2V0KCkpOwogCiAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbihl
eGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7CiB9CkBAIC02OCw3
ICs2OCw3IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEhUTUxDb2xsZWN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0CiAgICAgICAgIFVTdHJpbmcgc3RyaW5n
ID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKTsKICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBz
dHJpbmcudG9VSW50MzIoJm9rLCBmYWxzZSk7CiAgICAgICAgIGlmIChvaykKLSAgICAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGpzQ29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCksIGNvbGxlY3Rp
b24tPml0ZW0oaW5kZXgpKTsKIAogICAgICAgICAvLyBTdXBwb3J0IGZvciBkb2N1bWVudC5pbWFn
ZXMoJzxuYW1lPicpIGV0Yy4KICAgICAgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywganND
b2xsZWN0aW9uLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZykpOwpAQCAtODMsNyArODMsNyBAQCBz
dGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIVE1MQ29sbGVjdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBmdW5jdAogICAgICAgICBOb2RlKiBub2RlID0gY29sbGVjdGlvbi0+
bmFtZWRJdGVtKHBzdHIpOwogICAgICAgICB3aGlsZSAobm9kZSkgewogICAgICAgICAgICAgaWYg
KCFpbmRleCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBub2RlKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBqc0NvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgp
LCBub2RlKTsKICAgICAgICAgICAgIG5vZGUgPSBjb2xsZWN0aW9uLT5uZXh0TmFtZWRJdGVtKHBz
dHIpOwogICAgICAgICAgICAgLS1pbmRleDsKICAgICAgICAgfQpAQCAtMTE2LDcgKzExNiw3IEBA
IEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6aXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFy
Z0xpc3QmIGFyZ3MpCiAgICAgYm9vbCBvazsKICAgICB1aW50MzJfdCBpbmRleCA9IGFyZ3MuYXQo
MCkudG9TdHJpbmcoZXhlYykudG9VSW50MzIoJm9rLCBmYWxzZSk7CiAgICAgaWYgKG9rKQotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBpbXBsKCktPml0ZW0oaW5kZXgpKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcGwoKS0+aXRlbShpbmRleCkpOwogICAg
IHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5h
dCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCkBAIC0xMjUsNyArMTI1LDcgQEAgSlNWYWx1ZSBK
U0hUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXMsIElkZW50aWZpZXIo
ZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCi1KU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK0pTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEhUTUxDb2xs
ZWN0aW9uKiBjb2xsZWN0aW9uKQogewogICAgIGlmICghY29sbGVjdGlvbikKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwpAQCAtMTM3LDE0ICsxMzcsMTQgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0
ZSogZXhlYywgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCiAKICAgICBzd2l0Y2ggKGNvbGxl
Y3Rpb24tPnR5cGUoKSkgewogICAgICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6Ci0gICAgICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24sIGNvbGxlY3Rpb24pOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MT3B0aW9uc0NvbGxlY3Rpb24s
IGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRG9jQWxsOgog
ICAgICAgICAgICAgdHlwZWRlZiBIVE1MQ29sbGVjdGlvbiBIVE1MQWxsQ29sbGVjdGlvbjsKLSAg
ICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIEhUTUxB
bGxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTEFsbENvbGxlY3Rpb24s
IGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBIVE1MQ29s
bGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9P
QkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uLCBjb2xsZWN0
aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCBjMTEzZWM3Li40YjM3NDU1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtNzMsMTAgKzcz
LDEwIEBAIEpTVmFsdWUgSlNIVE1MRG9jdW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKGlmcmFtZVRhZykgJiYgKGZyYW1lID0gc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQq
Pihub2RlKS0+Y29udGVudEZyYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
ZnJhbWUpOwogCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgbm9kZSk7CiAgICAgfSAKIAot
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24uZ2V0KCkpOworICAgIHJldHVybiB0b0pT
KGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uLmdldCgpKTsKIH0KIAog
Ly8gQ3VzdG9tIGF0dHJpYnV0ZXMKQEAgLTg4LDcgKzg4LDcgQEAgSlNWYWx1ZSBKU0hUTUxEb2N1
bWVudDo6YWxsKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAodikKICAgICAgICAgcmV0
dXJuIHY7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQq
PihpbXBsKCkpLT5hbGwoKS5nZXQoKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0KCksIHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGltcGwoKSktPmFsbCgpLmdldCgpKTsK
IH0KIAogdm9pZCBKU0hUTUxEb2N1bWVudDo6c2V0QWxsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCmlu
ZGV4IDMzNDU3NjQuLjQxOTQ2NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtMzgsMTQgKzM4LDE0IEBAIHZvaWQgSlNIVE1MRWxlbWVudDo6cHVz
aEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbiYgc2NvcGUpIGNv
CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsKCk7CiAKICAgICAvLyBUaGUgZG9jdW1l
bnQgaXMgcHV0IG9uIGZpcnN0LCBmYWxsIGJhY2sgdG8gc2VhcmNoaW5nIGl0IG9ubHkgYWZ0ZXIg
dGhlIGVsZW1lbnQgYW5kIGZvcm0uCi0gICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMs
IGVsZW1lbnQtPm93bmVyRG9jdW1lbnQoKSkpKTsKKyAgICBzY29wZS5wdXNoKGFzT2JqZWN0KHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGVsZW1lbnQtPm93bmVyRG9jdW1lbnQoKSkpKTsKIAog
ICAgIC8vIFRoZSBmb3JtIGlzIG5leHQsIHNlYXJjaGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQsIGJ1
dCBhZnRlciB0aGUgZWxlbWVudCBpdHNlbGYuCiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9y
bSA9IGVsZW1lbnQtPmZvcm0oKSkKLSAgICAgICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4
ZWMsIGZvcm0pKSk7CisgICAgICAgIHNjb3BlLnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBnbG9i
YWxPYmplY3QoKSwgZm9ybSkpKTsKIAogICAgIC8vIFRoZSBlbGVtZW50IGlzIG9uIHRvcCwgc2Vh
cmNoZWQgZmlyc3QuCi0gICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGVsZW1lbnQp
KSk7CisgICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBl
bGVtZW50KSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IGZmYTJkNTcuLmFlNjhm
ZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20u
Y3BwCkBAIC01Miw4ICs1Miw4IEBAIEpTVmFsdWUgSlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgZm9ybS0+
Z2V0TmFtZWRFbGVtZW50cyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOwogICAgIAogICAgIGlm
IChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1l
ZEl0ZW1zWzBdLmdldCgpKTsKLSAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPiAxKSAKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywganNGb3JtLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtc1sw
XS5nZXQoKSk7CisgICAgaWYgKG5hbWVkSXRlbXMuc2l6ZSgpID4gMSkKICAgICAgICAgcmV0dXJu
IG5ldyAoZXhlYykgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbihleGVjLCBqc0Zvcm0tPmdsb2JhbE9i
amVjdCgpLCBuYW1lZEl0ZW1zKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5j
cHAKaW5kZXggNDYwYmEwOC4uN2JjYTJkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTkxLDcgKzkxLDcgQEAg
SlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYgYXJncykKIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CiAgICAgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBpbXAgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihp
bXBsKCkpOwotICAgIEpTSFRNTFNlbGVjdEVsZW1lbnQqIGJhc2UgPSBzdGF0aWNfY2FzdDxKU0hU
TUxTZWxlY3RFbGVtZW50Kj4oYXNPYmplY3QodG9KUyhleGVjLCBpbXAtPmJhc2UoKSkpKTsKKyAg
ICBKU0hUTUxTZWxlY3RFbGVtZW50KiBiYXNlID0gc3RhdGljX2Nhc3Q8SlNIVE1MU2VsZWN0RWxl
bWVudCo+KGFzT2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcC0+YmFzZSgpKSkp
OwogICAgIHJldHVybiBiYXNlLT5yZW1vdmUoZXhlYywgYXJncyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcAppbmRleCA0OTBlNTBlLi5mYWFhZjQxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC01NSwyMSAr
NTUsMjIgQEAgc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RJbWFnZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXIKICAgICAgICAgaGVpZ2h0ID0gYXJncy5h
dCgxKS50b0ludDMyKGV4ZWMpOwogICAgIH0KIAotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0
YXRpY19jYXN0PEpTSW1hZ2VDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKS0+ZG9jdW1lbnQoKTsK
KyAgICBKU0ltYWdlQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0lt
YWdlQ29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
anNDb25zdHJ1Y3Rvci0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBSZWZlcmVuY2VFcnJvciwgIkltYWdlIGNvbnN0cnVjdG9y
IGFzc29jaWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKTsKIAogICAgIC8vIENhbGxpbmcg
dG9KUyBvbiB0aGUgZG9jdW1lbnQgY2F1c2VzIHRoZSBKUyBkb2N1bWVudCB3cmFwcGVyIHRvIGJl
CiAgICAgLy8gYWRkZWQgdG8gdGhlIHdpbmRvdyBvYmplY3QuIFRoaXMgaXMgZG9uZSB0byBlbnN1
cmUgdGhhdCBKU0RvY3VtZW50OjptYXJrCiAgICAgLy8gd2lsbCBiZSBjYWxsZWQgKHdoaWNoIHdp
bGwgY2F1c2UgdGhlIGltYWdlIGVsZW1lbnQgdG8gYmUgbWFya2VkIGlmIG5lY2Vzc2FyeSkuCi0g
ICAgdG9KUyhleGVjLCBkb2N1bWVudCk7CisgICAgdG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5n
bG9iYWxPYmplY3QoKSwgZG9jdW1lbnQpOwogCiAgICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+
IGltYWdlID0gbmV3IEhUTUxJbWFnZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGRvY3VtZW50
KTsKICAgICBpZiAod2lkdGhTZXQpCiAgICAgICAgIGltYWdlLT5zZXRXaWR0aCh3aWR0aCk7CiAg
ICAgaWYgKGhlaWdodFNldCkKICAgICAgICAgaW1hZ2UtPnNldEhlaWdodChoZWlnaHQpOwotICAg
IHJldHVybiBhc09iamVjdCh0b0pTKGV4ZWMsIGltYWdlLnJlbGVhc2UoKSkpOworICAgIHJldHVy
biBhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBpbWFn
ZS5yZWxlYXNlKCkpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU0ltYWdlQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKaW5kZXggMzJmZTU4Yi4uZmEzYjFkNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBJbWFnZURhdGEqIGltYWdlRGF0YSkKK0pTVmFsdWUgdG9K
UyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdl
RGF0YSogaW1hZ2VEYXRhKQogewogICAgIGlmICghaW1hZ2VEYXRhKQogICAgICAgICByZXR1cm4g
anNOdWxsKCk7CkBAIC00NSw3ICs0NSw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IEltYWdlRGF0YSogaW1hZ2VEYXRhKQogICAgIGlmICh3cmFwcGVyKQogICAgICAgICByZXR1cm4g
d3JhcHBlcjsKICAgICAKLSAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihl
eGVjLCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CisgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JK
RUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CiAg
ICAgSWRlbnRpZmllciBkYXRhTmFtZShleGVjLCAiZGF0YSIpOwogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoUmVmUHRyPFN0cnVjdHVyZT4sIGNwYVN0cnVjdHVyZSwgKEpTQnl0ZUFycmF5OjpjcmVh
dGVTdHJ1Y3R1cmUoanNOdWxsKCkpKSk7CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBjcGFD
bGFzc0luZm8gPSB7ICJDYW52YXNQaXhlbEFycmF5IiwgMCwgMCwgMCB9OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckNvbnRyb2xsZXJDdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckNvbnRyb2xsZXJDdXN0b20uY3BwCmluZGV4IGIw
NmM5ZTkuLjY0MTg0MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0
b3JDb250cm9sbGVyQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVj
dG9yQ29udHJvbGxlckN1c3RvbS5jcHAKQEAgLTEwOCwxMCArMTA4LDEyIEBAIEpTVmFsdWUgSlNJ
bnNwZWN0b3JDb250cm9sbGVyOjpnZXRSZXNvdXJjZURvY3VtZW50Tm9kZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEFyCiAgICAgaWYgKGRvY3VtZW50LT5pc1BsdWdpbkRvY3VtZW50KCkgfHwgZG9j
dW1lbnQtPmlzSW1hZ2VEb2N1bWVudCgpIHx8IGRvY3VtZW50LT5pc01lZGlhRG9jdW1lbnQoKSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBFeGVjU3RhdGUqIHJlc291cmNl
RXhlYyA9IHRvSlNET01XaW5kb3dTaGVsbChmcmFtZSktPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7
CisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9IHRvSlNET01XaW5kb3dTaGVsbChmcmFt
ZSktPndpbmRvdygpOworICAgIEV4ZWNTdGF0ZSogcmVzb3VyY2VFeGVjID0gZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCk7CiAKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgcmV0dXJuIEpT
SW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3JhcChyZXNvdXJjZUV4ZWMsIHRvSlMocmVzb3VyY2VF
eGVjLCBkb2N1bWVudCkpOworICAgIC8vIFBhc3MgdGhlIHJlc291cmNlcydzIGdsb2JhbCBvYmpl
Y3Qgc28gdGhhdCB0aGUgRG9jdW1lbnQgd2lsbCBlbmQgdXAgd2l0aCB0aGUgcmVzb3VyY2UncyBE
b2N1bWVudCBwcm90b3R5cGUuCisgICAgcmV0dXJuIEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6
d3JhcChyZXNvdXJjZUV4ZWMsIHRvSlMocmVzb3VyY2VFeGVjLCBnbG9iYWxPYmplY3QsIGRvY3Vt
ZW50KSk7CiB9CiAKIEpTVmFsdWUgSlNJbnNwZWN0b3JDb250cm9sbGVyOjpzZWFyY2goRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQpAQCAtMTQyLDcgKzE0NCw3IEBAIEpTVmFs
dWUgSlNJbnNwZWN0b3JDb250cm9sbGVyOjpzZWFyY2goRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JiBhcmdzKQogICAgICAgICBpZiAobmV3U3RhcnQgPT0gc3RhcnRWaXNpYmxlUG9zaXRp
b24oc2VhcmNoUmFuZ2UuZ2V0KCksIERPV05TVFJFQU0pKQogICAgICAgICAgICAgYnJlYWs7CiAK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCh0b0pTKGV4ZWMsIHJlc3VsdFJhbmdlLmdldCgpKSk7Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmQodG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgcmVzdWx0UmFu
Z2UuZ2V0KCkpKTsKIAogICAgICAgICBzZXRTdGFydChzZWFyY2hSYW5nZS5nZXQoKSwgbmV3U3Rh
cnQpOwogICAgIH0gd2hpbGUgKHRydWUpOwpAQCAtMjc4LDcgKzI4MCw4IEBAIEpTVmFsdWUgSlNJ
bnNwZWN0b3JDb250cm9sbGVyOjpjdXJyZW50Q2FsbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYpCiAgICAgRXhlY1N0YXRlKiBnbG9iYWxFeGVjID0gY2FsbEZyYW1lLT5zY29w
ZUNoYWluKCktPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAKICAgICBKU0xvY2sgbG9j
ayhmYWxzZSk7Ci0gICAgcmV0dXJuIEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3JhcChnbG9i
YWxFeGVjLCB0b0pTKGV4ZWMsIGNhbGxGcmFtZSkpOworICAgIC8vIEphdmFTY3JpcHRDYWxsRnJh
bWUgaXMgb25seSBldmVyIGFjY2Vzc2libGUgZnJvbSB0aGUgSW5zcGVjdG9yIChsaWtlIEpTSW5w
c2VjdG9yQ29udHJvbGxlciksIHRoZSBpbnNwZWN0b3IncyB3aW5kb3cgYWx3YXlzIGhhcyB0aGUg
cmlnaHQgcHJvdG90eXBlcy4KKyAgICByZXR1cm4gSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3
cmFwKGdsb2JhbEV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGNhbGxGcmFtZSkpOwog
fQogCiBKU1ZhbHVlIEpTSW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXMoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEpTQzo6QXJnTGlzdCYpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcAppbmRleCA4OTEzMjQzLi43Y2FmZjJiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2
b2lkIEpTTGF6eUV2ZW50TGlzdGVuZXI6OnBhcnNlQ29kZSgpIGNvbnN0CiAgICAgICAgIC8vIChh
bmQgdGhlIGRvY3VtZW50LCBhbmQgdGhlIGZvcm0gLSBzZWUgSlNIVE1MRWxlbWVudDo6ZXZlbnRI
YW5kbGVyU2NvcGUpCiAgICAgICAgIFNjb3BlQ2hhaW4gc2NvcGUgPSBsaXN0ZW5lckFzRnVuY3Rp
b24tPnNjb3BlKCk7CiAKLSAgICAgICAgSlNWYWx1ZSB0aGlzT2JqID0gdG9KUyhleGVjLCBtX29y
aWdpbmFsTm9kZSk7CisgICAgICAgIEpTVmFsdWUgdGhpc09iaiA9IHRvSlMoZXhlYywgbV9nbG9i
YWxPYmplY3QsIG1fb3JpZ2luYWxOb2RlKTsKICAgICAgICAgaWYgKHRoaXNPYmouaXNPYmplY3Qo
KSkgewogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SlNOb2RlKj4oYXNPYmplY3QodGhpc09iaikp
LT5wdXNoRXZlbnRIYW5kbGVyU2NvcGUoZXhlYywgc2NvcGUpOwogICAgICAgICAgICAgbGlzdGVu
ZXJBc0Z1bmN0aW9uLT5zZXRTY29wZShzY29wZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmQ0NzYwNy4uMjVhNWNi
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcApAQCAtNTUsMTEgKzU1LDEyIEBAIENvbnN0cnVjdFR5cGUgSlNNZXNzYWdlQ2hh
bm5lbENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0CiAK
IEpTT2JqZWN0KiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYpCiB7Ci0gICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PEpTTWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OworICAgIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRp
Y19jYXN0PEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKTsKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoZXhlYywgUmVmZXJlbmNlRXJyb3IsICJNZXNzYWdlQ2hhbm5lbCBjb25zdHJ1Y3RvciBh
c3NvY2lhdGVkIGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIik7CiAKLSAgICByZXR1cm4gYXNPYmpl
Y3QodG9KUyhleGVjLCBNZXNzYWdlQ2hhbm5lbDo6Y3JlYXRlKGNvbnRleHQpKSk7CisgICAgcmV0
dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIE1l
c3NhZ2VDaGFubmVsOjpjcmVhdGUoY29udGV4dCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pbWVUeXBlQXJyYXlDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pbWVUeXBlQXJyYXlDdXN0b20uY3BwCmlu
ZGV4IGM5MGRhZGQuLjRhZjAxZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
aW1lVHlwZUFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWltZVR5
cGVBcnJheUN1c3RvbS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgYm9vbCBKU01pbWVUeXBlQXJyYXk6
OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBNaW1lVHlwZUFycmF5KiBtaW1lVHlwZUFy
cmEKIEpTVmFsdWUgSlNNaW1lVHlwZUFycmF5OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgSlNNaW1lVHlwZUFycmF5KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNNaW1lVHlw
ZUFycmF5Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhl
YywgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJu
IHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFt
ZWRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IDdiZDk1YjQu
LjU1ODI1ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBD
dXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwCkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgSlNOYW1lZE5vZGVNYXA6OmNhbkdldEl0ZW1zRm9y
TmFtZShFeGVjU3RhdGUqLCBOYW1lZE5vZGVNYXAqIGltcGwsIGNvbnN0IElkCiBKU1ZhbHVlIEpT
TmFtZWROb2RlTWFwOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNOYW1l
ZE5vZGVNYXAqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU05hbWVkTm9kZU1hcCo+KGFzT2JqZWN0
KHNsb3Quc2xvdEJhc2UoKSkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmltcGwo
KS0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRo
aXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPmdldE5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKaW5kZXggMzMyM2VlMi4uODZlNDE0
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3Bw
CkBAIC01Niw4ICs1Niw4IEBAIEpTVmFsdWUgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbjo6bGVuZ3Ro
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsCiAKIEpTVmFsdWUgSlNO
YW1lZE5vZGVzQ29sbGVjdGlvbjo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEpTTmFtZWROb2Rl
c0NvbGxlY3Rpb24gKnRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU05hbWVkTm9kZXNDb2xsZWN0aW9u
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgKCp0
aGlzT2JqLT5tX25vZGVzKVtzbG90LmluZGV4KCldLmdldCgpKTsKKyAgICBKU05hbWVkTm9kZXND
b2xsZWN0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOYW1lZE5vZGVzQ29sbGVjdGlvbio+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNP
YmotPmdsb2JhbE9iamVjdCgpLCAoKnRoaXNPYmotPm1fbm9kZXMpW3Nsb3QuaW5kZXgoKV0uZ2V0
KCkpOwogfQogCiBib29sIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb246OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDc5YWM2
YjcuLmE2MTNjZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTE5Miw3
ICsxOTIsNyBAQCB2b2lkIEpTTm9kZTo6bWFyaygpCiAgICAgQVNTRVJUKG1hcmtlZCgpKTsKIH0K
IAotc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVXcmFwcGVyKEV4ZWNTdGF0ZSog
ZXhlYywgTm9kZSogbm9kZSkKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY3JlYXRlV3Jh
cHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5v
ZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIEFTU0VSVCghZ2V0Q2FjaGVkRE9N
Tm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOwpAQCAtMjAxLDYzICsyMDEsNjMg
QEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVXcmFwcGVyKEV4ZWNTdGF0ZSog
ZXhlYywgTm9kZSogbm9kZSkKICAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKICAgICAg
ICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAgICAgICAgICBpZiAobm9kZS0+aXNIVE1M
RWxlbWVudCgpKQotICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBjcmVhdGVKU0hUTUxXcmFwcGVy
KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgICAg
IHdyYXBwZXIgPSBjcmVhdGVKU0hUTUxXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgICAg
IGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVudCgpKQotICAgICAgICAgICAgICAgIHdyYXBwZXIg
PSBjcmVhdGVKU1NWR1dyYXBwZXIoZXhlYywgc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUp
KTsKKyAgICAgICAgICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNTVkdXcmFwcGVyKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKICNlbmRpZgogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVf
V1JBUFBFUihleGVjLCBFbGVtZW50LCBub2RlKTsKKyAgICAgICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFbGVtZW50LCBub2Rl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RF
OgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIEF0
dHIsIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVS
KGV4ZWMsIGdsb2JhbE9iamVjdCwgQXR0ciwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgVGV4dCwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUZXh0LCBub2Rl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05f
Tk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVj
LCBDREFUQVNlY3Rpb24sIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
Tk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ0RBVEFTZWN0aW9uLCBub2RlKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIEVudGl0eSwgbm9k
ZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBFbnRpdHksIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgotICAgICAgICAgICAgd3Jh
cHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIG5vZGUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgotICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIENvbW1lbnQsIG5vZGUp
OworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgQ29tbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0
byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFy
eQotICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihu
b2RlKSk7CisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4obm9kZSkpOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihl
eGVjLCBEb2N1bWVudFR5cGUsIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRG9jdW1lbnRUeXBlLCBub2RlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6Ci0g
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgTm90YXRp
b24sIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVS
KGV4ZWMsIGdsb2JhbE9iamVjdCwgTm90YXRpb24sIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKLSAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBEb2N1bWVudEZyYWdtZW50
LCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIEVudGl0eVJlZmVy
ZW5jZSwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFbnRpdHlSZWZlcmVuY2UsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgTm9kZSwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBOb2RlLCBub2Rl
KTsKICAgICB9CiAKICAgICByZXR1cm4gd3JhcHBlcjsgICAgCiB9CiAgICAgCi1KU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBOb2RlKiBub2RlKQorSlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgIE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4ganNO
dWxsKCk7CiAgICAgCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIoZXhlYywgbm9kZSk7CisgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBub2RlKTsKIH0KICAgICAK
LUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIG5vZGUpCitKU1ZhbHVlIHRvSlMo
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb2RlKiBu
b2RlKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtMjY2
LDcgKzI2Niw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIG5vZGUpCiAg
ICAgaWYgKHdyYXBwZXIpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXIoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGY1ZDRkNWMu
LjI1MTczMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlv
bi5jcHAKQEAgLTYxLDcgKzYxLDkgQEAgc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2Nl
cHROb2RlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKQogICAgICAgICBy
ZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBmaWx0ZXJOb2RlKSk7CisgICAg
Ly8gRklYTUU6IFRoZSBub2RlIHNob3VsZCBoYXZlIHRoZSBwcm90b3R5cGUgY2hhaW4gdGhhdCBj
YW1lIGZyb20gaXRzIGRvY3VtZW50LCBub3QKKyAgICAvLyB3aGF0ZXZlciBwcm90b3R5cGUgY2hh
aW4gbWlnaHQgYmUgb24gdGhlIHdpbmRvdyB0aGlzIGZpbHRlciBjYW1lIGZyb20uCisgICAgYXJn
cy5hcHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4
ZWMpLCBmaWx0ZXJOb2RlKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAppbmRleCA4ZmZmODJlLi5hMDhhYTgwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcApAQCAtNDksNyAr
NDksOSBAQCBKU1ZhbHVlIEpTTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmKQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBub2RlLmdldCgp
KTsKKyAgICAvLyBGSVhNRTogZ2xvYmFsT2JqZWN0KCkgaXMgb25seSBjb3JyZWN0LCBhc3N1bWlu
ZyB5b3UgY2FuIG5ldmVyIG1ha2UgYSBOb2RlSXRlcmF0b3IgZnJvbQorICAgIC8vIG9uZSBmcmFt
ZSB3aGljaCBpdGVyYXRlcyBvdmVyIG5vZGVzIGluIGFub3RoZXIgZnJhbWUuICBJIGJlbGlldmUg
dGhpcyBtYXkgYWN0dWFsbHkgYmUgcG9zc2libGUuCisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0KCksIG5vZGUuZ2V0KCkpOwogfQogCiBKU1ZhbHVlIEpTTm9kZUl0ZXJhdG9yOjpw
cmV2aW91c05vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKQEAgLTY0LDcgKzY2
LDkgQEAgSlNWYWx1ZSBKU05vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUuZ2V0
KCkpOworICAgIC8vIEZJWE1FOiBnbG9iYWxPYmplY3QoKSBpcyBvbmx5IGNvcnJlY3QsIGFzc3Vt
aW5nIHlvdSBjYW4gbmV2ZXIgbWFrZSBhIE5vZGVJdGVyYXRvciBmcm9tCisgICAgLy8gb25lIGZy
YW1lIHdoaWNoIGl0ZXJhdGVzIG92ZXIgbm9kZXMgaW4gYW5vdGhlciBmcmFtZS4gIEkgYmVsaWV2
ZSB0aGlzIG1heSBhY3R1YWxseSBiZSBwb3NzaWJsZS4KKyAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QoKSwgbm9kZS5nZXQoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDI4MjFkMDEuLjBiM2I0NWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcApAQCAtNDIsNyArNDIsOCBAQCBzdGF0aWMgSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOb2RlTGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBmdW5jdGlvbiwgSgogICAgIHVuc2lnbmVkIGluZGV4ID0gYXJncy5hdCgwKS50b1N0cmluZyhl
eGVjKS50b1VJbnQzMigmb2spOwogICAgIGlmICghb2spCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTTm9kZUxpc3QqPihm
dW5jdGlvbiktPmltcGwoKS0+aXRlbShpbmRleCkpOworICAgIEpTTm9kZUxpc3QqIGpzTm9kZUxp
c3QgPSBzdGF0aWNfY2FzdDxKU05vZGVMaXN0Kj4oZnVuY3Rpb24pOworICAgIHJldHVybiB0b0pT
KGV4ZWMsIGpzTm9kZUxpc3QtPmdsb2JhbE9iamVjdCgpLCBqc05vZGVMaXN0LT5pbXBsKCktPml0
ZW0oaW5kZXgpKTsKIH0KIAogQ2FsbFR5cGUgSlNOb2RlTGlzdDo6Z2V0Q2FsbERhdGEoQ2FsbERh
dGEmIGNhbGxEYXRhKQpAQCAtNTksNyArNjAsNyBAQCBib29sIEpTTm9kZUxpc3Q6OmNhbkdldEl0
ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBOb2RlTGlzdCogaW1wbCwgY29uc3QgSWRlbnRpZmllcgog
SlNWYWx1ZSBKU05vZGVMaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
SlNOb2RlTGlzdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTm9kZUxpc3QqPihhc09iamVjdChz
bG90LnNsb3RCYXNlKCkpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCkt
Pml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlz
T2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgpLT5pdGVtV2l0aE5hbWUocHJvcGVy
dHlOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDBlMGUwODcuLjJiOGJkNWQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtNDMsNyArNDMs
OCBAQCBKU09wdGlvbkNvbnN0cnVjdG9yOjpKU09wdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsbwogCiBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVj
dEhUTUxPcHRpb25FbGVtZW50KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNvbnN0cnVjdG9y
LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRp
Y19jYXN0PEpTT3B0aW9uQ29uc3RydWN0b3IqPihjb25zdHJ1Y3RvciktPmRvY3VtZW50KCk7Cisg
ICAgSlNPcHRpb25Db25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTT3B0
aW9uQ29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
anNDb25zdHJ1Y3Rvci0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBSZWZlcmVuY2VFcnJvciwgIk9wdGlvbiBjb25zdHJ1Y3Rv
ciBhc3NvY2lhdGVkIGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIik7CiAKQEAgLTY3LDcgKzY4LDcg
QEAgc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RIVE1MT3B0aW9uRWxlbWVudChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBjb25zdHJ1Y3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgZWxlbWVudC5yZWxlYXNlKCkpKTsKKyAgICBy
ZXR1cm4gYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwg
ZWxlbWVudC5yZWxlYXNlKCkpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU09wdGlvbkNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkFycmF5Q3VzdG9tLmNwcAppbmRleCA4MWQ0Mjk1Li5j
MWE4NGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5BcnJheUN1c3RvbS5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgYm9vbCBKU1BsdWdpbkFycmF5OjpjYW5HZXRJdGVtc0Zvck5hbWUo
RXhlY1N0YXRlKiwgUGx1Z2luQXJyYXkqIHBsdWdpbkFycmF5LCBjb24KIEpTVmFsdWUgSlNQbHVn
aW5BcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTUGx1Z2luQXJy
YXkqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU1BsdWdpbkFycmF5Kj4oYXNPYmplY3Qoc2xvdC5z
bG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5uYW1l
ZEl0ZW0ocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xv
YmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5DdXN0
b20uY3BwCmluZGV4IDU1NWRkOWUuLjQ2ZTRjODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVn
aW5DdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBAIGJvb2wgSlNQbHVnaW46OmNhbkdldEl0ZW1z
Rm9yTmFtZShFeGVjU3RhdGUqLCBQbHVnaW4qIHBsdWdpbiwgY29uc3QgSWRlbnRpZmllciYKIEpT
VmFsdWUgSlNQbHVnaW46Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU1Bs
dWdpbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTUGx1Z2luKj4oYXNPYmplY3Qoc2xvdC5zbG90
QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFs
T2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNT
VkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCmluZGV4IDI5MjI3NDAuLjZmZGIxYTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3Bw
CkBAIC03NSwxMyArNzUsMTMgQEAgdm9pZCBKU1NWR0VsZW1lbnRJbnN0YW5jZTo6cHVzaEV2ZW50
SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW4mKSBjb25zdAogewogfQogCi1KU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgU1ZHRWxlbWVudEluc3RhbmNlKiBv
YmplY3QpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZHRWxlbWVudEluc3RhbmNlKiBvYmplY3QpCiB7Ci0g
ICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRET01PYmplY3RXcmFwcGVyPEpTU1ZHRWxlbWVudEluc3Rh
bmNlPihleGVjLCBvYmplY3QpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0RE9NT2JqZWN0V3Jh
cHBlcjxKU1NWR0VsZW1lbnRJbnN0YW5jZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwog
CiAgICAgLy8gRW5zdXJlIHRoYXQgb3VyIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBoYXMgYSBKYXZh
U2NyaXB0IHdyYXBwZXIgdG8ga2VlcCBpdHMgZXZlbnQgaGFuZGxlcnMgYWxpdmUuCiAgICAgaWYg
KG9iamVjdCkKLSAgICAgICAgdG9KUyhleGVjLCBvYmplY3QtPmNvcnJlc3BvbmRpbmdFbGVtZW50
KCkpOworICAgICAgICB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgb2JqZWN0LT5jb3JyZXNwb25k
aW5nRWxlbWVudCgpKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHTWF0cml4Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTVkdNYXRyaXhDdXN0b20uY3BwCmluZGV4IGZjMWUyNjYuLjM1MzkwYjIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0b20uY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIEpTVmFsdWUgSlNTVkdNYXRyaXg6OmludmVyc2UoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBBcmdMaXN0JikKIHsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbXAo
KmltcGwoKSk7Ci0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgSlNTVkdTdGF0
aWNQT0RUeXBlV3JhcHBlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmNyZWF0ZShpbXAuaW52ZXJz
ZSgpKS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0g
dG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NW
R1N0YXRpY1BPRFR5cGVXcmFwcGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6Y3JlYXRlKGltcC5p
bnZlcnNlKCkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwogCiAgICAgaWYgKCFpbXAuaXNJbnZl
cnRpYmxlKCkpCiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBTVkdFeGNlcHRpb246OlNW
R19NQVRSSVhfTk9UX0lOVkVSVEFCTEUpOwpAQCAtNDcsNyArNDcsNyBAQCBKU1ZhbHVlIEpTU1ZH
TWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYg
YXJncykKICAgICBmbG9hdCB4ID0gYXJncy5hdCgwKS50b0Zsb2F0KGV4ZWMpOwogICAgIGZsb2F0
IHkgPSBhcmdzLmF0KDEpLnRvRmxvYXQoZXhlYyk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0
ID0gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPFRyYW5zZm9ybWF0aW9uTWF0
cml4Pjo6Y3JlYXRlKGltcC5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpKS5nZXQoKSwgbV9jb250ZXh0
LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVk
R2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVy
PFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6Y3JlYXRlKGltcC5yb3RhdGVGcm9tVmVjdG9yKHgsIHkp
KS5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKIAogICAgIGlmICh4ID09IDAuMCB8fCB5ID09IDAu
MCkKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFNWR0V4Y2VwdGlvbjo6U1ZHX0lOVkFM
SURfVkFMVUVfRVJSKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRo
U2VnQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNw
cAppbmRleCBjYjQ2ODdjLi40MmZhODc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1Bh
dGhTZWdDdXN0b20uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgU1ZH
UGF0aFNlZyogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KQorSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZyog
b2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KQogewogICAgIGlmICghb2JqZWN0KQogICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CkBAIC02OSw0NiArNjksNDYgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgU1ZHUGF0aFNlZyogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KQogCiAg
ICAgc3dpdGNoIChvYmplY3QtPnBhdGhTZWdUeXBlKCkpIHsKICAgICBjYXNlIFNWR1BhdGhTZWc6
OlBBVEhTRUdfQ0xPU0VQQVRIOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JB
UFBFUihleGVjLCBTVkdQYXRoU2VnQ2xvc2VQYXRoLCBvYmplY3QsIGNvbnRleHQpOworICAgICAg
ICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNW
R1BhdGhTZWdDbG9zZVBhdGgsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2Vn
OjpQQVRIU0VHX01PVkVUT19BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdNb3ZldG9BYnMsIG9iamVjdCwgY29udGV4dCk7CisgICAg
ICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwg
U1ZHUGF0aFNlZ01vdmV0b0Ficywgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhT
ZWc6OlBBVEhTRUdfTU9WRVRPX1JFTDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNU
X1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ01vdmV0b1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKKyAg
ICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBTVkdQYXRoU2VnTW92ZXRvUmVsLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19MSU5FVE9fQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpF
Q1RfV1JBUFBFUihleGVjLCBTVkdQYXRoU2VnTGluZXRvQWJzLCBvYmplY3QsIGNvbnRleHQpOwor
ICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmpl
Y3QsIFNWR1BhdGhTZWdMaW5ldG9BYnMsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQ
YXRoU2VnOjpQQVRIU0VHX0xJTkVUT19SRUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdMaW5ldG9SZWwsIG9iamVjdCwgY29udGV4dCk7
CisgICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNW
R1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlM6Ci0gICAgICAgIHJldHVybiBDUkVB
VEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMsIG9i
amVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficywgb2JqZWN0LCBj
b250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw6
Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBDUkVB
VEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhT
RUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpF
Q1RfV1JBUFBFUihleGVjLCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficywgb2JqZWN0LCBj
b250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficywgb2JqZWN0LCBjb250
ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVM
OgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhT
ZWc6OlBBVEhTRUdfQVJDX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dS
QVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0FyY0Ficywgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAg
cmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQ
YXRoU2VnQXJjQWJzLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFU
SFNFR19BUkNfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihl
eGVjLCBTVkdQYXRoU2VnQXJjUmVsLCBvYmplY3QsIGNvbnRleHQpOworICAgICAgICByZXR1cm4g
Q1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdB
cmNSZWwsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0xJ
TkVUT19IT1JJWk9OVEFMX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dS
QVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMsIG9iamVjdCwgY29udGV4
dCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMsIG9iamVjdCwgY29udGV4dCk7
CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDoKLSAg
ICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxSZWwsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBDUkVB
VEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicywgb2JqZWN0LCBj
b250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMsIG9iamVjdCwgY29udGV4
dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUw6Ci0g
ICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbFJlbCwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFU
RV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRv
VmVydGljYWxSZWwsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRI
U0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdf
T0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicywgb2Jq
ZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLCBvYmpl
Y3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklD
X1NNT09USF9SRUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4
ZWMsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwsIG9iamVjdCwgY29udGV4dCk7Cisg
ICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVj
dCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAg
ICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCUzoK
LSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJl
dHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2Fz
ZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw6Ci0gICAg
ICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsLCBvYmplY3QsIGNvbnRleHQpOworICAgICAgICByZXR1cm4g
Q1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZH
UGF0aFNlZzo6UEFUSFNFR19VTktOT1dOOgogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBD
UkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWcsIG9iamVjdCwgY29udGV4
dCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgU1ZHUGF0aFNlZywgb2JqZWN0LCBjb250ZXh0KTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwCmluZGV4IGI2ZmMx
MTYuLmI3MWYzYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2Vn
TGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdMaXN0
Q3VzdG9tLmNwcApAQCAtNTcsNyArNTcsNyBAQCBKU1ZhbHVlIEpTU1ZHUGF0aFNlZ0xpc3Q6Omlu
aXRpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiAgICAgU1ZH
UGF0aFNlZyogb2JqID0gV1RGOjpnZXRQdHIoaW1wLT5pbml0aWFsaXplKG5ld0l0ZW0sIGVjKSk7
CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBvYmosIG1fY29udGV4dC5n
ZXQoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgZGVwcmVjYXRlZEds
b2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqLCBtX2NvbnRleHQuZ2V0KCkpOwogICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAKICAgICBtX2NvbnRleHQtPnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoaW1wLT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsgICAgCkBAIC03OCw3ICs3
OCw3IEBAIEpTVmFsdWUgSlNTVkdQYXRoU2VnTGlzdDo6Z2V0SXRlbShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgU1ZHUGF0aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdMaXN0Kj4oaW1wbCgpKTsKICAgICBTVkdQYXRoU2VnKiBvYmogPSBXVEY6
OmdldFB0cihpbXAtPmdldEl0ZW0oaW5kZXgsIGVjKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0gdG9KUyhleGVjLCBvYmosIG1fY29udGV4dC5nZXQoKSk7CisgICAgSlNDOjpKU1ZhbHVl
IHJlc3VsdCA9IHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShl
eGVjKSwgb2JqLCBtX2NvbnRleHQuZ2V0KCkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTk3LDcgKzk3LDcgQEAgSlNWYWx1ZSBKU1NW
R1BhdGhTZWdMaXN0OjppbnNlcnRJdGVtQmVmb3JlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJn
TGlzdCYgYXJncykKIAogICAgIFNWR1BhdGhTZWdMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQ
YXRoU2VnTGlzdCo+KGltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhl
eGVjLCBXVEY6OmdldFB0cihpbXAtPmluc2VydEl0ZW1CZWZvcmUobmV3SXRlbSwgaW5kZXgsIGVj
KSksIG1fY29udGV4dC5nZXQoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhl
YywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgV1RGOjpnZXRQdHIo
aW1wLT5pbnNlcnRJdGVtQmVmb3JlKG5ld0l0ZW0sIGluZGV4LCBlYykpLCBtX2NvbnRleHQuZ2V0
KCkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAKICAgICBtX2NvbnRleHQtPnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoaW1wLT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsgICAgCkBA
IC0xMTgsNyArMTE4LDcgQEAgSlNWYWx1ZSBKU1NWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKICAgICBTVkdQYXRoU2VnTGlz
dCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOwogCi0gICAgSlND
OjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgV1RGOjpnZXRQdHIoaW1wLT5yZXBsYWNlSXRl
bShuZXdJdGVtLCBpbmRleCwgZWMpKSwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBl
KGV4ZWMpLCBXVEY6OmdldFB0cihpbXAtPnJlcGxhY2VJdGVtKG5ld0l0ZW0sIGluZGV4LCBlYykp
LCBtX2NvbnRleHQuZ2V0KCkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAKICAg
ICBtX2NvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoaW1wLT5hc3NvY2lhdGVkQXR0cmlidXRl
TmFtZSgpKTsgICAgCkBAIC0xNDAsNyArMTQwLDcgQEAgSlNWYWx1ZSBKU1NWR1BhdGhTZWdMaXN0
OjpyZW1vdmVJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogICAg
IFJlZlB0cjxTVkdQYXRoU2VnPiBvYmooaW1wLT5yZW1vdmVJdGVtKGluZGV4LCBlYykpOwogCi0g
ICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgb2JqLmdldCgpLCBtX2NvbnRleHQu
Z2V0KCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRH
bG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG9iai5nZXQoKSwgbV9jb250ZXh0LmdldCgp
KTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogCiAgICAgbV9jb250ZXh0LT5zdmdB
dHRyaWJ1dGVDaGFuZ2VkKGltcC0+YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSk7ICAgIApAQCAt
MTU0LDcgKzE1NCw3IEBAIEpTVmFsdWUgSlNTVkdQYXRoU2VnTGlzdDo6YXBwZW5kSXRlbShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKICAgICBTVkdQYXRoU2VnTGlzdCog
aW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOwogCi0gICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgV1RGOjpnZXRQdHIoaW1wLT5hcHBlbmRJdGVtKG5l
d0l0ZW0sIGVjKSksIG1fY29udGV4dC5nZXQoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
IHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgV1RG
OjpnZXRQdHIoaW1wLT5hcHBlbmRJdGVtKG5ld0l0ZW0sIGVjKSksIG1fY29udGV4dC5nZXQoKSk7
CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+c3ZnQXR0
cmlidXRlQ2hhbmdlZChpbXAtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAKaW5kZXggYTE4YzJhMi4u
MTk2OWZlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1
c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1c3RvbS5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIEpTVmFsdWUgZmluaXNoR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWR0VsZW1lbnQqIGNvbnQKICAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgfQotICAgIHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9y
TGlzdDxGbG9hdFBvaW50Pjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVOYW1lKCkpLmdldCgpLCBjb250ZXh0KTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBkZXBy
ZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1BPRFR5cGVXcmFwcGVy
Q3JlYXRvckZvckxpc3Q8RmxvYXRQb2ludD46OmNyZWF0ZShpdGVtLmdldCgpLCBsaXN0LT5hc3Nv
Y2lhdGVkQXR0cmlidXRlTmFtZSgpKS5nZXQoKSwgY29udGV4dCk7CiB9CiAKIHN0YXRpYyBKU1Zh
bHVlIGZpbmlzaFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVkdF
bGVtZW50KiBjb250ZXh0LCBTVkdQb2ludExpc3QqIGxpc3QsIFBhc3NSZWZQdHI8UE9ETGlzdEl0
ZW0gPiBpdGVtKQpAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgSlNWYWx1ZSBmaW5pc2hTZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxlbWVudCogY29udAogICAg
IH0KICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lID0gbGlzdC0+YXNzb2Np
YXRlZEF0dHJpYnV0ZU5hbWUoKTsKICAgICBjb250ZXh0LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJpYnV0ZU5hbWUpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXJD
cmVhdG9yRm9yTGlzdDxGbG9hdFBvaW50Pjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGF0dHJpYnV0ZU5h
bWUpLmdldCgpLCBjb250ZXh0KTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xv
YmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZv
ckxpc3Q8RmxvYXRQb2ludD46OmNyZWF0ZShpdGVtLmdldCgpLCBhdHRyaWJ1dGVOYW1lKS5nZXQo
KSwgY29udGV4dCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlclJlYWRPbmx5UmVz
dWx0KEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNWR0VsZW1lbnQqIGNvbnRl
eHQsIFNWR1BvaW50TGlzdCogbGlzdCwgUGFzc1JlZlB0cjxQT0RMaXN0SXRlbT4gaXRlbSkKQEAg
LTYwLDcgKzYwLDcgQEAgc3RhdGljIEpTVmFsdWUgZmluaXNoU2V0dGVyUmVhZE9ubHlSZXN1bHQo
RXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1YKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgICAgfQogICAgIGNvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQobGlz
dC0+YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNT
VkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxGbG9hdFBvaW50Pjo6Y3JlYXRlKCppdGVtKS5nZXQoKSwg
Y29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZv
clByb3RvdHlwZShleGVjKSwgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxGbG9hdFBvaW50Pjo6
Y3JlYXRlKCppdGVtKS5nZXQoKSwgY29udGV4dCk7CiB9CiAKIEpTVmFsdWUgSlNTVkdQb2ludExp
c3Q6OmNsZWFyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU1ZHVHJhbnNmb3JtTGlzdEN1c3RvbS5jcHAKaW5kZXggNThiMjVhZC4u
MWE5MTEwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1RyYW5zZm9ybUxp
c3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdUcmFuc2Zvcm1MaXN0
Q3VzdG9tLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgSlNWYWx1ZSBmaW5pc2hHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxlbWVudCogY29udAogICAg
ICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlckNy
ZWF0b3JGb3JMaXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVtLmdldCgpLCBsaXN0LT5hc3Nv
Y2lhdGVkQXR0cmlidXRlTmFtZSgpKS5nZXQoKSwgY29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgSlNTVkdQT0RU
eXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVtLmdldCgp
LCBsaXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKS5nZXQoKSwgY29udGV4dCk7CiB9CiAK
IHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBTVkdFbGVtZW50KiBjb250ZXh0LCBTVkdUcmFuc2Zvcm1MaXN0KiBsaXN0LCBQYXNz
UmVmUHRyPFBPRExpc3RJdGVtPiBpdGVtKQpAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgSlNWYWx1
ZSBmaW5pc2hTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxl
bWVudCogY29udAogICAgIH0KICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
ID0gbGlzdC0+YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKTsKICAgICBjb250ZXh0LT5zdmdBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZH
UE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxTVkdUcmFuc2Zvcm0+OjpjcmVhdGUoaXRlbS5n
ZXQoKSwgYXR0cmlidXRlTmFtZSkuZ2V0KCksIGNvbnRleHQpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHUE9EVHlw
ZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxTVkdUcmFuc2Zvcm0+OjpjcmVhdGUoaXRlbS5nZXQoKSwg
YXR0cmlidXRlTmFtZSkuZ2V0KCksIGNvbnRleHQpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBmaW5p
c2hTZXR0ZXJSZWFkT25seVJlc3VsdChFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBTVkdFbGVtZW50KiBjb250ZXh0LCBTVkdUcmFuc2Zvcm1MaXN0KiBsaXN0LCBQYXNzUmVmUHRy
PFBPRExpc3RJdGVtPiBpdGVtKQpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgSlNWYWx1ZSBmaW5p
c2hTZXR0ZXJSZWFkT25seVJlc3VsdChFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBTVgogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAgICAgY29udGV4dC0+
c3ZnQXR0cmlidXRlQ2hhbmdlZChsaXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsKLSAg
ICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPFNWR1RyYW5zZm9y
bT46OmNyZWF0ZSgqaXRlbSkuZ2V0KCksIGNvbnRleHQpOworICAgIHJldHVybiB0b0pTKGV4ZWMs
IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHU3RhdGljUE9E
VHlwZVdyYXBwZXI8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKCppdGVtKS5nZXQoKSwgY29udGV4dCk7
CiB9CiAKIEpTVmFsdWUgSlNTVkdUcmFuc2Zvcm1MaXN0OjpjbGVhcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxl
U2hlZXRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20u
Y3BwCmluZGV4IGY4MTQ2YmQuLjAwZGFjZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5
bGVTaGVldEN1c3RvbS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsK
ICAgICBpZiAoIXN0eWxlU2hlZXQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTQ1LDkg
KzQ1LDkgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgU3R5bGVTaGVldCogc3R5bGVT
aGVldCkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAoc3R5bGVTaGVldC0+aXND
U1NTdHlsZVNoZWV0KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQ
UEVSKGV4ZWMsIENTU1N0eWxlU2hlZXQsIHN0eWxlU2hlZXQpOworICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1N0eWxlU2hl
ZXQsIHN0eWxlU2hlZXQpOwogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgU3R5bGVTaGVldCwgc3R5bGVTaGVldCk7CisgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU3R5
bGVTaGVldCwgc3R5bGVTaGVldCk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCmluZGV4IDFkYTY0MTgu
LjM4ODc3MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3Vz
dG9tLmNwcApAQCAtNDUsNyArNDUsNyBAQCBKU1ZhbHVlIEpTU3R5bGVTaGVldExpc3Q6Om5hbWVH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIEpT
U3R5bGVTaGVldExpc3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU1N0eWxlU2hlZXRMaXN0Kj4o
YXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CiAgICAgSFRNTFN0eWxlRWxlbWVudCogZWxlbWVu
dCA9IHRoaXNPYmotPmltcGwoKS0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIGVsZW1lbnQtPnNoZWV0KCkpOwor
ICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBlbGVtZW50LT5z
aGVldCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Rl
eHRDdXN0b20uY3BwCmluZGV4IDllNjY4MjYuLjJkYzg4NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
VGV4dEN1c3RvbS5jcHAKQEAgLTMyLDEyICszMiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3Rh
dGUqIGV4ZWMsIFRleHQqIHRleHQpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXh0KiB0ZXh0KQogewog
ICAgIGlmICghdGV4dCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIAotICAgIHJldHVy
biBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBUZXh0LCB0ZXh0KTsKKyAgICByZXR1cm4g
Q1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUZXh0LCB0ZXh0KTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVX
YWxrZXJDdXN0b20uY3BwCmluZGV4IDYzNjkwMTcuLmIxNDFmZmUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgSlNWYWx1ZSBK
U1RyZWVXYWxrZXI6OnBhcmVudE5vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikK
ICAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5wYXJlbnROb2RlKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0
dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKQEAgLTUwLDcgKzUwLDcgQEAgSlNWYWx1ZSBK
U1RyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikK
ICAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5maXJzdENoaWxkKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0
dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6Omxhc3RDaGlsZChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNTgsNyArNTgsNyBAQCBKU1ZhbHVlIEpT
VHJlZVdhbGtlcjo6bGFzdENoaWxkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCiAg
ICAgTm9kZSogbm9kZSA9IGltcGwoKS0+bGFzdENoaWxkKGV4ZWMpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJu
IHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCks
IG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC02Niw3ICs2Niw3IEBAIEpTVmFsdWUgSlNU
cmVlV2Fsa2VyOjpuZXh0U2libGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQog
ICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPm5leHRTaWJsaW5nKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0
dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnByZXZpb3VzU2libGlu
ZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNzQsNyArNzQsNyBAQCBKU1Zh
bHVlIEpTVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
QXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+cHJldmlvdXNTaWJsaW5nKGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6
OnByZXZpb3VzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtODIsNyAr
ODIsNyBAQCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+cHJldmlvdXNOb2Rl
KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVX
YWxrZXI6Om5leHROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC05MCw3
ICs5MCw3IEBAIEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpuZXh0Tm9kZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPm5leHROb2RlKGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAppbmRleCBmMGEyYTljLi5i
YzA1MjUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4
Q29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDggKzQyLDkgQEAgSlNXZWJLaXRDU1NNYXRyaXhDb25z
dHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
RE8KICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIo
ZXhlYywgMSksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwogfQogCi1zdGF0aWMgSlNP
YmplY3QqIGNvbnN0cnVjdFdlYktpdENTU01hdHJpeChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiwgY29uc3QgQXJnTGlzdCYgYXJncykKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0V2ViS2l0
Q1NTTWF0cml4KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBjb25zdCBB
cmdMaXN0JiBhcmdzKQogeworICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IqIGpzQ29u
c3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKj4oY29u
c3RydWN0b3IpOwogICAgIFN0cmluZyBzOwogICAgIGlmIChhcmdzLnNpemUoKSA+PSAxKQogICAg
ICAgICBzID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKTsKQEAgLTUxLDcgKzUyLDcgQEAgc3Rh
dGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXZWJLaXRDU1NNYXRyaXgoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCosIGNvbnN0IEFyZ0wKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBSZWZQ
dHI8V2ViS2l0Q1NTTWF0cml4PiBtYXRyaXggPSBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShzLCBl
Yyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1cm4gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBXZWJLaXRDU1NNYXRyaXgsIG1hdHJpeC5nZXQoKSk7Cisg
ICAgcmV0dXJuIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+
Z2xvYmFsT2JqZWN0KCksIFdlYktpdENTU01hdHJpeCwgbWF0cml4LmdldCgpKTsKIH0KIAogQ29u
c3RydWN0VHlwZSBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggY2Q4ZTNiMy4uMjdjYzFkYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcApA
QCAtNDMsOCArNDMsMTAgQEAgSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpKU1dlYktpdFBvaW50
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE8KICAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMiksIFJlYWRPbmx5
fERvbnREZWxldGV8RG9udEVudW0pOwogfQogCi1zdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdFdl
YktpdFBvaW50KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQorc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXZWJLaXRQb2ludChFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKKyAgICBKU1dl
YktpdFBvaW50Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktp
dFBvaW50Q29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisKICAgICBmbG9hdCB4ID0gMDsKICAg
ICBmbG9hdCB5ID0gMDsKICAgICBpZiAoYXJncy5zaXplKCkgPj0gMikgewpAQCAtNTUsNyArNTcs
NyBAQCBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdFdlYktpdFBvaW50KEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0JgogICAgICAgICBpZiAoaXNuYW4oeSkpCiAgICAg
ICAgICAgICB5ID0gMDsKICAgICB9Ci0gICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgV2Vi
S2l0UG9pbnQ6OmNyZWF0ZSh4LCB5KSkpOworICAgIHJldHVybiBhc09iamVjdCh0b0pTKGV4ZWMs
IGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBXZWJLaXRQb2ludDo6Y3JlYXRlKHgsIHkp
KSk7CiB9CiAKIEpTQzo6Q29uc3RydWN0VHlwZSBKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZTVhNTU2Zi4uNmQ5
MDRmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9y
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwCkBA
IC00OCw4ICs0OCwxMCBAQCBKU1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsbwogICAgIHB1dERpcmVjdChl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAxKSwgUmVhZE9ubHl8
RG9udERlbGV0ZXxEb250RW51bSk7CiB9CiAKLXN0YXRpYyBKU09iamVjdCogY29uc3RydWN0V29y
a2VyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0JiBhcmdzKQorc3Rh
dGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXb3JrZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
Y29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CisgICAgSlNXb3JrZXJDb25zdHJ1
Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTV29ya2VyQ29uc3RydWN0b3IqPihj
b25zdHJ1Y3Rvcik7CisKICAgICBpZiAoYXJncy5zaXplKCkgPT0gMCkKICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgU3ludGF4RXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwog
CkBAIC01NywxMSArNTksMTIgQEAgc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXb3JrZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCosIGNvbnN0IEFyZ0xpc3QmIGFyZ3MKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgLy8gRklYTUU6IFdo
eSBkbyB3ZSB1c2UgdGhlIGxleGljYWwgZ2xvYmFsIG9iamVjdCBoZXJlPwogICAgIERPTVdpbmRv
dyogd2luZG93ID0gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5p
bXBsKCk7Ci0gICAgCisKICAgICBSZWZQdHI8V29ya2VyPiB3b3JrZXIgPSBXb3JrZXI6OmNyZWF0
ZShzY3JpcHRVUkwsIHdpbmRvdy0+ZG9jdW1lbnQoKSk7CiAKLSAgICByZXR1cm4gYXNPYmplY3Qo
dG9KUyhleGVjLCB3b3JrZXIucmVsZWFzZSgpKSk7CisgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMo
ZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIHdvcmtlci5yZWxlYXNlKCkpKTsK
IH0KIAogQ29uc3RydWN0VHlwZSBKU1dvcmtlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRCYXNlLmNwcAppbmRleCBjNzFmNDViLi41ZjhhMzEwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKQEAgLTU3LDYgKzU3LDExIEBAIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTV29ya2VyQ29udGV4dEJhc2U6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2ltcGwuZ2V0KCk7CiB9CiAKK0pTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgV29ya2VyQ29udGV4dCog
d29ya2VyQ29udGV4dCkKK3sKKyAgICByZXR1cm4gdG9KUyhleGVjLCB3b3JrZXJDb250ZXh0KTsK
K30KKwogSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSosIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRl
eHQpCiB7CiAgICAgaWYgKCF3b3JrZXJDb250ZXh0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuaAppbmRleCBkY2JjNWMzLi4yMTIxYmIwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaApAQCAtNTIsNiArNTIsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgfTsKIAogICAgIC8vIFJldHVybnMgYSBKU1dvcmtlckNvbnRleHQgb3Ig
anNOdWxsKCkKKyAgICAvLyBBbHdheXMgaWdub3JlcyB0aGUgZXhlY1N0YXRlIGFuZCBwYXNzZWQg
Z2xvYmFsT2JqZWN0LCBXb3JrZXJDb250ZXh0IGlzIGl0c2VsZiBhIGdsb2JhbE9iamVjdCBhbmQg
d2lsbCBhbHdheXMgdXNlIGl0cyBvd24gcHJvdG90eXBlIGNoYWluLgorICAgIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBXb3JrZXJDb250ZXh0
Kik7CiAgICAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBXb3JrZXJDb250ZXh0
Kik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAppbmRleCA2YmY4OTkwLi5hNjQ0Yzll
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3Ry
dWN0b3IuY3BwCkBAIC00MCwxMiArNDAsMTMgQEAgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9y
OjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUcKIAog
c3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RYTUxIdHRwUmVxdWVzdChFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYpCiB7Ci0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PEpTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIEpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKTsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhl
YywgUmVmZXJlbmNlRXJyb3IsICJYTUxIdHRwUmVxdWVzdCBjb25zdHJ1Y3RvciBhc3NvY2lhdGVk
IGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIik7CiAKICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3Q+
IHhtbEh0dHBSZXF1ZXN0ID0gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0KTsKLSAgICBy
ZXR1cm4gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBYTUxIdHRwUmVxdWVzdCwgeG1s
SHR0cFJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBYTUxIdHRwUmVxdWVzdCwgeG1s
SHR0cFJlcXVlc3QuZ2V0KCkpOwogfQogCiBDb25zdHJ1Y3RUeXBlIEpTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRh
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1
Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
LmNwcAppbmRleCA0ZmIxZTVkLi4wN2ZlYzcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcApAQCAtNDcsOSArNDcsMTAgQEAgSlNY
U0xUUHJvY2Vzc29yQ29uc3RydWN0b3I6OkpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG8KICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNYU0xUUHJvY2Vzc29yUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9i
amVjdCksIE5vbmUpOwogfQogCi1zdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdFhTTFRQcm9jZXNz
b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIGNvbnN0IEFyZ0xpc3QmKQorc3RhdGljIEpT
T2JqZWN0KiBjb25zdHJ1Y3RYU0xUUHJvY2Vzc29yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yLCBjb25zdCBBcmdMaXN0JikKIHsKLSAgICByZXR1cm4gQ1JFQVRFX0RPTV9P
QkpFQ1RfV1JBUFBFUihleGVjLCBYU0xUUHJvY2Vzc29yLCBYU0xUUHJvY2Vzc29yOjpjcmVhdGUo
KS5nZXQoKSk7CisgICAgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3Ig
PSBzdGF0aWNfY2FzdDxKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKTsK
KyAgICByZXR1cm4gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSwgWFNMVFByb2Nlc3NvciwgWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlKCku
Z2V0KCkpOwogfQogCiBDb25zdHJ1Y3RUeXBlIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggMDFlNTNhNi4uODVk
N2I1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNw
cApAQCAtNjIsMjcgKzYyLDM0IEBAIEpTVmFsdWUgSlNYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1U
b0ZyYWdtZW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJnCiB7CiAgICAgSlNW
YWx1ZSBub2RlVmFsID0gYXJncy5hdCgwKTsKICAgICBKU1ZhbHVlIGRvY1ZhbCA9IGFyZ3MuYXQo
MSk7Ci0gICAgaWYgKG5vZGVWYWwuaXNPYmplY3QoJkpTTm9kZTo6c19pbmZvKSAmJiBkb2NWYWwu
aXNPYmplY3QoJkpTRG9jdW1lbnQ6OnNfaW5mbykpIHsKLSAgICAgICAgV2ViQ29yZTo6Tm9kZSog
bm9kZSA9IHN0YXRpY19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKS0+aW1wbCgpOwot
ICAgICAgICBEb2N1bWVudCogZG9jID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzdGF0aWNfY2Fz
dDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoZG9jVmFsKSktPmltcGwoKSk7Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGltcGwoKS0+dHJhbnNmb3JtVG9GcmFnbWVudChub2RlLCBkb2MpLmdldCgp
KTsKKyAgICBpZiAoIW5vZGVWYWwuaXNPYmplY3QoJkpTTm9kZTo6c19pbmZvKSB8fCAhZG9jVmFs
LmlzT2JqZWN0KCZKU0RvY3VtZW50OjpzX2luZm8pKSB7CisgICAgICAgIC8vIFRocm93IGV4Y2Vw
dGlvbj8KKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIC8vIFRocm93
IGV4Y2VwdGlvbj8KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgTm9k
ZSogc291cmNlTm9kZSA9IHN0YXRpY19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKS0+
aW1wbCgpOworICAgIEpTRG9jdW1lbnQqIGpzRGVzdGluYXRpb25Eb2MgPSBzdGF0aWNfY2FzdDxK
U0RvY3VtZW50Kj4oYXNPYmplY3QoZG9jVmFsKSk7CisgICAgRG9jdW1lbnQqIGRlc3RpbmF0aW9u
RG9jdW1lbnQgPSBqc0Rlc3RpbmF0aW9uRG9jLT5pbXBsKCk7CisKKyAgICAvLyBOT1RFOiBUaGF0
IHdlJ3JlIGNhcmVmdWwgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gZnJvbSB0aGUgd2luZG93
IG9mIHRoZSBvd25lciBkb2N1bWVudCwgbm90IGZyb20gd2hhdGV2ZXIgd2luZG93IFhMU1RQcm9j
ZXNzb3IgY2FtZSBmcm9tLgorICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzRGVzdGluYXRpb25Eb2Mt
Pmdsb2JhbE9iamVjdCgpLCBpbXBsKCktPnRyYW5zZm9ybVRvRnJhZ21lbnQoc291cmNlTm9kZSwg
ZGVzdGluYXRpb25Eb2N1bWVudCkpOwogfQogCiBKU1ZhbHVlIEpTWFNMVFByb2Nlc3Nvcjo6dHJh
bnNmb3JtVG9Eb2N1bWVudChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7
CiAgICAgSlNWYWx1ZSBub2RlVmFsID0gYXJncy5hdCgwKTsKLSAgICBpZiAobm9kZVZhbC5pc09i
amVjdCgmSlNOb2RlOjpzX2luZm8pKSB7Ci0gICAgICAgIEpTTm9kZSogbm9kZSA9IHN0YXRpY19j
YXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKTsKLSAgICAgICAgUmVmUHRyPERvY3VtZW50
PiByZXN1bHREb2N1bWVudCA9IGltcGwoKS0+dHJhbnNmb3JtVG9Eb2N1bWVudChub2RlLT5pbXBs
KCkpOwotICAgICAgICBpZiAocmVzdWx0RG9jdW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCByZXN1bHREb2N1bWVudC5nZXQoKSk7CisgICAgaWYgKCFub2RlVmFsLmlzT2JqZWN0
KCZKU05vZGU6OnNfaW5mbykpIHsKKyAgICAgICAgLy8gVGhyb3cgZXhjZXB0aW9uPwogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgLy8gVGhyb3cgZXhjZXB0aW9uPwot
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgSlNOb2RlKiBzb3VyY2VOb2RlID0gc3Rh
dGljX2Nhc3Q8SlNOb2RlKj4oYXNPYmplY3Qobm9kZVZhbCkpOworICAgIFJlZlB0cjxEb2N1bWVu
dD4gcmVzdWx0RG9jdW1lbnQgPSBpbXBsKCktPnRyYW5zZm9ybVRvRG9jdW1lbnQoc291cmNlTm9k
ZS0+aW1wbCgpKTsKKyAgICBpZiAoIXJlc3VsdERvY3VtZW50KQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKworICAgIC8vIFdlJ3JlIGFzc3VtaW5nIHRoZSB3aW5kb3cgdGhpcyBYU0xU
UHJvY2Vzc29yIGNhbWUgZnJvbSBpcyBtb3JlIGNvcnJlY3QgdGhhbiB0aGUgbGV4aWNhbCBzY29w
ZS4KKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgcmVzdWx0RG9jdW1lbnQu
cmVsZWFzZSgpKTsKIH0KIAogSlNWYWx1ZSBKU1hTTFRQcm9jZXNzb3I6OnNldFBhcmFtZXRlcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0NDIyMDVlLi4xMGI0ZTJjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBKU09iamVj
dCogU2NyaXB0Q29udHJvbGxlcjo6anNPYmplY3RGb3JQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5F
bGVtZW50KiBwbHVnaW4pCiAgICAgLy8gQ3JlYXRlIGEgSlNPYmplY3QgYm91bmQgdG8gdGhpcyBl
bGVtZW50CiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNWYWx1ZSBqc0VsZW1lbnRWYWx1ZSA9
IHRvSlMoZXhlYywgcGx1Z2luKTsKKyAgICBKU1ZhbHVlIGpzRWxlbWVudFZhbHVlID0gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QoKSwgcGx1Z2luKTsKICAgICBpZiAoIWpzRWxlbWVudFZhbHVlIHx8
ICFqc0VsZW1lbnRWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGU1YmUxZDYu
LjhhNDJlZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0
ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNw
cApAQCAtNzIsNyArNzIsOCBAQCBQYXNzUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0
ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSogbm9kZSwgQXR0cmlidQogICAgIC8vIEVuc3Vy
ZSB0aGF0ICdub2RlJyBoYXMgYSBKYXZhU2NyaXB0IHdyYXBwZXIgdG8gbWFyayB0aGUgZXZlbnQg
bGlzdGVuZXIgd2UncmUgY3JlYXRpbmcuCiAgICAgewogICAgICAgICBKU0xvY2sgbG9jayhmYWxz
ZSk7Ci0gICAgICAgIHRvSlMoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIG5vZGUpOworICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHBhc3MgdGhlIGdsb2JhbCBvYmplY3QgYXNzb2NpYXRlZCB3
aXRoIHRoZSBub2RlCisgICAgICAgIHRvSlMoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGds
b2JhbE9iamVjdCwgbm9kZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIEpTTGF6eUV2ZW50TGlzdGVu
ZXI6OmNyZWF0ZShhdHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgZXZlbnRQYXJhbWV0ZXJOYW1l
KG5vZGUtPmlzU1ZHRWxlbWVudCgpKSwgYXR0ci0+dmFsdWUoKSwgZ2xvYmFsT2JqZWN0LCBub2Rl
LCBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJMaW5lTnVtYmVyKCkpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRPYmplY3QuY3BwCmluZGV4IDdmNjM5MWQuLmM3NDNlNWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKQEAgLTEyNiw3ICsxMjYsOCBAQCBib29sIFNjcmlwdEds
b2JhbE9iamVjdDo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFt
ZSwgY29uc3QgUwogYm9vbCBTY3JpcHRHbG9iYWxPYmplY3Q6OnNldChTY3JpcHRTdGF0ZSogc2Ny
aXB0U3RhdGUsIGNvbnN0IGNoYXIqIG5hbWUsIEluc3BlY3RvckNvbnRyb2xsZXIqIHZhbHVlKQog
ewogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5wdXREaXJlY3QoSWRlbnRpZmllcihzY3JpcHRTdGF0ZSwgbmFtZSksIHRvSlMo
c2NyaXB0U3RhdGUsIHZhbHVlKSk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc2NyaXB0U3RhdGUtPmxleGljYWxH
bG9iYWxPYmplY3QoKSk7CisgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoSWRlbnRpZmllcihz
Y3JpcHRTdGF0ZSwgbmFtZSksIHRvSlMoc2NyaXB0U3RhdGUsIGdsb2JhbE9iamVjdCwgdmFsdWUp
KTsKICAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKaW5kZXggYWIzOTJi
Yy4uMGZlMmM2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RR
dWFyYW50aW5lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJh
bnRpbmUuY3BwCkBAIC02OSwxMCArNjksMTEgQEAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9i
amVjdChEYXRhYmFzZSogZGF0YWJhc2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRPYmoKICAg
ICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBFeGVjU3RhdGUqIGV4
ZWMgPSB0b0pTRE9NV2luZG93KGZyYW1lKS0+Z2xvYmFsRXhlYygpOworICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NV2luZG93KGZyYW1lKTsKKyAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKIAogICAgIEpTTG9jayBsb2Nr
KGZhbHNlKTsKLSAgICBxdWFyYW50aW5lZE9iamVjdCA9IFNjcmlwdE9iamVjdChhc09iamVjdChK
U0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZXhlYywgdG9KUyhleGVjLCBkYXRhYmFzZSkp
KSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNw
ZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBk
YXRhYmFzZSkpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg0LDEwICs4NSwxMSBAQCBi
b29sIGdldFF1YXJhbnRpbmVkU2NyaXB0T2JqZWN0KEZyYW1lKiBmcmFtZSwgU3RvcmFnZSogc3Rv
cmFnZSwgU2NyaXB0T2JqZWN0JiBxdQogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKHN0
b3JhZ2UpOwogCi0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmds
b2JhbEV4ZWMoKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RP
TVdpbmRvdyhmcmFtZSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCk7CiAKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgcXVhcmFudGluZWRPYmpl
Y3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFw
KGV4ZWMsIHRvSlMoZXhlYywgc3RvcmFnZSkpKSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBT
Y3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMs
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdG9yYWdlKSkpKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMTAwLDcgKzEwMiw4IEBAIGJvb2wgZ2V0UXVhcmFudGluZWRTY3JpcHRPYmplY3Qo
Tm9kZSogbm9kZSwgU2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwotICAgIHF1YXJhbnRpbmVkT2Jq
ZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3Jh
cChleGVjLCB0b0pTKGV4ZWMsIG5vZGUpKSkpOworICAgIC8vIEZJWE1FOiBTaG91bGQgdXNlIHNv
bWUgc29ydCBvZiBnbG9iYWxPYmplY3RGcm9tTm9kZSgpCisgICAgcXVhcmFudGluZWRPYmplY3Qg
PSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4
ZWMsIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwg
bm9kZSkpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbSBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRl
cm5hbC5tbQppbmRleCBlYjk4YThhLi45YjI2ZTU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSW50ZXJuYWwubW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUlu
dGVybmFsLm1tCkBAIC0xMjMsMTEgKzEyMywxMyBAQCB2b2lkIHJlbW92ZURPTVdyYXBwZXIoRE9N
T2JqZWN0SW50ZXJuYWwqIGltcGwpCiAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICBKU0M6OkV4
ZWNTdGF0ZSAqZXhlYyA9IGZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKTsKLSAgICAKKworICAgIC8vIFRoZSBnbG9iYWwgb2JqZWN0IHdoaWNoIHNob3VsZCBvd24g
dGhpcyBub2RlLgorICAgIFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBmcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdCgpOworICAgIEpTQzo6RXhlY1N0YXRlICpl
eGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisKICAgICAvLyBHZXQgKG9yIGNyZWF0
ZSkgYSBjYWNoZWQgSlMgb2JqZWN0IGZvciB0aGUgRE9NIG5vZGUuCi0gICAgSlNDOjpKU09iamVj
dCAqc2NyaXB0SW1wID0gYXNPYmplY3QoV2ViQ29yZTo6dG9KUyhleGVjLCBub2RlSW1wbCkpOwor
ICAgIEpTQzo6SlNPYmplY3QgKnNjcmlwdEltcCA9IGFzT2JqZWN0KFdlYkNvcmU6OnRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBub2RlSW1wbCkpOwogCiAgICAgSlNDOjpCaW5kaW5nczo6Um9vdE9i
amVjdCogcm9vdE9iamVjdCA9IGZyYW1lLT5zY3JpcHQoKS0+YmluZGluZ1Jvb3RPYmplY3QoKTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZmEx
YTdjZC4uNDU2MjQ3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC02MjUsMTEgKzYyNSwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIGlm
ICghJGhhc1BhcmVudCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0
ZVRvSlMifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTIn0p
IHsKICAgICAgICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU1NWR1BPRFR5cGVXcmFw
cGVyPCRwb2RUeXBlPiosIFNWR0VsZW1lbnQqIGNvbnRleHQpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiwgU1ZHRWxl
bWVudCogY29udGV4dCk7XG4iKTsKICAgICAgICAgfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0Nv
bnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCAkaW1wbFR5cGUq
LCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCAkaW1wbFR5cGUqLCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIpOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgJGltcGxUeXBlKik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgJGltcGxUeXBlKik7XG4iKTsKICAgICAgICAgfQogICAgIH0KICAgICBpZiAo
ISRoYXNQYXJlbnQgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVO
YXRpdmVDb252ZXJ0ZXIifSkgewpAQCAtNjQyLDcgKzY0Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgICAgICB9CiAgICAgfQogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIgb3Ig
JGludGVyZmFjZU5hbWUgZXEgIkVsZW1lbnQiIG9yICRpbnRlcmZhY2VOYW1lIGVxICJUZXh0IiBv
ciAkaW50ZXJmYWNlTmFtZSBlcSAiQ0RBVEFTZWN0aW9uIikgewotICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUq
LCAkaW50ZXJmYWNlTmFtZSopO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgJGludGVyZmFjZU5hbWUqKTtcbiIpOwogICAgIH0KICAgICAKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiXG4iKTsKQEAgLTEwOTQsNiArMTA5NCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFs
dWUgJHtnZXRGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFz
T2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpO1xuIik7CiAKICAgICAgICAgICAgICAgICBteSAkaW1w
bENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiA9ICIiOwogICAgICAgICAgICAgICAgIGlmICgh
JHBvZFR5cGUgYW5kICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGltcGxDbGFz
c05hbWUpIG9yICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS8pKSB7CkBAIC0xMTAzLDI1
ICsxMTA0LDI1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
aWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrRG9tYWluU2VjdXJpdHki
fSAmJiAKICAgICAgICAgICAgICAgICAgICAgICAgICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHkifSAmJgogICAgICAg
ICAgICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRvTm90Q2hlY2tEb21haW5TZWN1cml0eU9uR2V0In0pIHsKLSAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzdGF0aWNfY2FzdDwkY2xhc3NOYW1l
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmFsbG93c0FjY2Vzc0Zyb20oZXhlYykpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0
ZWRUaGlzLT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOwog
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b20ifSB8fCAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSB8fCAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b21HZXR0ZXIifSkg
ewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT4kaW1wbEdl
dHRlckZ1bmN0aW9uTmFtZShleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gY2FzdGVkVGhpcy0+JGltcGxHZXR0ZXJGdW5jdGlvbk5h
bWUoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja05vZGVTZWN1cml0eSJ9KSB7CiAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOwotICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSog
aW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1l
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5
KGV4ZWMsIGltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSkgPyAiIC4gTmF0aXZlVG9KU1Zh
bHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICRpbXBsQ2xhc3NO
YW1lRm9yVmFsdWVDb252ZXJzaW9uLCAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwg
InN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIpIC4g
IiA6IGpzVW5kZWZpbmVkKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NO
YW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYywgaW1wLT4k
aW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpKSA/ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNv
bnZlcnNpb24sICJpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAiY2FzdGVkVGhpcyIp
IC4gIiA6IGpzVW5kZWZpbmVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0ZyYW1lU2VjdXJp
dHkifSkgewogICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJEb2N1bWVudC5oIn0g
PSAxOwogICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0RPTUJpbmRpbmcuaCJ9
ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxD
bGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8
JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjaGVja05v
ZGVTZWN1cml0eShleGVjLCBpbXAtPmNvbnRlbnREb2N1bWVudCgpKSA/ICIgLiBOYXRpdmVUb0pT
VmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAgMCwgJGltcGxDbGFzc05hbWUsICRpbXBsQ2xh
c3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgp
IiwgInN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIp
IC4gIiA6IGpzVW5kZWZpbmVkKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xh
c3NOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYywgaW1w
LT5jb250ZW50RG9jdW1lbnQoKSkgPyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZSwgIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVy
c2lvbiwgImltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSIsICJjYXN0ZWRUaGlzIikgLiAi
IDoganNVbmRlZmluZWQoKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVx
ICJFdmVudExpc3RlbmVyIikgewogICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJF
dmVudExpc3RlbmVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8
JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5z
bG90QmFzZSgpKSktPmltcGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xh
c3NOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIgPSBpbXAt
PiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gbGlz
dGVuZXItPmpzRnVuY3Rpb24oKSlcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgICAgIHJldHVybiBqc0Z1bmN0aW9uO1xuIik7CkBAIC0xMTMwLDIx
ICsxMTMxLDIwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
fSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7
CiAgICAgICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAg
ICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0NvbnN0cnVjdG9yJC8vOwotICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgIyBDb25zdHJ1Y3RvciBhdHRyaWJ1dGUgaXMgb25s
eSB1c2VkIGJ5IERPTVdpbmRvdy5pZGwsIHNvIGl0J3MgY29ycmVjdCB0byBwYXNzIGNhc3RlZFRo
aXMgYXMgdGhlIGdsb2JhbCBvYmplY3QKICAgICAgICAgICAgICAgICAgICAgIyBPbmNlIERPTU9i
amVjdHMgaGF2ZSBhIGJhY2stcG9pbnRlciB0byB0aGUgZ2xvYmFsT2JqZWN0IHdlIGNhbiBwYXNz
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6Z2V0Q29u
c3RydWN0b3IoZXhlYywgY2FzdGVkVGhpcyk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lm
ICghQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgewogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBpbXAoKnN0YXRpY19jYXN0PCRjbGFzc05h
bWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+aW1wbCgpKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHBvZFR5cGUgaW1wKCpjYXN0
ZWRUaGlzLT5pbXBsKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBvZFR5
cGUgZXEgImZsb2F0IikgeyAjIFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIiAuIE5h
dGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAi
IiwgImltcCIsICJzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFz
ZSgpKSkiKSAuICI7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWdu
YXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiIiwgImltcCIsICJjYXN0ZWRUaGlzIikgLiAiO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAiIC4gTmF0aXZlVG9KU1Zh
bHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICIiLCAiaW1wLiRp
bXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAic3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2Jq
ZWN0KHNsb3Quc2xvdEJhc2UoKSkpIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICIgLiBOYXRpdmVUb0pTVmFsdWUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgIiIsICJpbXAuJGltcGxH
ZXR0ZXJGdW5jdGlvbk5hbWUoKSIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1w
ID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4o
YXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmltcGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBz
dGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUmVmbGVjdCJ9OwogICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07
CkBAIC0xMTU2LDIzICsxMTU2LDIyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICR2YWx1ZSA9ICJpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGpzVHlwZSA9IE5hdGl2
ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1w
bENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgJHZhbHVlLCAic3RhdGljX2Nhc3Q8JGNsYXNz
TmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkanNUeXBlID0gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwg
MCwgJGltcGxDbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAkdmFs
dWUsICJjYXN0ZWRUaGlzIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwkdHlwZT4gb2JqID0gJGpzVHlw
ZTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiB0b0pTKGV4ZWMsIG9iai5nZXQoKSwgaW1wKTtcbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0b0pTKGV4ZWMs
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBvYmouZ2V0KCksIGltcCk7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICRqc1R5cGU7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwO1xuIik7Ci0KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICBpZiAoJHBvZFR5cGUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRwb2RUeXBlIGltcCgqc3RhdGljX2Nhc3Q8
JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAs
ICRpbXBsQ2xhc3NOYW1lLCAiIiwgImltcC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZShlYykiLCAi
c3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpIikgLiAi
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
cG9kVHlwZSBpbXAoKmNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4g
TmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUs
ICIiLCAiaW1wLiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKGVjKSIsICJjYXN0ZWRUaGlzIikgLiAi
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0gc3RhdGlj
X2Nhc3Q8JGltcGxDbGFzc05hbWUqPihzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qo
c2xvdC5zbG90QmFzZSgpKSktPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZl
VG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICRpbXBs
Q2xhc3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFt
ZShlYykiLCAic3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2Uo
KSkpIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENsYXNz
TmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoZWMp
IiwgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBlYyk7XG4iKTsKQEAgLTE0OTYsNyArMTQ5NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJLVVJMLmgifSA9IDE7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4ganNTdHJpbmdPck51bGwoZXhlYywg
dGhpc09iai0+aW1wbCgpLT5pdGVtKHNsb3QuaW5kZXgoKSkpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gdG9KUyhleGVj
LCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmotPmltcGwoKSktPml0ZW0oc2xv
dC5pbmRleCgpKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJl
dHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KHRoaXNPYmotPmltcGwoKSktPml0ZW0oc2xvdC5pbmRleCgpKSk7XG4iKTsK
ICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAgICAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xsZWN0aW9uIikgewpAQCAtMTUwNywyMCArMTUw
NiwyMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgaWYgKCghJGhhc1BhcmVu
dCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5k
ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTIn0pIHsKICAgICAg
ICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRw
b2RUeXBlPiogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRw
b2RUeXBlPiogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KVxuIik7CiAgICAgICAgIH0gZWxz
aWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewot
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsICRpbXBsVHlwZSogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KVxu
Iik7CisgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGlt
cGxUeXBlKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsICRpbXBsVHlwZSogb2JqZWN0KVxuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAkaW1wbFR5cGUqIG9iamVjdClcbiIp
OwogICAgICAgICB9CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAg
ICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjwkY2xhc3NOYW1lLCBKU1NWR1BPRFR5cGVXcmFwcGVy
PCRwb2RUeXBlPiA+KGV4ZWMsIG9iamVjdCwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVyPCRjbGFzc05h
bWUsIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4oZXhlYywgZ2xvYmFsT2JqZWN0LCBv
YmplY3QsIGNvbnRleHQpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdD
b250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZT4oZXhl
Yywgb2JqZWN0LCBjb250ZXh0KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZT4oZXhlYywgZ2xvYmFs
T2JqZWN0LCBvYmplY3QsIGNvbnRleHQpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjwk
Y2xhc3NOYW1lPihleGVjLCBvYmplY3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjwkY2xhc3NOYW1lPihleGVjLCBn
bG9iYWxPYmplY3QsIG9iamVjdCk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cbiIpOwogICAgIH0KQEAgLTE2OTYsNiArMTY5NSw5IEBAIHN1YiBOYXRpdmVU
b0pTVmFsdWUKICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvSlNTdHJpbmcuaD4ifSA9
IDE7CiAgICAgICAgIHJldHVybiAianNTdHJpbmcoZXhlYywgJHZhbHVlKSI7CiAgICAgfQorICAg
IAorICAgICMgU29tZSBTVkcgYmluZGluZ3MgZG9uJ3QgaGF2ZSBzcGFjZSB0byBzdG9yZSBhIGds
b2JhbE9iamVjdCBwb2ludGVyLCBmb3IgdGhvc2UsIHdlIHVzZSB0aGUgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZSBoYWNrIGZvciBub3cuCisgICAgbXkgJGdsb2JhbE9iamVjdCA9
IElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSA/ICJkZXBy
ZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpIiA6ICIkdGhpc1ZhbHVlLT5nbG9i
YWxPYmplY3QoKSI7CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkp
IHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAxOwpAQCAtMTcxNCwyNSAr
MTcxNiwyNSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgICAgICBhbmQgJGNvZGVHZW5l
cmF0b3ItPklzUG9kVHlwZVdpdGhXcml0ZWFibGVQcm9wZXJ0aWVzKCR0eXBlKQogICAgICAgICAg
ICAgYW5kIG5vdCBkZWZpbmVkICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbW11
dGFibGUifSkgewogICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJGlt
cGxDbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZH
U3RhdGljUE9EVHlwZVdyYXBwZXJXaXRoUE9EVHlwZVBhcmVudDwkbmF0aXZlVHlwZSwgJGltcGxD
bGFzc05hbWU+OjpjcmVhdGUoJHZhbHVlLCAkdGhpc1ZhbHVlLT5pbXBsKCkpLmdldCgpLCAkdGhp
c1ZhbHVlLT5jb250ZXh0KCkpIjsKKyAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywg
JGdsb2JhbE9iamVjdCwgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQT0RUeXBlUGFyZW50
PCRuYXRpdmVUeXBlLCAkaW1wbENsYXNzTmFtZT46OmNyZWF0ZSgkdmFsdWUsICR0aGlzVmFsdWUt
PmltcGwoKSkuZ2V0KCksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RU
eXBlV3JhcHBlcldpdGhQYXJlbnQ8JG5hdGl2ZVR5cGUsICRpbXBsQ2xhc3NOYW1lPjo6Y3JlYXRl
KGltcCwgJiR7aW1wbENsYXNzTmFtZX06OiRnZXR0ZXIsICYke2ltcGxDbGFzc05hbWV9Ojokc2V0
dGVyKS5nZXQoKSwgaW1wKSI7CisgICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRn
bG9iYWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXJXaXRoUGFyZW50PCRuYXRpdmVU
eXBlLCAkaW1wbENsYXNzTmFtZT46OmNyZWF0ZShpbXAsICYke2ltcGxDbGFzc05hbWV9OjokZ2V0
dGVyLCAmJHtpbXBsQ2xhc3NOYW1lfTo6JHNldHRlcikuZ2V0KCksIGltcCkiOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252
ZXJzaW9uIGVxICIiKSB7CiAgICAgICAgICAgICAjIFNWR1pvb21FdmVudCBoYXMgbm8gY29udGV4
dCgpIHBvaW50ZXIsIGFuZCBpcyBhbHNvIG5vdCBhbiBTVkdFbGVtZW50LgogICAgICAgICAgICAg
IyBUaGlzIGlzIG5vdCBhIHByb2JsZW0sIGJlY2F1c2UgU1ZHWm9vbUV2ZW50IGhhcyBubyByZWFk
L3dyaXRlIHByb3BlcnRpZXMuCi0gICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdT
dGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCAw
KSIgaWYgJGltcGxDbGFzc05hbWUgZXEgIlNWR1pvb21FdmVudCI7CisgICAgICAgICAgICByZXR1
cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwk
bmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCAwKSIgaWYgJGltcGxDbGFzc05hbWUg
ZXEgIlNWR1pvb21FdmVudCI7CiAKICAgICAgICAgICAgIGlmIChJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
InRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0
ZSgkdmFsdWUpLmdldCgpLCBjYXN0ZWRUaGlzT2JqLT5jb250ZXh0KCkpIiBpZiAkaW5GdW5jdGlv
bkNhbGw7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9E
VHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgJHRoaXNWYWx1
ZS0+Y29udGV4dCgpKSI7CisgICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9i
YWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUo
JHZhbHVlKS5nZXQoKSwgY2FzdGVkVGhpc09iai0+Y29udGV4dCgpKSIgaWYgJGluRnVuY3Rpb25D
YWxsOworICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0
KCksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwk
bmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCBpbXApIjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgSlNTVkdTdGF0aWNQT0RUeXBlV3Jh
cHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCBpbXApIjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSBlbHNlIHsgIyBUaGVzZSBjbGFzc2VzLCBhbHdheXMgaGF2ZSBhIG1f
Y29udGV4dCBwb2ludGVyIQotICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHRHlu
YW1pY1BPRFR5cGVXcmFwcGVyQ2FjaGU8JG5hdGl2ZVR5cGUsICRpbXBsQ2xhc3NOYW1lRm9yVmFs
dWVDb252ZXJzaW9uPjo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKGltcCwgJiR7aW1wbENsYXNzTmFt
ZUZvclZhbHVlQ29udmVyc2lvbn06OiRnZXR0ZXIsICYke2ltcGxDbGFzc05hbWVGb3JWYWx1ZUNv
bnZlcnNpb259Ojokc2V0dGVyKS5nZXQoKSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgpKSI7CisgICAg
ICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgSlNTVkdEeW5hbWljUE9E
VHlwZVdyYXBwZXJDYWNoZTwkbmF0aXZlVHlwZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZl
cnNpb24+Ojpsb29rdXBPckNyZWF0ZVdyYXBwZXIoaW1wLCAmJHtpbXBsQ2xhc3NOYW1lRm9yVmFs
dWVDb252ZXJzaW9ufTo6JGdldHRlciwgJiR7aW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lv
bn06OiRzZXR0ZXIpLmdldCgpLCAkdGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtMTc2NSwxOCArMTc2NywxNSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAg
cmV0dXJuICR2YWx1ZSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUp
OwogCiAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCR0eXBlKSkgewot
ICAgICAgICBpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05h
bWUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgV1RGOjpnZXRQdHIoJHZhbHVl
KSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgpKSI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICByZXR1cm4gInRvSlMoZXhlYywgV1RGOjpnZXRQdHIoJHZhbHVlKSwgaW1wKSI7Ci0gICAgICAg
IH0KKyAgICAgICAgbXkgJGNvbnRleHRQdHIgPSBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFt
ZXRlcigkaW1wbENsYXNzTmFtZSkgPyAiJHRoaXNWYWx1ZS0+Y29udGV4dCgpIiA6ICJpbXAiOwor
ICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQdHIoJHZh
bHVlKSwgJGNvbnRleHRQdHIpIjsKICAgICB9CiAKICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlJldHVybnNOZXcifSkgeyAgICAgICAgCi0gICAgICAgIHJldHVybiAi
dG9KU05ld2x5Q3JlYXRlZChleGVjLCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CisgICAgICAgIHJl
dHVybiAidG9KU05ld2x5Q3JlYXRlZChleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigk
dmFsdWUpKSI7CiAgICAgfQogCi0gICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKCR2
YWx1ZSkpIjsKKyAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQ
dHIoJHZhbHVlKSkiOwogfQogCiBzdWIgY2VpbGluZ1RvUG93ZXJPZjIKQEAgLTIwMjcsMTIgKzIw
MjYsMTMgQEAgc3ViIGNvbnN0cnVjdG9yRm9yCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlm
dDsKICAgICBteSAkdmlzaWJsZUNsYXNzTmFtZSA9IHNoaWZ0OwogICAgIG15ICRjYW5Db25zdHJ1
Y3QgPSBzaGlmdDsKKyAgICBteSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9
Q29uc3RydWN0b3IiOwogCiBteSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKLWNsYXNzICR7Y2xh
c3NOYW1lfUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKK2NsYXNz
ICR7Y29uc3RydWN0b3JDbGFzc05hbWV9IDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICAke2NsYXNzTmFtZX1Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDogRE9NQ29uc3RydWN0b3JP
YmplY3QoJHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgICR7Y29uc3RydWN0b3JD
bGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKKyAgICAgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9i
YWxPYmplY3QpCiAgICAgewogICAgICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwg
Tm9uZSk7CiAgICAgfQpAQCAtMjA0OCwxMyArMjA0OCwxMyBAQCBFT0YKIAogICAgIGlmICgkY2Fu
Q29uc3RydWN0KSB7CiAkaW1wbENvbnRlbnQgLj0gPDwgIkVPRiI7Ci0gICAgc3RhdGljIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIGNvbnN0IEFyZ0xpc3Qm
KQorICAgIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0JHtpbnRlcmZhY2VOYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYpCiAgICAgewot
ICAgICAgICByZXR1cm4gYXNPYmplY3QodG9KUyhleGVjLCAke2ludGVyZmFjZU5hbWV9OjpjcmVh
dGUoKSkpOworICAgICAgICByZXR1cm4gYXNPYmplY3QodG9KUyhleGVjLCBzdGF0aWNfY2FzdDwk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNvbnN0cnVjdG9yKS0+Z2xvYmFsT2JqZWN0KCksICR7
aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgpKSk7CiAgICAgfQogICAgIHZpcnR1YWwgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiAgICAg
ewotICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdDsKKyAg
ICAgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Qke2ludGVyZmFj
ZU5hbWV9OwogICAgICAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7CiAgICAgfQogRU9GCkBA
IC0yMDYzLDE2ICsyMDYzLDE2IEBAIEVPRgogJGltcGxDb250ZW50IC49IDw8ICJFT0YiOwogfTsK
IAotY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICIk
e3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3IiLCAwLCAmJHtjbGFzc05hbWV9Q29uc3RydWN0
b3JUYWJsZSwgMCB9OworY29uc3QgQ2xhc3NJbmZvICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpz
X2luZm8gPSB7ICIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3IiLCAwLCAmJHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX1UYWJsZSwgMCB9OwogCi1ib29sICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9y
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8JHtjbGFzc05hbWV9Q29uc3RydWN0b3IsIERPTU9iamVjdD4oZXhlYywg
JiR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwg
RE9NT2JqZWN0PihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAogRU9GCiAKLSAgICAkaW1wbEpTQ0luY2x1ZGV7IkpTTnVt
YmVyQ2VsbC5oIn0gPSAxOworICAgICRpbXBsSlNDSW5jbHVkZXsiSlNOdW1iZXJDZWxsLmgifSA9
IDE7ICMgRklYTUU6IFdoYXQgaXMgdGhpcyBmb3I/CiAKICAgICByZXR1cm4gJGltcGxDb250ZW50
OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwKaW5kZXggMTJmMGVjNy4uZTZkNTlhMCAxMDA3NTUKLS0tIGEvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC04
NzUsMjIgKzg3NSwyMyBAQCBzdWIgcHJpbnRXcmFwcGVyRnVuY3Rpb25zCiAgICAgICAgIH0KIAog
ICAgICAgICAjIEhhY2sgZm9yIHRoZSBtZWRpYSB0YWdzCisgICAgICAgICMgRklYTUU6IFRoaXMg
c2hvdWxkIGhhdmUgYmVlbiBkb25lIHZpYSBhIEN1c3RvbVdyYXBwZXIgYXR0cmlidXRlIGFuZCBh
IHNlcGFyYXRlICpDdXN0b20gZmlsZS4KICAgICAgICAgaWYgKCR0YWdzeyR0YWdOYW1lfXsid3Jh
cHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUifSkgewogICAgICAgICAgICAgcHJpbnQgRiA8PEVO
RAotc3RhdGljIEpTTm9kZSogY3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcihFeGVjU3Rh
dGUqIGV4ZWMsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudD4gZWxl
bWVudCkKK3N0YXRpYyBKU05vZGUqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgaWYgKCFN
ZWRpYVBsYXllcjo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fTk9E
RV9XUkFQUEVSKGV4ZWMsICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQsIGVsZW1lbnQu
Z2V0KCkpOwotICAgIHJldHVybiBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCAke0pTSW50
ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9O
T0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31F
bGVtZW50LCBlbGVtZW50LmdldCgpKTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAke0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkp
OwogfQogCiBFTkQKIDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHByaW50IEYgPDxF
TkQKLXN0YXRpYyBKU05vZGUqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoRXhlY1N0
YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+IGVs
ZW1lbnQpCitzdGF0aWMgSlNOb2RlKiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0
cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50PiBlbGVtZW50KQogewotICAgIHJldHVy
biBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCAke0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1l
bnQuZ2V0KCkpOworICAgIHJldHVybiBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiB9CiAKIEVORApA
QCAtOTMxLDcgKzkzMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
ICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfU5hbWVzOwogCi10eXBlZGVmIEpTTm9kZSogKCpDcmVh
dGUkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZ1bmN0aW9uKShFeGVjU3Rh
dGUqLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+KTsKK3R5cGVk
ZWYgSlNOb2RlKiAoKkNyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVy
RnVuY3Rpb24pKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkcGFy
YW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7CiAKIEVORAogOwpAQCAtOTM5LDcgKzk0MCw3
IEBAIEVORAogICAgIHByaW50V3JhcHBlckZ1bmN0aW9ucygkRik7CiAKICAgICBwcmludCBGIDw8
RU5ECi1KU05vZGUqIGNyZWF0ZUpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9V3JhcHBlcihFeGVj
U3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudD4g
ZWxlbWVudCkKK0pTTm9kZSogY3JlYXRlSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31XcmFwcGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1Jl
ZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50PiBlbGVtZW50KQogeyAgIAogICAg
IHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlJHBhcmFt
ZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gRnVuY3Rpb25NYXA7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChGdW5jdGlvbk1hcCwgbWFwLCAoKSk7CkBAIC05NjksOCAr
OTcwLDggQEAgRU5ECiAgICAgfQogICAgIENyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVs
ZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVt
ZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24p
Ci0gICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZXhlYywgZWxlbWVudCk7Ci0g
ICAgcmV0dXJuIENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsICRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfUVsZW1lbnQsIGVsZW1lbnQuZ2V0KCkpOworICAgICAgICByZXR1cm4gY3JlYXRlV3Jh
cHBlckZ1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZWxlbWVudCk7CisgICAgcmV0dXJuIENS
RUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7J25h
bWVzcGFjZSd9RWxlbWVudCwgZWxlbWVudC5nZXQoKSk7CiB9CiAKIH0KQEAgLTEwMDYsOSArMTAw
NywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNz
IEpTTm9kZTsKKyAgICBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKICAgICBjbGFzcyAkcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50OwogCi0gICAgSlNOb2RlKiBjcmVhdGVKUyRwYXJhbWV0
ZXJzeyduYW1lc3BhY2UnfVdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPCRwYXJh
bWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+KTsKKyAgICBKU05vZGUqIGNyZWF0ZUpTJHBhcmFt
ZXRlcnN7J25hbWVzcGFjZSd9V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7CiAKIH0=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33407</attachid>
            <date>2009-07-23 23:04:32 -0700</date>
            <delta_ts>2009-07-24 12:34:57 -0700</delta_ts>
            <desc>Fully working patch</desc>
            <filename>bug-27634-20090723230432.patch</filename>
            <type>text/plain</type>
            <size>181959</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1v
YmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjBmMTNkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjkgQEAKK01ha2Ugc3VyZSBwcm90b3R5cGVzIGFyZSBzZXQgdXAgdXNpbmcgdGhlIHdpbmRvdyBh
IHByb3BlcnR5IGNhbWUgZnJvbSwgaW5zdGVhZCBvZiB0aGUgbGV4aWNhbCBnbG9iYWwgb2JqZWN0
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAobmV3IGlubmVyLkF1ZGlv
KS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5BdWRpbykuY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuRE9NUGFyc2VyKS5pc0lubmVyIGlzIHRydWUK
K1BBU1MgKG5ldyBpbm5lci5ET01QYXJzZXIpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyAobmV3IGlubmVyLkltYWdlKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5J
bWFnZSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuTWVzc2Fn
ZUNoYW5uZWwpLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLk1lc3NhZ2VDaGFubmVs
KS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5PcHRpb24pLmlz
SW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLk9wdGlvbikuY29uc3RydWN0b3IuaXNJbm5l
ciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuV2ViS2l0Q1NTTWF0cml4KS5pc0lubmVyIGlzIHRy
dWUKK1BBU1MgKG5ldyBpbm5lci5XZWJLaXRDU1NNYXRyaXgpLmNvbnN0cnVjdG9yLmlzSW5uZXIg
aXMgdHJ1ZQorUEFTUyAobmV3IGlubmVyLldlYktpdFBvaW50KS5pc0lubmVyIGlzIHRydWUKK1BB
U1MgKG5ldyBpbm5lci5XZWJLaXRQb2ludCkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQ
QVNTIChuZXcgaW5uZXIuWE1MSHR0cFJlcXVlc3QpLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyAobmV3
IGlubmVyLlhNTEh0dHBSZXF1ZXN0KS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1Mg
KG5ldyBpbm5lci5YTUxTZXJpYWxpemVyKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5l
ci5YTUxTZXJpYWxpemVyKS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBp
bm5lci5YUGF0aEV2YWx1YXRvcikuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuWFBh
dGhFdmFsdWF0b3IpLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQxNWRiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5odG1s
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAppbmRleCBhZWFiMmEzLi5jZTM2OGU3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC00LDI0NiArNCwyNDYgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogCiBGQUlMIEFycmF5IGZyb20gaW5uZXIuY29uc29sZS5wcm9maWxlcwotRkFJ
TCBBdHRyIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAKLUZB
SUwgQXR0ckNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRy
aWJ1dGVzLjAuY29uc3RydWN0b3IKLUZBSUwgQXR0clByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLl9fcHJvdG9fXwotRkFJTCBCYXJJbmZvIGZy
b20gaW5uZXIubWVudWJhcgotRkFJTCBCYXJJbmZvUHJvdG90eXBlIGZyb20gaW5uZXIubWVudWJh
ci5fX3Byb3RvX18KK1BBU1MgQXR0ciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
YXR0cmlidXRlcy4wCitQQVNTIEF0dHJDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLmNvbnN0cnVjdG9yCitQQVNTIEF0dHJQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5fX3Byb3RvX18K
K1BBU1MgQmFySW5mbyBmcm9tIGlubmVyLm1lbnViYXIKK1BBU1MgQmFySW5mb1Byb3RvdHlwZSBm
cm9tIGlubmVyLm1lbnViYXIuX19wcm90b19fCiBGQUlMIEJvb2xlYW4gZnJvbSBpbm5lci5vZmZz
Y3JlZW5CdWZmZXJpbmcKLUZBSUwgQ1NTUnVsZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5zdHls
ZVNoZWV0cy4wLmNzc1J1bGVzCi1GQUlMIENTU1J1bGVMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLnJ1bGVzLmNvbnN0cnVjdG9yCi1GQUlMIENTU1J1bGVM
aXN0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5jc3NSdWxlcy5f
X3Byb3RvX18KLUZBSUwgQ1NTU3R5bGVEZWNsYXJhdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LnNj
cmlwdHMuMC5zdHlsZQotRkFJTCBDU1NTdHlsZURlY2xhcmF0aW9uQ29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnN0eWxlLmNvbnN0cnVjdG9yCi1GQUlMIENTU1N0
eWxlRGVjbGFyYXRpb25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAuc3R5
bGUuX19wcm90b19fCi1GQUlMIENTU1N0eWxlU2hlZXQgZnJvbSBpbm5lci5kb2N1bWVudC5zdHls
ZVNoZWV0cy4wCi1GQUlMIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LnN0eWxlU2hlZXRzLjAuY29uc3RydWN0b3IKLUZBSUwgQ1NTU3R5bGVTaGVldFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAuX19wcm90b19fCi1GQUlMIENoYXJh
Y3RlckRhdGFQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJp
YnV0ZXMuMC5sYXN0Q2hpbGQuX19wcm90b19fLl9fcHJvdG9fXwotRkFJTCBDb2xsZWN0aW9uIGZy
b20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0KLUZBSUwgQ29uc29sZSBmcm9tIGlubmVy
LmNvbnNvbGUKLUZBSUwgQ29uc29sZVByb3RvdHlwZSBmcm9tIGlubmVyLmNvbnNvbGUuX19wcm90
b19fCi1GQUlMIERPTUFwcGxpY2F0aW9uQ2FjaGUgZnJvbSBpbm5lci5hcHBsaWNhdGlvbkNhY2hl
Ci1GQUlMIERPTUFwcGxpY2F0aW9uQ2FjaGVQcm90b3R5cGUgZnJvbSBpbm5lci5hcHBsaWNhdGlv
bkNhY2hlLl9fcHJvdG9fXwotRkFJTCBET01JbXBsZW1lbnRhdGlvbiBmcm9tIGlubmVyLmRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uCi1GQUlMIERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jb25zdHJ1Y3RvcgotRkFJTCBET01JbXBs
ZW1lbnRhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLl9f
cHJvdG9fXworUEFTUyBDU1NSdWxlTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRz
LjAuY3NzUnVsZXMKK1BBU1MgQ1NTUnVsZUxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LnN0eWxlU2hlZXRzLjAucnVsZXMuY29uc3RydWN0b3IKK1BBU1MgQ1NTUnVsZUxpc3RQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLmNzc1J1bGVzLl9fcHJvdG9f
XworUEFTUyBDU1NTdHlsZURlY2xhcmF0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4w
LnN0eWxlCitQQVNTIENTU1N0eWxlRGVjbGFyYXRpb25Db25zdHJ1Y3RvciBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuc3R5bGUuY29uc3RydWN0b3IKK1BBU1MgQ1NTU3R5bGVEZWNs
YXJhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5zdHlsZS5fX3By
b3RvX18KK1BBU1MgQ1NTU3R5bGVTaGVldCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRz
LjAKK1BBU1MgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5
bGVTaGVldHMuMC5jb25zdHJ1Y3RvcgorUEFTUyBDU1NTdHlsZVNoZWV0UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18KK1BBU1MgQ2hhcmFjdGVyRGF0
YVByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4w
Lmxhc3RDaGlsZC5fX3Byb3RvX18uX19wcm90b19fCitQQVNTIENvbGxlY3Rpb24gZnJvbSBpbm5l
ci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybQorUEFTUyBDb25zb2xlIGZyb20gaW5uZXIuY29uc29s
ZQorUEFTUyBDb25zb2xlUHJvdG90eXBlIGZyb20gaW5uZXIuY29uc29sZS5fX3Byb3RvX18KK1BB
U1MgRE9NQXBwbGljYXRpb25DYWNoZSBmcm9tIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUKK1BBU1Mg
RE9NQXBwbGljYXRpb25DYWNoZVByb3RvdHlwZSBmcm9tIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUu
X19wcm90b19fCitQQVNTIERPTUltcGxlbWVudGF0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24KK1BBU1MgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yCitQQVNTIERPTUltcGxlbWVudGF0
aW9uUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uX19wcm90b19f
CiBQQVNTIERPTVdpbmRvdyBmcm9tIGlubmVyCiBQQVNTIERPTVdpbmRvd1Byb3RvdHlwZSBmcm9t
IGlubmVyLl9fcHJvdG9fXwotRkFJTCBEYXRhR3JpZENvbHVtbkxpc3QgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29sdW1ucwotRkFJTCBEYXRhR3JpZENv
bHVtbkxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xNC5jb2x1bW5zLmNvbnN0cnVjdG9yCi1GQUlMIERhdGFHcmlkQ29sdW1uTGlzdFBy
b3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5j
b2x1bW5zLl9fcHJvdG9fXworUEFTUyBEYXRhR3JpZENvbHVtbkxpc3QgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29sdW1ucworUEFTUyBEYXRhR3JpZENv
bHVtbkxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xNC5jb2x1bW5zLmNvbnN0cnVjdG9yCitQQVNTIERhdGFHcmlkQ29sdW1uTGlzdFBy
b3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5j
b2x1bW5zLl9fcHJvdG9fXwogUEFTUyBEb2N1bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50Ll9fcHJvdG9fXy5fX3Byb3RvX18KLUZBSUwgRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KK1BB
U1MgRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19w
cm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KIEZBSUwgRnVuY3Rpb24gZnJvbSBpbm5lci5kb2N1
bWVudC5sb2NhdGlvbi5wYXRobmFtZS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQW5jaG9yRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQKLUZB
SUwgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuY29uc3RydWN0b3IKLUZBSUwgSFRNTEFuY2hvckVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmZpcnN0RWxl
bWVudENoaWxkLl9fcHJvdG9fXwotRkFJTCBIVE1MQXBwbGV0RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFwcGxldHMuMAotRkFJTCBIVE1MQXBwbGV0RWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxBcHBsZXRFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wLl9fcHJvdG9fXwotRkFJ
TCBIVE1MQXJlYUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMgotRkFJTCBIVE1MQXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxBcmVh
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4yLl9fcHJvdG9fXwotRkFJTCBIVE1MQXVkaW9FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMKLUZBSUwgSFRNTEF1ZGlvRWxlbWVudENvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMuY29u
c3RydWN0b3IKLUZBSUwgSFRNTEF1ZGlvRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zLl9fcHJvdG9fXwotRkFJTCBIVE1MQlJFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQKLUZBSUwg
SFRNTEJSRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQuY29uc3RydWN0b3IKLUZBSUwgSFRNTEJSRWxlbWVudFByb3RvdHlwZSBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Ll9fcHJvdG9fXwot
RkFJTCBIVE1MQmFzZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNgotRkFJTCBIVE1MQmFzZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy42LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxC
YXNlRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy42Ll9fcHJvdG9fXwotRkFJTCBIVE1MQmFzZUZvbnRFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjcKLUZBSUwgSFRNTEJhc2VGb250RWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjcuY29uc3RydWN0b3IKLUZBSUwgSFRNTEJhc2VGb250RWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy43Ll9fcHJvdG9fXwotRkFJ
TCBIVE1MQm9keUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ci1GQUlM
IEhUTUxCb2R5RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQm9keUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ll9fcHJvdG9fXwotRkFJTCBIVE1MQnV0dG9uRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45Ci1GQUlMIEhU
TUxCdXR0b25FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuOS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MQnV0dG9uRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45Ll9fcHJv
dG9fXwotRkFJTCBIVE1MQ2FudmFzRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4xMAotRkFJTCBIVE1MQ2FudmFzRWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwLmNvbnN0cnVjdG9y
Ci1GQUlMIEhUTUxDYW52YXNFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwLl9fcHJvdG9fXwotRkFJTCBIVE1MQ29sbGVjdGlvbiBm
cm9tIGlubmVyLmRvY3VtZW50LmxpbmtzCi1GQUlMIEhUTUxDb2xsZWN0aW9uUHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3Lm9wdGlvbnMuX19w
cm90b19fCi1GQUlMIEhUTUxETGlzdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuMTEKLUZBSUwgSFRNTERMaXN0RWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjExLmNvbnN0cnVjdG9y
Ci1GQUlMIEhUTUxETGlzdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuMTEuX19wcm90b19fCi1GQUlMIEhUTUxEYXRhR3JpZEVsZW1l
bnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQKLUZBSUwg
SFRNTERhdGFHcmlkRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjE0LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxEYXRhR3JpZEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTQuX19wcm90b19fCi1GQUlMIEhUTUxEaXZFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQucGx1
Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcKLUZBSUwgSFRNTERpdkVsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5n
LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxEaXZFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQucGx1Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuX19wcm90b19fCitQQVNTIEhU
TUxBbmNob3JFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJzdEVs
ZW1lbnRDaGlsZAorUEFTUyBIVE1MQW5jaG9yRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jb25zdHJ1Y3RvcgorUEFT
UyBIVE1MQW5jaG9yRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuX19wcm90b19fCitQQVNTIEhUTUxBcHBsZXRFbGVtZW50
IGZyb20gaW5uZXIuZG9jdW1lbnQuYXBwbGV0cy4wCitQQVNTIEhUTUxBcHBsZXRFbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hcHBsZXRzLjAuY29uc3RydWN0b3IKK1BBU1Mg
SFRNTEFwcGxldEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hcHBsZXRzLjAu
X19wcm90b19fCitQQVNTIEhUTUxBcmVhRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4yCitQQVNTIEhUTUxBcmVhRWxlbWVudENvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjIuY29uc3RydWN0b3IK
K1BBU1MgSFRNTEFyZWFFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjIuX19wcm90b19fCitQQVNTIEhUTUxBdWRpb0VsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMworUEFTUyBIVE1MQXVk
aW9FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQXVkaW9FbGVtZW50UHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMuX19wcm90b19fCitQ
QVNTIEhUTUxCUkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNAorUEFTUyBIVE1MQlJFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQlJFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjQuX19wcm90b19fCitQQVNTIEhUTUxCYXNlRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy42CitQQVNTIEhUTUxCYXNlRWxlbWVudENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjYuY29uc3RydWN0
b3IKK1BBU1MgSFRNTEJhc2VFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjYuX19wcm90b19fCitQQVNTIEhUTUxCYXNlRm9udEVsZW1l
bnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNworUEFTUyBI
VE1MQmFzZUZvbnRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MQmFzZUZvbnRFbGVtZW50
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjcu
X19wcm90b19fCitQQVNTIEhUTUxCb2R5RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQKK1BBU1MgSFRNTEJvZHlFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxCb2R5RWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19wcm90b19fCitQQVNTIEhU
TUxCdXR0b25FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjkKK1BBU1MgSFRNTEJ1dHRvbkVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy45LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxCdXR0
b25FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjkuX19wcm90b19fCitQQVNTIEhUTUxDYW52YXNFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjEwCitQQVNTIEhUTUxDYW52YXNFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTAuY29uc3RydWN0b3IKK1BBU1MgSFRNTENhbnZhc0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTAuX19wcm90b19fCitQQVNTIEhU
TUxDb2xsZWN0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQubGlua3MKK1BBU1MgSFRNTENvbGxlY3Rp
b25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NDcub3B0aW9ucy5fX3Byb3RvX18KK1BBU1MgSFRNTERMaXN0RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xMQorUEFTUyBIVE1MRExpc3RFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MTEuY29uc3RydWN0b3IKK1BBU1MgSFRNTERMaXN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xMS5fX3Byb3RvX18KK1BBU1MgSFRN
TERhdGFHcmlkRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4xNAorUEFTUyBIVE1MRGF0YUdyaWRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTQuY29uc3RydWN0b3IKK1BBU1MgSFRN
TERhdGFHcmlkRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy4xNC5fX3Byb3RvX18KK1BBU1MgSFRNTERpdkVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5wbHVnaW5zLjAucHJldmlvdXNFbGVtZW50U2libGluZworUEFTUyBIVE1MRGl2
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLnByZXZpb3Vz
RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKK1BBU1MgSFRNTERpdkVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAucHJldmlvdXNFbGVtZW50U2libGluZy5fX3By
b3RvX18KIFBBU1MgSFRNTERvY3VtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQKIFBBU1MgSFRNTERv
Y3VtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5jb25zdHJ1Y3RvcgogUEFTUyBI
VE1MRG9jdW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5fX3Byb3RvX18KLUZBSUwg
SFRNTEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAucHJldmlvdXNFbGVtZW50
U2libGluZwotRkFJTCBIVE1MRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
c2NyaXB0cy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKLUZBSUwgSFRNTEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ll9fcHJvdG9f
Xy5fX3Byb3RvX18KLUZBSUwgSFRNTEVtYmVkRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LnBs
dWdpbnMuMAotRkFJTCBIVE1MRW1iZWRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5wbHVnaW5zLjAuY29uc3RydWN0b3IKLUZBSUwgSFRNTEVtYmVkRWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5fX3Byb3RvX18KLUZBSUwgSFRNTEZpZWxk
U2V0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxp
bmcKLUZBSUwgSFRNTEZpZWxkU2V0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQucGx1Z2lucy4wLm5leHRFbGVtZW50U2libGluZy5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MRmll
bGRTZXRFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLm5leHRF
bGVtZW50U2libGluZy5fX3Byb3RvX18KLUZBSUwgSFRNTEZvbnRFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjE5Ci1GQUlMIEhUTUxGb250RWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjE5LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxGb250RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xOS5fX3Byb3RvX18KLUZBSUwgSFRN
TEZvcm1FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVu
dENoaWxkCi1GQUlMIEhUTUxGb3JtRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxG
b3JtRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubGFz
dEVsZW1lbnRDaGlsZC5fX3Byb3RvX18KLUZBSUwgSFRNTEZyYW1lU2V0RWxlbWVudCBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMQotRkFJTCBIVE1MRnJhbWVT
ZXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMjEuY29uc3RydWN0b3IKLUZBSUwgSFRNTEZyYW1lU2V0RWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMS5fX3Byb3Rv
X18KLUZBSUwgSFRNTEhSRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy4yMgotRkFJTCBIVE1MSFJFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjIuY29uc3RydWN0b3IKLUZBSUwgSFRN
TEhSRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4yMi5fX3Byb3RvX18KLUZBSUwgSFRNTEhlYWRFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nCi1GQUlMIEhUTUxIZWFk
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2
aW91c0VsZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxIZWFkRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2li
bGluZy5fX3Byb3RvX18KLUZBSUwgSFRNTEh0bWxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50Ci1GQUlMIEhUTUxIdG1sRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxIdG1sRWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5fX3Byb3Rv
X18KLUZBSUwgSFRNTElGcmFtZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuMjQKLUZBSUwgSFRNTElGcmFtZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNC5jb25zdHJ1Y3Rvcgot
RkFJTCBIVE1MSUZyYW1lRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNC5fX3Byb3RvX18KLUZBSUwgSFRNTEltYWdlRWxlbWVudCBm
cm9tIGlubmVyLmRvY3VtZW50LmltYWdlcy4wCi1GQUlMIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmltYWdlcy4wLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxJ
bWFnZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMC5fX3Byb3Rv
X18KLUZBSUwgSFRNTElucHV0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy4yNgotRkFJTCBIVE1MSW5wdXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjYuY29uc3RydWN0b3IKLUZB
SUwgSFRNTElucHV0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4yNi5fX3Byb3RvX18KLUZBSUwgSFRNTExJRWxlbWVudCBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOAotRkFJTCBIVE1MTElFbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuMjguY29uc3RydWN0b3IKLUZBSUwgSFRNTExJRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOC5fX3Byb3RvX18KLUZBSUwgSFRN
TExhYmVsRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4yOQotRkFJTCBIVE1MTGFiZWxFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjkuY29uc3RydWN0b3IKLUZBSUwgSFRNTExhYmVs
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4yOS5fX3Byb3RvX18KLUZBSUwgSFRNTExlZ2VuZEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAKLUZBSUwgSFRNTExlZ2VuZEVsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
MC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MTGVnZW5kRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMC5fX3Byb3RvX18KLUZBSUwgSFRN
TExpbmtFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjMxCi1GQUlMIEhUTUxMaW5rRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMxLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxMaW5rRWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4zMS5fX3Byb3RvX18KLUZBSUwgSFRNTE1hcEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzIKLUZBSUwgSFRNTE1hcEVsZW1lbnRDb25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5jb25zdHJ1
Y3RvcgotRkFJTCBIVE1MTWFwRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5fX3Byb3RvX18KLUZBSUwgSFRNTE1hcnF1ZWVFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMzCi1GQUlM
IEhUTUxNYXJxdWVlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjMzLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxNYXJxdWVlRWxlbWVu
dFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
My5fX3Byb3RvX18KLUZBSUwgSFRNTE1lZGlhRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zLl9fcHJvdG9fXy5fX3Byb3RvX18KLUZB
SUwgSFRNTE1lbnVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjM1Ci1GQUlMIEhUTUxNZW51RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM1LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxN
ZW51RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4zNS5fX3Byb3RvX18KLUZBSUwgSFRNTE1ldGFFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM2Ci1GQUlMIEhUTUxNZXRhRWxlbWVudENv
bnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM2
LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxNZXRhRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNi5fX3Byb3RvX18KLUZBSUwgSFRNTE9M
aXN0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
OAotRkFJTCBIVE1MT0xpc3RFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzguY29uc3RydWN0b3IKLUZBSUwgSFRNTE9MaXN0RWxl
bWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy4zOC5fX3Byb3RvX18KLUZBSUwgSFRNTE9iamVjdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkKLUZBSUwgSFRNTE9iamVjdEVsZW1lbnRDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOS5j
b25zdHJ1Y3RvcgotRkFJTCBIVE1MT2JqZWN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOS5fX3Byb3RvX18KLUZBSUwgSFRNTE9w
dEdyb3VwRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy40MAotRkFJTCBIVE1MT3B0R3JvdXBFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDAuY29uc3RydWN0b3IKLUZBSUwgSFRNTE9w
dEdyb3VwRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40MC5fX3Byb3RvX18KLUZBSUwgSFRNTE9wdGlvbkVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDEKLUZBSUwgSFRNTE9wdGlvbkVs
ZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy40MS5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MT3B0aW9uRWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MS5fX3Byb3RvX18KLUZB
SUwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQ3Lm9wdGlvbnMKLUZBSUwgSFRNTFBhcmFncmFwaEVsZW1lbnQgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDIKLUZBSUwgSFRNTFBhcmFn
cmFwaEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40Mi5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MUGFyYWdyYXBoRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Mi5fX3By
b3RvX18KLUZBSUwgSFRNTFBhcmFtRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy40MwotRkFJTCBIVE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDMuY29uc3RydWN0b3IK
LUZBSUwgSFRNTFBhcmFtRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy40My5fX3Byb3RvX18KLUZBSUwgSFRNTFByZUVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDQKLUZBSUwgSFRNTFBy
ZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy40NC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MUHJlRWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40NC5fX3Byb3RvX18KLUZB
SUwgSFRNTFNjcmlwdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAKLUZBSUwg
SFRNTFNjcmlwdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMu
MC5jb25zdHJ1Y3RvcgotRkFJTCBIVE1MU2NyaXB0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LnNjcmlwdHMuMC5fX3Byb3RvX18KLUZBSUwgSFRNTFNlbGVjdEVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDcKLUZBSUwgSFRNTFNl
bGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5uZXh0
RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKLUZBSUwgSFRNTFNlbGVjdEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDcuX19wcm90
b19fCi1GQUlMIEhUTUxTdHlsZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDgKLUZBSUwgSFRNTFN0eWxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ4LmNvbnN0cnVjdG9yCi1G
QUlMIEhUTUxTdHlsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNDguX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ5Ci1GQUlM
IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDkuY29uc3RydWN0b3IKLUZBSUwgSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDkuX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUNlbGxFbGVtZW50IGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUwCi1GQUlMIEhUTUxUYWJsZUNl
bGxFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTAuY29uc3RydWN0b3IKLUZBSUwgSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTAuX19wcm90
b19fCi1GQUlMIEhUTUxUYWJsZUNvbEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNTEKLUZBSUwgSFRNTFRhYmxlQ29sRWxlbWVudENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUxLmNvbnN0cnVj
dG9yCi1GQUlMIEhUTUxUYWJsZUNvbEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTEuX19wcm90b19fCi1GQUlMIEhUTUxUYWJsZUVs
ZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIKLUZB
SUwgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjUyLmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxUYWJsZUVsZW1lbnRQ
cm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIu
X19wcm90b19fCi1GQUlMIEhUTUxUYWJsZVJvd0VsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTMKLUZBSUwgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzLmNv
bnN0cnVjdG9yCi1GQUlMIEhUTUxUYWJsZVJvd0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTMuX19wcm90b19fCi1GQUlMIEhUTUxU
ZXh0QXJlYUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuNTUKLUZBSUwgSFRNTFRleHRBcmVhRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU1LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxU
ZXh0QXJlYUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuNTUuX19wcm90b19fCi1GQUlMIEhUTUxUaXRsZUVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTYKLUZBSUwgSFRNTFRpdGxlRWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU2LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxUaXRsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTYuX19wcm90b19fCi1GQUlM
IEhUTUxVTGlzdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNTcKLUZBSUwgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU3LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxV
TGlzdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTcuX19wcm90b19fCi1GQUlMIEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTgKLUZBSUwgSFRNTFZpZGVvRWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjU4LmNvbnN0cnVjdG9yCi1GQUlMIEhUTUxWaWRlb0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTguX19wcm90b19fCitQQVNTIEhU
TUxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4wLnByZXZpb3VzRWxlbWVudFNp
YmxpbmcKK1BBU1MgSFRNTEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LnNj
cmlwdHMuMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxFbGVt
ZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5fX3Byb3RvX18u
X19wcm90b19fCitQQVNTIEhUTUxFbWJlZEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVn
aW5zLjAKK1BBU1MgSFRNTEVtYmVkRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQucGx1Z2lucy4wLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxFbWJlZEVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAuX19wcm90b19fCitQQVNTIEhUTUxGaWVsZFNl
dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5n
CitQQVNTIEhUTUxGaWVsZFNldEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IKK1BBU1MgSFRNTEZpZWxk
U2V0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5uZXh0RWxl
bWVudFNpYmxpbmcuX19wcm90b19fCitQQVNTIEhUTUxGb250RWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xOQorUEFTUyBIVE1MRm9udEVsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4x
OS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRm9udEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTkuX19wcm90b19fCitQQVNTIEhUTUxG
b3JtRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRD
aGlsZAorUEFTUyBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRm9y
bUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50Lmxhc3RF
bGVtZW50Q2hpbGQuX19wcm90b19fCitQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjEKK1BBU1MgSFRNTEZyYW1lU2V0
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjIxLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjEuX19wcm90b19f
CitQQVNTIEhUTUxIUkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMjIKK1BBU1MgSFRNTEhSRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjIyLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxI
UkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMjIuX19wcm90b19fCitQQVNTIEhUTUxIZWFkRWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZworUEFTUyBIVE1MSGVhZEVs
ZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlv
dXNFbGVtZW50U2libGluZy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSGVhZEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxp
bmcuX19wcm90b19fCitQQVNTIEhUTUxIdG1sRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudAorUEFTUyBIVE1MSHRtbEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSHRtbEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuX19wcm90b19f
CitQQVNTIEhUTUxJRnJhbWVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjI0CitQQVNTIEhUTUxJRnJhbWVFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjQuY29uc3RydWN0b3IKK1BB
U1MgSFRNTElGcmFtZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuMjQuX19wcm90b19fCitQQVNTIEhUTUxJbWFnZUVsZW1lbnQgZnJv
bSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMAorUEFTUyBIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0
b3IgZnJvbSBpbm5lci5kb2N1bWVudC5pbWFnZXMuMC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MSW1h
Z2VFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1hZ2VzLjAuX19wcm90b19f
CitQQVNTIEhUTUxJbnB1dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuMjYKK1BBU1MgSFRNTElucHV0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjI2LmNvbnN0cnVjdG9yCitQQVNT
IEhUTUxJbnB1dEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuMjYuX19wcm90b19fCitQQVNTIEhUTUxMSUVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjgKK1BBU1MgSFRNTExJRWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjI4LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxMSUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjguX19wcm90b19fCitQQVNTIEhUTUxM
YWJlbEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MjkKK1BBU1MgSFRNTExhYmVsRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjI5LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxMYWJlbEVs
ZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuMjkuX19wcm90b19fCitQQVNTIEhUTUxMZWdlbmRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMwCitQQVNTIEhUTUxMZWdlbmRFbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAu
Y29uc3RydWN0b3IKK1BBU1MgSFRNTExlZ2VuZEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzAuX19wcm90b19fCitQQVNTIEhUTUxM
aW5rRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4z
MQorUEFTUyBIVE1MTGlua0VsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTGlua0VsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MzEuX19wcm90b19fCitQQVNTIEhUTUxNYXBFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMyCitQQVNTIEhUTUxNYXBFbGVtZW50Q29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzIuY29uc3RydWN0
b3IKK1BBU1MgSFRNTE1hcEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuMzIuX19wcm90b19fCitQQVNTIEhUTUxNYXJxdWVlRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMworUEFTUyBI
VE1MTWFycXVlZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy4zMy5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTWFycXVlZUVsZW1lbnRQ
cm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzMu
X19wcm90b19fCitQQVNTIEhUTUxNZWRpYUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5fX3Byb3RvX18uX19wcm90b19fCitQQVNT
IEhUTUxNZW51RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zNQorUEFTUyBIVE1MTWVudUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MTWVu
dUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMzUuX19wcm90b19fCitQQVNTIEhUTUxNZXRhRWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNgorUEFTUyBIVE1MTWV0YUVsZW1lbnRDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNi5j
b25zdHJ1Y3RvcgorUEFTUyBIVE1MTWV0YUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzYuX19wcm90b19fCitQQVNTIEhUTUxPTGlz
dEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzgK
K1BBU1MgSFRNTE9MaXN0RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM4LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxPTGlzdEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MzguX19wcm90b19fCitQQVNTIEhUTUxPYmplY3RFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM5CitQQVNTIEhUTUxPYmplY3RFbGVtZW50Q29uc3Ry
dWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkuY29u
c3RydWN0b3IKK1BBU1MgSFRNTE9iamVjdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzkuX19wcm90b19fCitQQVNTIEhUTUxPcHRH
cm91cEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NDAKK1BBU1MgSFRNTE9wdEdyb3VwRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQwLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxPcHRH
cm91cEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDAuX19wcm90b19fCitQQVNTIEhUTUxPcHRpb25FbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQxCitQQVNTIEhUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuNDEuY29uc3RydWN0b3IKK1BBU1MgSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDEuX19wcm90b19fCitQQVNT
IEhUTUxPcHRpb25zQ29sbGVjdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy40Ny5vcHRpb25zCitQQVNTIEhUTUxQYXJhZ3JhcGhFbGVtZW50IGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQyCitQQVNTIEhUTUxQYXJhZ3Jh
cGhFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDIuY29uc3RydWN0b3IKK1BBU1MgSFRNTFBhcmFncmFwaEVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDIuX19wcm90
b19fCitQQVNTIEhUTUxQYXJhbUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDMKK1BBU1MgSFRNTFBhcmFtRWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQzLmNvbnN0cnVjdG9yCitQ
QVNTIEhUTUxQYXJhbUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmNoaWxkTm9kZXMuNDMuX19wcm90b19fCitQQVNTIEhUTUxQcmVFbGVtZW50IGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ0CitQQVNTIEhUTUxQcmVF
bGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNDQuY29uc3RydWN0b3IKK1BBU1MgSFRNTFByZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDQuX19wcm90b19fCitQQVNT
IEhUTUxTY3JpcHRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4wCitQQVNTIEhU
TUxTY3JpcHRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAu
Y29uc3RydWN0b3IKK1BBU1MgSFRNTFNjcmlwdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5zY3JpcHRzLjAuX19wcm90b19fCitQQVNTIEhUTUxTZWxlY3RFbGVtZW50IGZyb20g
aW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3CitQQVNTIEhUTUxTZWxl
Y3RFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAubmV4dEVs
ZW1lbnRTaWJsaW5nLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxTZWxlY3RFbGVtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3Ll9fcHJvdG9f
XworUEFTUyBIVE1MU3R5bGVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQ4CitQQVNTIEhUTUxTdHlsZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40OC5jb25zdHJ1Y3RvcgorUEFT
UyBIVE1MU3R5bGVFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjQ4Ll9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40OQorUEFTUyBI
VE1MVGFibGVDYXB0aW9uRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ5LmNvbnN0cnVjdG9yCitQQVNTIEhUTUxUYWJsZUNhcHRp
b25FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjQ5Ll9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVDZWxsRWxlbWVudCBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41MAorUEFTUyBIVE1MVGFibGVDZWxs
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjUwLmNvbnN0cnVjdG9yCitQQVNTIEhUTUxUYWJsZUNlbGxFbGVtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUwLl9fcHJvdG9f
XworUEFTUyBIVE1MVGFibGVDb2xFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjUxCitQQVNTIEhUTUxUYWJsZUNvbEVsZW1lbnRDb25zdHJ1Y3RvciBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41MS5jb25zdHJ1Y3Rv
cgorUEFTUyBIVE1MVGFibGVDb2xFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUxLl9fcHJvdG9fXworUEFTUyBIVE1MVGFibGVFbGVt
ZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUyCitQQVNT
IEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuY2hpbGROb2Rlcy41Mi5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGFibGVFbGVtZW50UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUyLl9f
cHJvdG9fXworUEFTUyBIVE1MVGFibGVSb3dFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzCitQQVNTIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41My5jb25z
dHJ1Y3RvcgorUEFTUyBIVE1MVGFibGVSb3dFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzLl9fcHJvdG9fXworUEFTUyBIVE1MVGV4
dEFyZWFFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVz
LjU1CitQQVNTIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41NS5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGV4
dEFyZWFFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5j
aGlsZE5vZGVzLjU1Ll9fcHJvdG9fXworUEFTUyBIVE1MVGl0bGVFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU2CitQQVNTIEhUTUxUaXRsZUVsZW1l
bnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy41Ni5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVGl0bGVFbGVtZW50UHJvdG90eXBlIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU2Ll9fcHJvdG9fXworUEFTUyBI
VE1MVUxpc3RFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU3CitQQVNTIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41Ny5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVUxp
c3RFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjU3Ll9fcHJvdG9fXworUEFTUyBIVE1MVmlkZW9FbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU4CitQQVNTIEhUTUxWaWRlb0VsZW1lbnRD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy41
OC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MVmlkZW9FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU4Ll9fcHJvdG9fXwogUEFTUyBIaXN0
b3J5IGZyb20gaW5uZXIuaGlzdG9yeQogUEFTUyBIaXN0b3J5UHJvdG90eXBlIGZyb20gaW5uZXIu
aGlzdG9yeS5fX3Byb3RvX18KIFBBU1MgTG9jYXRpb24gZnJvbSBpbm5lci5kb2N1bWVudC5sb2Nh
dGlvbgogUEFTUyBMb2NhdGlvblByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmxvY2F0aW9u
Ll9fcHJvdG9fXwotRkFJTCBNZWRpYUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0
cy4wLm1lZGlhCi1GQUlMIE1lZGlhTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
c3R5bGVTaGVldHMuMC5tZWRpYS5jb25zdHJ1Y3RvcgotRkFJTCBNZWRpYUxpc3RQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1lZGlhLl9fcHJvdG9fXwotRkFJTCBN
aW1lVHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wCi1GQUlMIE1p
bWVUeXBlQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMKLUZBSUwg
TWltZVR5cGVBcnJheUNvbnN0cnVjdG9yIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWlt
ZVR5cGVzLmNvbnN0cnVjdG9yCi1GQUlMIE1pbWVUeXBlQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5l
ci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuX19wcm90b19fCi1GQUlMIE1pbWVUeXBlQ29u
c3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuMC5jb25zdHJ1
Y3RvcgotRkFJTCBNaW1lVHlwZVByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9u
Lm1pbWVUeXBlcy4wLl9fcHJvdG9fXwotRkFJTCBOYW1lZE5vZGVNYXAgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuYXR0cmlidXRlcwotRkFJ
TCBOYXZpZ2F0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbgotRkFJTCBOYXZpZ2F0b3JQ
cm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5fX3Byb3RvX18KLUZBSUwgTm9k
ZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcwotRkFJ
TCBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuY2hpbGROb2Rlcy5jb25z
dHJ1Y3RvcgotRkFJTCBOb2RlTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5jaGlsZE5vZGVzLl9fcHJvdG9fXworUEFTUyBNZWRpYUxpc3QgZnJvbSBpbm5l
ci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1lZGlhCitQQVNTIE1lZGlhTGlzdENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5tZWRpYS5jb25zdHJ1Y3RvcgorUEFT
UyBNZWRpYUxpc3RQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1l
ZGlhLl9fcHJvdG9fXworUEFTUyBNaW1lVHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9u
Lm1pbWVUeXBlcy4wCitQQVNTIE1pbWVUeXBlQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbi5taW1lVHlwZXMKK1BBU1MgTWltZVR5cGVBcnJheUNvbnN0cnVjdG9yIGZyb20gaW5uZXIu
Y2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLmNvbnN0cnVjdG9yCitQQVNTIE1pbWVUeXBlQXJy
YXlQcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuX19wcm90
b19fCitQQVNTIE1pbWVUeXBlQ29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bi5taW1lVHlwZXMuMC5jb25zdHJ1Y3RvcgorUEFTUyBNaW1lVHlwZVByb3RvdHlwZSBmcm9tIGlu
bmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLl9fcHJvdG9fXworUEFTUyBOYW1lZE5v
ZGVNYXAgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNp
YmxpbmcuYXR0cmlidXRlcworUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbgorUEFTUyBOYXZpZ2F0b3JQcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bi5fX3Byb3RvX18KK1BBU1MgTm9kZUxpc3QgZnJvbSBpbm5lci5kb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuY2hpbGROb2RlcworUEFTUyBOb2RlTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuY2hpbGROb2Rlcy5jb25zdHJ1Y3RvcgorUEFTUyBOb2RlTGlzdFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLl9fcHJvdG9fXwogUEFT
UyBOb2RlUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuX19wcm90b19fLl9fcHJvdG9fXy5f
X3Byb3RvX18KIEZBSUwgTnVtYmVyIGZyb20gaW5uZXIucGFnZVhPZmZzZXQKLUZBSUwgT2JqZWN0
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCi1GQUlMIFBsdWdp
biBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmVuYWJsZWRQbHVnaW4K
LUZBSUwgUGx1Z2luQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zCi1G
QUlMIFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5w
bHVnaW5zLmNvbnN0cnVjdG9yCi1GQUlMIFBsdWdpbkFycmF5UHJvdG90eXBlIGZyb20gaW5uZXIu
Y2xpZW50SW5mb3JtYXRpb24ucGx1Z2lucy5fX3Byb3RvX18KLUZBSUwgUGx1Z2luQ29uc3RydWN0
b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0b3IKLUZB
SUwgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVz
LjAuZW5hYmxlZFBsdWdpbi5fX3Byb3RvX18KLUZBSUwgU2NyZWVuIGZyb20gaW5uZXIuc2NyZWVu
Ci1GQUlMIFNjcmVlblByb3RvdHlwZSBmcm9tIGlubmVyLnNjcmVlbi5fX3Byb3RvX18KLUZBSUwg
U3RvcmFnZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZQotRkFJTCBTdG9yYWdlQ29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKLUZBSUwgU3RvcmFnZVByb3RvdHlw
ZSBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZS5fX3Byb3RvX18KK1BBU1MgT2JqZWN0IGZyb20gaW5u
ZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCitQQVNTIFBsdWdpbiBmcm9tIGlu
bmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmVuYWJsZWRQbHVnaW4KK1BBU1MgUGx1
Z2luQXJyYXkgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zCitQQVNTIFBsdWdp
bkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLmNv
bnN0cnVjdG9yCitQQVNTIFBsdWdpbkFycmF5UHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5m
b3JtYXRpb24ucGx1Z2lucy5fX3Byb3RvX18KK1BBU1MgUGx1Z2luQ29uc3RydWN0b3IgZnJvbSBp
bm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0b3IKK1BBU1MgUGx1Z2lu
UHJvdG90eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuZW5hYmxl
ZFBsdWdpbi5fX3Byb3RvX18KK1BBU1MgU2NyZWVuIGZyb20gaW5uZXIuc2NyZWVuCitQQVNTIFNj
cmVlblByb3RvdHlwZSBmcm9tIGlubmVyLnNjcmVlbi5fX3Byb3RvX18KK1BBU1MgU3RvcmFnZSBm
cm9tIGlubmVyLmxvY2FsU3RvcmFnZQorUEFTUyBTdG9yYWdlQ29uc3RydWN0b3IgZnJvbSBpbm5l
ci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKK1BBU1MgU3RvcmFnZVByb3RvdHlwZSBmcm9tIGlu
bmVyLmxvY2FsU3RvcmFnZS5fX3Byb3RvX18KIEZBSUwgU3RyaW5nIGZyb20gaW5uZXIubmFtZQot
RkFJTCBTdHlsZVNoZWV0TGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzCi1GQUlM
IFN0eWxlU2hlZXRMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0
cy5jb25zdHJ1Y3RvcgotRkFJTCBTdHlsZVNoZWV0TGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LnN0eWxlU2hlZXRzLl9fcHJvdG9fXwotRkFJTCBTdHlsZVNoZWV0UHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18uX19wcm90b19fCi1GQUlM
IFRleHQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5maXJz
dENoaWxkCi1GQUlMIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgotRkFJTCBUZXh0UHJvdG90
eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAubGFzdENo
aWxkLl9fcHJvdG9fXwotRkFJTCBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjMucGxheWVkCi1GQUlMIFRpbWVSYW5nZXNQcm90b3R5cGUgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5wbGF5ZWQuX19wcm90
b19fCi1GQUlMIFZhbGlkaXR5U3RhdGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4
dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5Ci1GQUlMIFZhbGlkaXR5U3RhdGVQcm90b3R5cGUgZnJv
bSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5Ll9f
cHJvdG9fXworUEFTUyBTdHlsZVNoZWV0TGlzdCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hl
ZXRzCitQQVNTIFN0eWxlU2hlZXRMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5z
dHlsZVNoZWV0cy5jb25zdHJ1Y3RvcgorUEFTUyBTdHlsZVNoZWV0TGlzdFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLl9fcHJvdG9fXworUEFTUyBTdHlsZVNoZWV0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5fX3Byb3RvX18uX19wcm90
b19fCitQQVNTIFRleHQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0
ZXMuMC5maXJzdENoaWxkCitQQVNTIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgorUEFTUyBU
ZXh0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVz
LjAubGFzdENoaWxkLl9fcHJvdG9fXworUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMucGxheWVkCitQQVNTIFRpbWVSYW5nZXNQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5wbGF5
ZWQuX19wcm90b19fCitQQVNTIFZhbGlkaXR5U3RhdGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVn
aW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZhbGlkaXR5CitQQVNTIFZhbGlkaXR5U3RhdGVQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAubmV4dEVsZW1lbnRTaWJsaW5nLnZh
bGlkaXR5Ll9fcHJvdG9fXwogUEFTUyBYU0xUUHJvY2Vzc29yQ29uc3J1Y3RvciBmcm9tIGlubmVy
LlhTTFRQcm9jZXNzb3IKIE5ldmVyIGZvdW5kIEF1ZGlvCiBOZXZlciBmb3VuZCBDREFUQVNlY3Rp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5j
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UtZXhwZWN0ZWQudHh0CmluZGV4IGZmMTZmNjYuLmU3NzhmMjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApA
QCAtMzU3LDggKzM1Nyw4IEBAIEZBSUwgaW5uZXIuYWRkRXZlbnRMaXN0ZW5lci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmFkZEV2ZW50TGlzdGVuZXIuY29u
c3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5h
bGVydC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmFsZXJ0
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5u
ZXIuYXBwbGljYXRpb25DYWNoZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIGlubmVyLmFwcGxpY2F0aW9uQ2FjaGUuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5hcHBsaWNhdGlvbkNhY2hlLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5hcHBsaWNhdGlvbkNhY2hlLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogRkFJTCBpbm5lci5hdG9iLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
IEZBSUwgaW5uZXIuYXRvYi5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCiBGQUlMIGlubmVyLmJsdXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgpAQCAtMzcxLDE2ICszNzEsMTYgQEAgRkFJTCBpbm5lci5jbGVhckludGVydmFsLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY2xlYXJJbnRlcnZhbC5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmNs
ZWFyVGltZW91dC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVy
LmNsZWFyVGltZW91dC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIuY2xpZW50SW5mb3JtYXRpb24uY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5jbGllbnRJbmZvcm1h
dGlvbi5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuY2xpZW50SW5mb3JtYXRpb24uY29uc3Ry
dWN0b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLmNsb3NlLmlzSW5uZXIgc2hvdWxkIGJl
IHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY2xvc2UuY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jbG9zZWQuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jbG9zZWQuY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5jb25maXJtLmlzSW5u
ZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuY29uZmlybS5jb25zdHJ1
Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLmNvbnNv
bGUuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5jb25zb2xl
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5u
ZXIuY29uc29sZS5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuY29uc29sZS5jb25zdHJ1Y3Rv
ci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuZGVmYXVsdFN0YXR1cy5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmRlZmF1bHRTdGF0dXMuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5kZWZhdWx0
c3RhdHVzLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KQEAgLTQxNSwyMiArNDE1
LDIyIEBAIEZBSUwgaW5uZXIuaXNJbm5lci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCiBGQUlMIGlubmVyLmlzSW5uZXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5sZW5ndGguaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgogRkFJTCBpbm5lci5sZW5ndGguY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5sb2NhbFN0b3JhZ2UuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5sb2NhbFN0b3JhZ2UuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5sb2NhbFN0
b3JhZ2UuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLmxvY2FsU3RvcmFnZS5jb25zdHJ1Y3Rv
ci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIubG9jYXRpb24uaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLmxvY2F0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQotRkFJTCBpbm5l
ci5sb2NhdGlvbmJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlu
bmVyLmxvY2F0aW9uYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KLUZBSUwgaW5uZXIubWVudWJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIGlubmVyLm1lbnViYXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5sb2NhdGlvbmJhci5pc0lubmVyIGlzIHRydWUKK1BB
U1MgaW5uZXIubG9jYXRpb25iYXIuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlu
bmVyLm1lbnViYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLm1lbnViYXIuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLm1vdmVCeS5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVCeS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVUby5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm1vdmVUby5jb25zdHJ1Y3Rvci5pc0lu
bmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm5hbWUuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5uYW1lLmNvbnN0cnVjdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubmF2aWdhdG9yLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIubmF2aWdhdG9yLmNv
bnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIu
bmF2aWdhdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5uYXZpZ2F0b3IuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLm9mZnNjcmVlbkJ1ZmZlcmluZy5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLm9mZnNjcmVlbkJ1ZmZlcmlu
Zy5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlu
bmVyLm9wZW4uaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpAQCAtNDQ1LDggKzQ0
NSw4IEBAIEZBSUwgaW5uZXIucGFnZVhPZmZzZXQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgogRkFJTCBpbm5lci5wYWdlWE9mZnNldC5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnBhZ2VZT2Zmc2V0LmlzSW5uZXIgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucGFnZVlPZmZzZXQuY29uc3RydWN0
b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5wZXJzb25h
bGJhci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIGlubmVyLnBlcnNv
bmFsYmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1MgaW5uZXIucGVyc29uYWxiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnBlcnNvbmFs
YmFyLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5wb3N0TWVzc2FnZS5p
c0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnBvc3RNZXNzYWdl
LmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5u
ZXIucHJpbnQuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgpAQCAtNDYxLDggKzQ2
MSw4IEBAIEZBSUwgaW5uZXIucmVzaXplQnkuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgogRkFJTCBpbm5lci5yZXNpemVCeS5jb25zdHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnJlc2l6ZVRvLmlzSW5uZXIgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIucmVzaXplVG8uY29uc3RydWN0b3IuaXNJbm5lciBz
aG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zY3JlZW4uaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci5zY3JlZW4uY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5zY3JlZW4uaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLnNjcmVlbi5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUK
IEZBSUwgaW5uZXIuc2NyZWVuTGVmdC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CiBGQUlMIGlubmVyLnNjcmVlbkxlZnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3JlZW5Ub3AuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgpAQCAtNDgxLDI0ICs0ODEsMjQgQEAgRkFJTCBpbm5lci5zY3JvbGxYLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2Nyb2xsWC5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNj
cm9sbFkuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zY3Jv
bGxZLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwg
aW5uZXIuc2Nyb2xsYmFycy5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlM
IGlubmVyLnNjcm9sbGJhcnMuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgorUEFTUyBpbm5lci5zY3JvbGxiYXJzLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5l
ci5zY3JvbGxiYXJzLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zZWxm
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5zZWxmLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQotRkFJTCBpbm5lci5zZXNzaW9uU3RvcmFnZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCi1GQUlMIGlubmVyLnNlc3Npb25TdG9yYWdlLmNvbnN0cnVjdG9yLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgaW5uZXIuc2Vzc2lvblN0b3JhZ2UuaXNJ
bm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnNlc3Npb25TdG9yYWdlLmNvbnN0cnVjdG9yLmlzSW5u
ZXIgaXMgdHJ1ZQogRkFJTCBpbm5lci5zZXRJbnRlcnZhbC5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNldEludGVydmFsLmNvbnN0cnVjdG9yLmlzSW5uZXIg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuc2V0VGltZW91dC5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnNldFRpbWVvdXQuY29uc3Ry
dWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zdGF0
dXMuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5zdGF0dXMu
Y29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5l
ci5zdGF0dXNiYXIuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5l
ci5zdGF0dXNiYXIuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorUEFTUyBpbm5lci5zdGF0dXNiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnN0YXR1
c2Jhci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuc3RvcC5pc0lubmVy
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLnN0b3AuY29uc3RydWN0b3Iu
aXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBpbm5lci50b29sYmFyLmlz
SW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgaW5uZXIudG9vbGJhci5jb25z
dHJ1Y3Rvci5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGlubmVyLnRv
b2xiYXIuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLnRvb2xiYXIuY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCiBGQUlMIGlubmVyLndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdl
LmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIud2Via2l0Q29u
dmVydFBvaW50RnJvbU5vZGVUb1BhZ2UuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci53ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9k
ZS5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJv
dG90eXBlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGQwMDJlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2NvbnN0cnVj
dGVkLW9iamVjdHMtcHJvdG90eXBlcy5qcwpAQCAtMCwwICsxLDU0IEBACitkZXNjcmlwdGlvbigi
TWFrZSBzdXJlIHByb3RvdHlwZXMgYXJlIHNldCB1cCB1c2luZyB0aGUgd2luZG93IGEgcHJvcGVy
dHkgY2FtZSBmcm9tLCBpbnN0ZWFkIG9mIHRoZSBsZXhpY2FsIGdsb2JhbCBvYmplY3QuIikKKwor
dmFyIHN1YmZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHN1YmZyYW1lKTsKK3ZhciBpbm5lciA9IHN1YmZyYW1lLmNvbnRl
bnRXaW5kb3c7IC8vIENhbGwgaXQgImlubmVyIiB0byBtYWtlIHNob3VsZEJlIG91dHB1dCBzaG9y
dGVyCisKKy8vIFN0YXNoIGEgcHJvcGVydHkgb24gdGhlIHByb3RvdHlwZXMuCit3aW5kb3cuT2Jq
ZWN0LnByb3RvdHlwZS5pc0lubmVyID0gZmFsc2U7Citpbm5lci5PYmplY3QucHJvdG90eXBlLmlz
SW5uZXIgPSB0cnVlOworCitmdW5jdGlvbiBjbGFzc05hbWVGb3JPYmplY3Qob2JqZWN0KQorewor
ICAgIC8vIGNhbGwgd2lsbCB1c2UgdGhlIGdsb2JhbCBvYmplY3QgaWYgcGFzc2VkIG51bGwgb3Ig
dW5kZWZpbmVkLCBzbyBzcGVjaWFsIGNhc2UgdGhvc2U6CisgICAgaWYgKG9iamVjdCA9PSBudWxs
KQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKG9iamVjdCk7CisgICAgLy8gcmVtb3ZlICdbb2JqZWN0ICcgYW5kICdd
JworICAgIHJldHVybiByZXN1bHQuc3BsaXQoJyAnKVsxXS5zcGxpdCgnXScpWzBdOworfQorCitm
dW5jdGlvbiBjb25zdHJ1Y3RvclByb3BlcnRpZXNPbldpbmRvdyhnbG9iYWxPYmplY3QpCit7Cisg
ICAgdmFyIGNvbnN0cnVjdG9yTmFtZXMgPSBbXTsKKyAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBn
bG9iYWxPYmplY3QpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaW5uZXJbcHJvcGVydHldOworICAg
ICAgICBpZiAodmFsdWUgPT0gbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2
YXIgdHlwZSA9IGNsYXNzTmFtZUZvck9iamVjdCh2YWx1ZSk7CisgICAgICAgIGlmICghdHlwZS5t
YXRjaCgnQ29uc3RydWN0b3IkJykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29u
c3RydWN0b3JOYW1lcy5wdXNoKHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIGNvbnN0cnVj
dG9yTmFtZXMuc29ydCgpOworfQorCit2YXIgY29uc3RydWN0b3JOYW1lcyA9IGNvbnN0cnVjdG9y
UHJvcGVydGllc09uV2luZG93KGlubmVyKTsKKworZm9yICh2YXIgeCA9IDA7IHggPCBjb25zdHJ1
Y3Rvck5hbWVzLmxlbmd0aDsgeCsrKSB7CisgICAgdmFyIGNvbnN0cnVjdG9yTmFtZSA9IGNvbnN0
cnVjdG9yTmFtZXNbeF07CisgICAgLy8gVGVzdCBmaXJzdCB0byBzZWUgaWYgdGhlIG9iamVjdCBp
cyBjb25zdHJ1Y3RhYmxlCisgICAgdmFyIGNvbnN0cnVjdGVkT2JqZWN0OworICAgIHRyeSB7Cisg
ICAgICAgIGNvbnN0cnVjdGVkT2JqZWN0ID0gZXZhbCgibmV3IGlubmVyLiIgKyBjb25zdHJ1Y3Rv
ck5hbWUpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAg
ICBzaG91bGRCZVRydWUoIihuZXcgaW5uZXIuIiArIGNvbnN0cnVjdG9yTmFtZSArICIpLmlzSW5u
ZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIihuZXcgaW5uZXIuIiArIGNvbnN0cnVjdG9yTmFtZSAr
ICIpLmNvbnN0cnVjdG9yLmlzSW5uZXIiKTsKK30KKworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChzdWJmcmFtZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29ya2VyQ3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAKaW5kZXggYTQzMzk3My4u
ZDJiMGJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29ya2Vy
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQWJzdHJhY3RXb3JrZXJDdXN0
b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU0Fi
c3RyYWN0V29ya2VyOjptYXJrKCkKIHsKLSAgICBET01PYmplY3Q6Om1hcmsoKTsKKyAgICBCYXNl
OjptYXJrKCk7CiAKICAgICBtYXJrSWZOb3ROdWxsKG1faW1wbC0+b25lcnJvcigpKTsKIApAQCAt
ODIsMTAgKzgyLDEwIEBAIEpTVmFsdWUgSlNBYnN0cmFjdFdvcmtlcjo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEFic3RyYWN0V29y
a2VyKiBiYXNlT2JqZWN0KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQWJzdHJhY3RXb3JrZXIqIGJhc2VPYmplY3QpCiB7CiAg
ICAgLy8gSnVzdCBjYWxsIHRoZSBKU0V2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uIG9mIHRvSlMo
KSwgd2hpY2ggYWxyZWFkeSBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIHRoZSBkaWZmZXJlbnQgaW1w
bGVtZW50YXRpb25zLgotICAgIHJldHVybiB0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEV2ZW50VGFy
Z2V0Kj4oYmFzZU9iamVjdCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8RXZlbnRUYXJnZXQqPihiYXNlT2JqZWN0KSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0
cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcApp
bmRleCAwZTJlYTYyLi44N2EzODgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwCkBAIC01MCw5ICs1MCw5IEBAIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6SlNBdWRp
b0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhCiAK
IHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0QXVkaW8oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CisgICAgSlNBdWRpb0NvbnN0
cnVjdG9yKiBqc0F1ZGlvID0gc3RhdGljX2Nhc3Q8SlNBdWRpb0NvbnN0cnVjdG9yKj4oY29uc3Ry
dWN0b3IpOwogICAgIC8vIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIG5lZWQgdGhlIGNhbGwgdG9K
UyBvbiB0aGUgZG9jdW1lbnQgbGlrZSBKU0ltYWdlQ29uc3RydWN0b3I/Ci0KLSAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0F1ZGlvQ29uc3RydWN0b3IqPihjb25zdHJ1Y3Rv
ciktPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0ganNBdWRpby0+ZG9jdW1l
bnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBSZWZlcmVuY2VFcnJvciwgIkF1ZGlvIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgZG9jdW1lbnQg
aXMgdW5hdmFpbGFibGUiKTsKIApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgSlNPYmplY3QqIGNv
bnN0cnVjdEF1ZGlvKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBjb25z
dCBBcgogICAgICAgICBhdWRpby0+c2V0U3JjKGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykpOwog
ICAgICAgICBhdWRpby0+c2NoZWR1bGVMb2FkKCk7CiAgICAgfQotICAgIHJldHVybiBhc09iamVj
dCh0b0pTKGV4ZWMsIGF1ZGlvLnJlbGVhc2UoKSkpOworICAgIHJldHVybiBhc09iamVjdCh0b0pT
KGV4ZWMsIGpzQXVkaW8tPmdsb2JhbE9iamVjdCgpLCBhdWRpby5yZWxlYXNlKCkpKTsKIH0KIAog
Q29uc3RydWN0VHlwZSBKU0F1ZGlvQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3Ry
dWN0RGF0YSYgY29uc3RydWN0RGF0YSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDREFUQVNlY3Rpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2Vj
dGlvbkN1c3RvbS5jcHAKaW5kZXggNDRhODk1Ny4uYzI3MzhjYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKQEAgLTMyLDEyICszMiwxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KU05l
d2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIENEQVRBU2VjdGlvbiogc2VjdGlvbikKK0pTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENEQVRBU2VjdGlvbiogc2VjdGlvbikKIHsKICAgICBpZiAoIXNlY3Rpb24p
CiAgICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICAKLSAgICByZXR1cm4gQ1JFQVRFX0RPTV9O
T0RFX1dSQVBQRVIoZXhlYywgQ0RBVEFTZWN0aW9uLCBzZWN0aW9uKTsKKworICAgIHJldHVybiBD
UkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENEQVRBU2VjdGlvbiwg
c2VjdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCAyYzIwNDMxLi4xYjk2YzA2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCkBAIC00OSw0NiArNDksNDUgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBleGVjLCBDU1NSdWxlKiBydWxlKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSogcnVsZSkKIHsKICAgICBp
ZiAoIXJ1bGUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAogICAgIERPTU9iamVjdCogd3Jh
cHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBydWxl
KTsKLQogICAgIGlmICh3cmFwcGVyKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAgIHN3
aXRjaCAocnVsZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToK
LSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIENT
U1N0eWxlUnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpF
Q1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1N0eWxlUnVsZSwgcnVsZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9SVUxFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgQ1NTTWVkaWFS
dWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTTWVkaWFSdWxlLCBydWxlKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OkZPTlRfRkFDRV9SVUxFOgotICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgQ1NTRm9udEZhY2VS
dWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTRm9udEZhY2VSdWxlLCBydWxlKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKLSAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIENTU1BhZ2VSdWxlLCBy
dWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4
ZWMsIGdsb2JhbE9iamVjdCwgQ1NTUGFnZVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NJbXBvcnRSdWxlLCBydWxlKTsK
KyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgQ1NTSW1wb3J0UnVsZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NDaGFyc2V0UnVsZSwgcnVsZSk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIENTU0NoYXJzZXRSdWxlLCBydWxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgQ1NTVmFyaWFibGVzUnVsZSwgcnVsZSk7
CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsIENTU1ZhcmlhYmxlc1J1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX0tFWUZSQU1FX1JVTEU6Ci0gICAgICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUsIHJ1bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNU
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUsIHJ1bGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX0tFWUZS
QU1FU19SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktp
dENTU0tleWZyYW1lc1J1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihl
eGVjLCBDU1NSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSwgcnVsZSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIHdyYXBwZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTVmFsdWVDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9t
LmNwcAppbmRleCBhZDBjZWUxLi44N2E1NzYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NW
YWx1ZUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBDU1NW
YWx1ZSogdmFsdWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNTUsMTkgKzU1LDE5IEBAIEpTVmFsdWUgdG9K
UyhFeGVjU3RhdGUqIGV4ZWMsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7CiAKICAgICBpZiAodmFsdWUtPmlzV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUoKSkKLSAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNU
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSwgdmFs
dWUpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQotICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBDU1NWYWx1ZUxpc3QsIHZhbHVlKTsK
KyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBDU1NWYWx1ZUxpc3QsIHZhbHVlKTsKICNpZiBFTkFCTEUoU1ZHKQogICAgIGVsc2Ug
aWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhaW50LCB2YWx1ZSk7CisgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGFpbnQsIHZh
bHVlKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQotICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdDb2xvciwgdmFsdWUpOworICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmpl
Y3QsIFNWR0NvbG9yLCB2YWx1ZSk7CiAjZW5kaWYKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBF
UihleGVjLCBDU1NQcmltaXRpdmVWYWx1ZSwgdmFsdWUpOworICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1ByaW1pdGl2ZVZh
bHVlLCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpF
Q1RfV1JBUFBFUihleGVjLCBDU1NWYWx1ZSwgdmFsdWUpOworICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1ZhbHVlLCB2YWx1
ZSk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKaW5kZXggMzk4YTY3
OS4uNTdiY2RhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBDYW52YXNTdHlsZSogc3R5bGUpCitzdGF0aWMgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fu
dmFzU3R5bGUqIHN0eWxlKQogewogICAgIGlmIChzdHlsZS0+Y2FudmFzR3JhZGllbnQoKSkKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3R5bGUtPmNhbnZhc0dyYWRpZW50KCkpOworICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0eWxlLT5jYW52YXNHcmFkaWVudCgp
KTsKICAgICBpZiAoc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSkKLSAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSk7CiAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIHN0eWxlLT5jb2xvcigpKTsKIH0KIApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMg
UGFzc1JlZlB0cjxDYW52YXNTdHlsZT4gdG9IVE1MQ2FudmFzU3R5bGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tl
U3R5bGUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiB0b0pTKGV4ZWMsIGlt
cGwoKS0+c3Ryb2tlU3R5bGUoKSk7ICAgICAgICAKKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QoKSwgaW1wbCgpLT5zdHJva2VTdHlsZSgpKTsKIH0KIAogdm9pZCBKU0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpzZXRTdHJva2VTdHlsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAKIEpTVmFs
dWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZpbGxTdHlsZShFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgaW1wbCgpLT5maWxsU3R5bGUoKSk7Cisg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcGwoKS0+ZmlsbFN0eWxlKCkp
OwogfQogCiB2b2lkIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMzM5LDcgKzMzOSw3IEBAIEpTVmFsdWUg
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4oRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBBcmdMaXN0CiAKICAgICBpZiAoby0+aW5oZXJpdHMoJkpTSFRNTEltYWdlRWxlbWVu
dDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICBKU1ZhbHVl
IHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAgIEpTVmFsdWUgcGF0dGVybiA9IHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICBjb250ZXh0LT5jcmVhdGVQYXR0ZXJuKHN0
YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihzdGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4o
byktPmltcGwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9T
dHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIGFyZ3MuYXQoMSkpLCBlYykuZ2V0KCkpOwogICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIEpTVmFsdWUg
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4oRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBBcmdMaXN0CiAgICAgfQogICAgIGlmIChvLT5pbmhlcml0cygmSlNIVE1MQ2FudmFz
RWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICBK
U1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAgIEpTVmFsdWUgcGF0dGVybiA9IHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICBjb250ZXh0LT5jcmVhdGVQYXR0
ZXJuKHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oc3RhdGljX2Nhc3Q8SlNIVE1MRWxl
bWVudCo+KG8pLT5pbXBsKCkpLAogICAgICAgICAgICAgICAgIHZhbHVlVG9TdHJpbmdXaXRoTnVs
bENoZWNrKGV4ZWMsIGFyZ3MuYXQoMSkpLCBlYykuZ2V0KCkpOwogICAgICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgZWMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVBvc2l0aW9uQ2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0
aW9uQ2FsbGJhY2suY3BwCmluZGV4IDZmOWVmZDkuLjI4OTExZmQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAKQEAgLTQ4LDcgKzQ4LDgg
QEAgdm9pZCBKU0N1c3RvbVBvc2l0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KEdlb3Bvc2l0aW9u
KiBnZW9wb3NpdGlvbiwgYm9vbCYgcmFpc2UKICAgICAKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlw
dCgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCisgICAgLy8gRklYTUU6
IFRoaXMgaXMgbGlrZWx5IHRoZSB3cm9uZyBnbG9iYWxPYmplY3QgKGZvciBwcm90b3R5cGUgY2hh
aW5zIGF0IGxlYXN0KQogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ZyYW1l
LT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgCkBAIC02NywxMCArNjgsMTAgQEAgdm9pZCBKU0N1
c3RvbVBvc2l0aW9uQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KEdlb3Bvc2l0aW9uKiBnZW9wb3NpdGlv
biwgYm9vbCYgcmFpc2UKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPEpTQ3VzdG9tUG9zaXRpb25D
YWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKLSAgICAKKwogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBnZW9wb3NpdGlvbikpOwotICAgIAor
ICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3Rv
dHlwZShleGVjKSwgZ2VvcG9zaXRpb24pKTsKKwogICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0
YSgpLT50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgIGNhbGwoZXhlYywgZnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgbV9jYWxsYmFjaywgYXJncyk7CiAgICAgZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2suY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKaW5kZXggY2M2Y2Q1
NS4uODcxOWQ4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVBvc2l0
aW9uRXJyb3JDYWxsYmFjay5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVBv
c2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKQEAgLTQ4LDcgKzQ4LDggQEAgdm9pZCBKU0N1c3RvbVBv
c2l0aW9uRXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQoUG9zaXRpb25FcnJvciogcG9zaXRpb25F
cnJvcikKICAgICAKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAorCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbGlrZWx5IHRoZSB3
cm9uZyBnbG9iYWxPYmplY3QgKGZvciBwcm90b3R5cGUgY2hhaW5zIGF0IGxlYXN0KQogICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2Jq
ZWN0KCk7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7
CiAgICAgCkBAIC02OSw3ICs3MCw3IEBAIHZvaWQgSlNDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJh
Y2s6OmhhbmRsZUV2ZW50KFBvc2l0aW9uRXJyb3IqIHBvc2l0aW9uRXJyb3IpCiAgICAgUmVmUHRy
PEpTQ3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrPiBwcm90ZWN0KHRoaXMpOwogICAgIAogICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBw
b3NpdGlvbkVycm9yKSk7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVkR2xv
YmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBwb3NpdGlvbkVycm9yKSk7CiAgICAgCiAgICAg
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAg
Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2NhbGxiYWNrLCBhcmdz
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRD
YWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50Q2Fs
bGJhY2suY3BwCmluZGV4IDEwN2E0OTEuLjc2M2UyNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudENhbGxiYWNrLmNwcApAQCAtNTQsNiArNTQs
NyBAQCB2b2lkIEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNRTFRy
YW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgU1FMUgogICAgIGlmICghbV9mcmFtZS0+c2NyaXB0KCkt
PmlzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBs
aWtlbHkgdGhlIHdyb25nIGdsb2JhbE9iamVjdCAoZm9yIHByb3RvdHlwZSBjaGFpbnMgYXQgbGVh
c3QpCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZnJhbWUtPnNjcmlwdCgp
LT5nbG9iYWxPYmplY3QoKTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKTsKICAgICAgICAgCkBAIC03NCw4ICs3NSw4IEBAIHZvaWQgSlNDdXN0b21TUUxT
dGF0ZW1lbnRDYWxsYmFjazo6aGFuZGxlRXZlbnQoU1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9u
LCBTUUxSCiAgICAgUmVmUHRyPEpTQ3VzdG9tU1FMU3RhdGVtZW50Q2FsbGJhY2s+IHByb3RlY3Qo
dGhpcyk7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5k
KHRvSlMoZXhlYywgdHJhbnNhY3Rpb24pKTsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIHJl
c3VsdFNldCkpOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9i
amVjdEZvclByb3RvdHlwZShleGVjKSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhcmdzLmFwcGVuZCh0
b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHJlc3Vs
dFNldCkpOwogICAgICAgICAKICAgICBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+dGltZW91
dENoZWNrZXIuc3RhcnQoKTsKICAgICBjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIG1fY2FsbGJhY2ssIGFyZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCmluZGV4IDAxOGRhYmQu
LjQyYjRhNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKQEAgLTU0LDcgKzU0LDggQEAgYm9vbCBKU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNRTFRyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbiwKICAgICAgICAgCiAgICAgaWYgKCFtX2ZyYW1lLT5zY3JpcHQoKS0+aXNF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAKKworICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGxpa2VseSB0aGUgd3JvbmcgZ2xvYmFsT2JqZWN0IChmb3IgcHJvdG90eXBlIGNo
YWlucyBhdCBsZWFzdCkKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9mcmFt
ZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdCgpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgICAgICAKQEAgLTc3LDggKzc4LDggQEAgYm9vbCBK
U0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KFNRTFRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwKICAgICBSZWZQdHI8SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrPiBwcm90ZWN0KHRoaXMpOwogICAgICAgICAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgdHJhbnNhY3Rpb24pKTsKLSAgICBh
cmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGVycm9yKSk7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVj
LCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCB0cmFuc2FjdGlvbikp
OworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclBy
b3RvdHlwZShleGVjKSwgZXJyb3IpKTsKICAgICAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAg
ICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxs
YmFjay5jcHAKaW5kZXggYTQxYWM3OC4uZDY5YzU1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcApAQCAtOTQsNyAr
OTQsOCBAQCB2b2lkIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjazo6aGFuZGxlRXZlbnQo
U1FMVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBibwogCiAgICAgaWYgKCFtX2RhdGEtPmZyYW1l
KCktPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwor
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGxpa2VseSB0aGUgd3JvbmcgZ2xvYmFsT2JqZWN0IChmb3Ig
cHJvdG90eXBlIGNoYWlucyBhdCBsZWFzdCkKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbV9kYXRhLT5mcmFtZSgpLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgICAgIApAQCAt
MTE3LDcgKzExOCw3IEBAIHZvaWQgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkNhbGxiYWNrOjpoYW5k
bGVFdmVudChTUUxUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGJvCiAgICAgUmVmUHRyPEpTQ3Vz
dG9tU1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKICAgICAgICAgCiAgICAg
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIHRy
YW5zYWN0aW9uKSk7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFs
T2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCB0cmFuc2FjdGlvbikpOwogCiAgICAgZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgaWYgKGhhbmRs
ZUV2ZW50Q2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAppbmRl
eCAzMjRlMmJiLi4yMjFlOGM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcApAQCAtNTQsNiArNTQs
NyBAQCB2b2lkIEpTQ3VzdG9tU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVu
dChTUUxFcnJvciogZXJyb3IpCiAgICAgaWYgKCFtX2ZyYW1lLT5zY3JpcHQoKS0+aXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGlzIGxpa2VseSB0aGUg
d3JvbmcgZ2xvYmFsT2JqZWN0IChmb3IgcHJvdG90eXBlIGNoYWlucyBhdCBsZWFzdCkKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9mcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9i
amVjdCgpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
OwogCkBAIC03NCw3ICs3NSw3IEBAIHZvaWQgSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KFNRTEVycm9yKiBlcnJvcikKICAgICBSZWZQdHI8SlNDdXN0b21T
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CiAKICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZXJyb3IpKTsK
KyAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90
b3R5cGUoZXhlYyksIGVycm9yKSk7CiAKICAgICBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+
dGltZW91dENoZWNrZXIuc3RhcnQoKTsKICAgICBjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIG1fY2FsbGJhY2ssIGFyZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwCmluZGV4IDdlOGQ5Y2UuLmE3ZmFl
NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BcHBsaWNhdGlvbkNhY2hl
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQXBwbGljYXRpb25DYWNo
ZUN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lk
IEpTRE9NQXBwbGljYXRpb25DYWNoZTo6bWFyaygpCiB7Ci0gICAgRE9NT2JqZWN0OjptYXJrKCk7
CisgICAgQmFzZTo6bWFyaygpOwogCiAgICAgbWFya0lmTm90TnVsbChtX2ltcGwtPm9uY2hlY2tp
bmcoKSk7CiAgICAgbWFya0lmTm90TnVsbChtX2ltcGwtPm9uZXJyb3IoKSk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggODFkNTlmYi4uOTEwZGExMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNDU1LDMxICs0NTUsMzYgQEAgdm9pZCBzZXRET01F
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlIGVjKQogICAgIGlmICghZWMg
fHwgZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1F
OiBBbGwgY2FsbGVycyB0byBzZXRET01FeGNlcHRpb24gbmVlZCB0byBwYXNzIGluIHRoZSByaWdo
dCBnbG9iYWwgb2JqZWN0CisgICAgLy8gZm9yIG5vdywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRo
ZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiAgV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlz
OgorICAgIC8vIGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAv
LyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZXMgcHJv
dG90eXBlcy4KKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKTsKKwogICAgIEV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbjsKICAgICBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZWMs
IGRlc2NyaXB0aW9uKTsKIAogICAgIEpTVmFsdWUgZXJyb3JPYmplY3Q7CiAgICAgc3dpdGNoIChk
ZXNjcmlwdGlvbi50eXBlKSB7CiAgICAgICAgIGNhc2UgRE9NRXhjZXB0aW9uVHlwZToKLSAgICAg
ICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBET01Db3JlRXhjZXB0aW9uOjpjcmVhdGUo
ZGVzY3JpcHRpb24pKTsKKyAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIERPTUNvcmVFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmFuZ2VFeGNlcHRpb25UeXBlOgotICAgICAgICAg
ICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIFJhbmdlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRpb24pKTsKKyAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIFJhbmdlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEV2ZW50RXhjZXB0aW9uVHlwZToKLSAgICAgICAgICAgIGVycm9y
T2JqZWN0ID0gdG9KUyhleGVjLCBFdmVudEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7
CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBFdmVu
dEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJv
ck9iamVjdCA9IHRvSlMoZXhlYywgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OmNyZWF0ZShkZXNj
cmlwdGlvbikpOworICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwogICAg
ICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgY2FzZSBTVkdFeGNlcHRp
b25UeXBlOgotICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIFNWR0V4Y2VwdGlv
bjo6Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSwgMCk7CisgICAgICAgICAgICBlcnJvck9iamVj
dCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlw
dGlvbikuZ2V0KCksIDApOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICNpZiBFTkFCTEUo
WFBBVEgpCiAgICAgICAgIGNhc2UgWFBhdGhFeGNlcHRpb25UeXBlOgotICAgICAgICAgICAgZXJy
b3JPYmplY3QgPSB0b0pTKGV4ZWMsIFhQYXRoRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24p
KTsKKyAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIFhQ
YXRoRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYzg2MzgzOS4u
YWJhNWVjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC02OSw2ICs2OSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICAgICAgeworICAgICAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBuZXZlciBiZSAwLCBidXQgY2FuIGJlIGR1ZSB0byBidWcgMjc2NDAuCiAg
ICAgICAgICAgICByZXR1cm4gbV9nbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKICAgICAgICAgfQogCkBAIC03Nyw4ICs3OCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICA6IERPTU9iamVjdChzdHJ1Y3R1cmUpCiAgICAgICAgICAgICAsIG1fZ2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCkKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGdsb2Jh
bE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIEFTU0VSVCBpcyB2YWxpZCwgYnV0IGZpcmVzIGluIGZhc3QvZG9tL2djLTYuaHRtbCB3
aGVuIHRyeWluZyB0byBjcmVhdGUKKyAgICAgICAgICAgIC8vIG5ldyBKYXZhU2NyaXB0IG9iamVj
dHMgb24gZGV0YWNoZWQgd2luZG93cyBkdWUgdG8gRE9NV2luZG93Ojpkb2N1bWVudCgpCisgICAg
ICAgICAgICAvLyBuZWVkaW5nIHRvIHJlYWNoIHRocm91Z2ggdGhlIGZyYW1lIHRvIGdldCB0byB0
aGUgRG9jdW1lbnQqLiAgU2VlIGJ1ZyAyNzY0MC4KKyAgICAgICAgICAgIC8vIEFTU0VSVChnbG9i
YWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgICAgIH0KKyAgICAgICAg
dmlydHVhbCB+RE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXIoKSB7fQogCiAgICAgICAgIHZvaWQg
bWFyaygpCiAgICAgICAgIHsKQEAgLTE2Nyw2MyArMTcyLDYzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0M6OkpTT2JqZWN0Kj4oYXNP
YmplY3QoZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYywgc3RhdGljX2Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKS0+c3RvcmVkUHJvdG90eXBlKCkpKTsKICAg
ICB9Ci0gICAgI2RlZmluZSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGNsYXNzTmFt
ZSwgb2JqZWN0KSBjcmVhdGVET01PYmplY3RXcmFwcGVyPEpTIyNjbGFzc05hbWU+KGV4ZWMsIHN0
YXRpY19jYXN0PGNsYXNzTmFtZSo+KG9iamVjdCkpCi0gICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBl
ckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIERPTU9iamVjdCogY3JlYXRlRE9NT2JqZWN0
V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9NQ2xhc3MqIG9iamVjdCkKKyAgICAjZGVm
aW5lIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBjbGFzc05h
bWUsIG9iamVjdCkgY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxKUyMjY2xhc3NOYW1lPihleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PGNsYXNzTmFtZSo+KG9iamVjdCkpCisgICAgdGVtcGxh
dGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIERPTU9iamVjdCog
Y3JlYXRlRE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG9iamVjdCkKICAgICB7CiAgICAgICAgIEFT
U0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENhY2hlZERPTU9iamVjdFdyYXBwZXIo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKICAgICAgICAgLy8gRklYTUU6IG5ldyAoZXhl
YykgY291bGQgdXNlIGEgZGlmZmVyZW50IGdsb2JhbERhdGEgdGhhbiB0aGUgZ2xvYmFsRGF0YSB0
aGlzIHdyYXBwZXIgaXMgY2FjaGVkIG9uLgotICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIg
PSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBw
ZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyks
IG9iamVjdCk7CisgICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3Jh
cHBlckNsYXNzKGdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMsIGdsb2JhbE9iamVj
dCksIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVy
KGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdy
YXBwZXI7CiAgICAgfQotICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9N
Q2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgRE9NQ2xhc3MqIG9iamVjdCkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVy
Q2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGdldERPTU9iamVjdFdy
YXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIERPTUNsYXNzKiBvYmplY3QpCiAgICAgewogICAgICAgICBpZiAoIW9iamVjdCkKICAgICAg
ICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwogICAgICAgICBpZiAoRE9NT2JqZWN0KiB3cmFw
cGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVj
dCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZURP
TU9iamVjdFdyYXBwZXI8V3JhcHBlckNsYXNzPihleGVjLCBvYmplY3QpOworICAgICAgICByZXR1
cm4gY3JlYXRlRE9NT2JqZWN0V3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4ZWMsIGdsb2JhbE9iamVj
dCwgb2JqZWN0KTsKICAgICB9CiAKICNpZiBFTkFCTEUoU1ZHKQotICAgICNkZWZpbmUgQ1JFQVRF
X1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBjbGFzc05hbWUsIG9iamVjdCwgY29udGV4dCkgY3Jl
YXRlRE9NT2JqZWN0V3JhcHBlcjxKUyMjY2xhc3NOYW1lPihleGVjLCBzdGF0aWNfY2FzdDxjbGFz
c05hbWUqPihvYmplY3QpLCBjb250ZXh0KQotICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFz
cywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBET01PYmplY3QqIGNyZWF0ZURPTU9iamVjdFdyYXBw
ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIERPTUNsYXNzKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNv
bnRleHQpCisgICAgI2RlZmluZSBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgY2xhc3NOYW1lLCBvYmplY3QsIGNvbnRleHQpIGNyZWF0ZURPTU9iamVjdFdyYXBw
ZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxjbGFzc05h
bWUqPihvYmplY3QpLCBjb250ZXh0KQorICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywg
Y2xhc3MgRE9NQ2xhc3M+IGlubGluZSBET01PYmplY3QqIGNyZWF0ZURPTU9iamVjdFdyYXBwZXIo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERP
TUNsYXNzKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpCiAgICAgewogICAgICAgICBBU1NF
UlQob2JqZWN0KTsKICAgICAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKGV4
ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSk7Ci0gICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBl
ciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3Jh
cHBlckNsYXNzPihleGVjKSwgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVj
KSwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3
IChleGVjKSBXcmFwcGVyQ2xhc3MoZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYywg
Z2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIGNvbnRleHQpOwogICAgICAgICBj
YWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QsIHdyYXBwZXIp
OwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9Ci0gICAgdGVtcGxhdGU8Y2xhc3MgV3Jh
cHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRET01PYmpl
Y3RXcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01DbGFzcyogb2JqZWN0LCBTVkdFbGVt
ZW50KiBjb250ZXh0KQorICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9N
Q2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RE9NT2JqZWN0V3JhcHBlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG9i
amVjdCwgU1ZHRWxlbWVudCogY29udGV4dCkKICAgICB7CiAgICAgICAgIGlmICghb2JqZWN0KQog
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7CiAgICAgICAgIGlmIChET01PYmplY3Qq
IHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwg
b2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwotICAgICAgICByZXR1cm4gY3Jl
YXRlRE9NT2JqZWN0V3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4ZWMsIG9iamVjdCwgY29udGV4dCk7
CisgICAgICAgIHJldHVybiBjcmVhdGVET01PYmplY3RXcmFwcGVyPFdyYXBwZXJDbGFzcz4oZXhl
YywgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIGNvbnRleHQpOwogICAgIH0KICNlbmRpZgogCi0gICAg
I2RlZmluZSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBjbGFzc05hbWUsIG9iamVjdCkg
Y3JlYXRlRE9NTm9kZVdyYXBwZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgc3RhdGljX2Nhc3Q8Y2xh
c3NOYW1lKj4ob2JqZWN0KSkKLSAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNz
IERPTUNsYXNzPiBpbmxpbmUgSlNOb2RlKiBjcmVhdGVET01Ob2RlV3JhcHBlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgRE9NQ2xhc3MqIG5vZGUpCisgICAgI2RlZmluZSBDUkVBVEVfRE9NX05PREVf
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIGNsYXNzTmFtZSwgb2JqZWN0KSBjcmVhdGVET01O
b2RlV3JhcHBlcjxKUyMjY2xhc3NOYW1lPihleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PGNsYXNzTmFtZSo+KG9iamVjdCkpCisgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBj
bGFzcyBET01DbGFzcz4gaW5saW5lIEpTTm9kZSogY3JlYXRlRE9NTm9kZVdyYXBwZXIoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNz
KiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUpOwogICAgICAgICBBU1NFUlQoIWdl
dENhY2hlZERPTU5vZGVXcmFwcGVyKG5vZGUtPmRvY3VtZW50KCksIG5vZGUpKTsKLSAgICAgICAg
V3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVwcmVjYXRl
ZEdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBkZXByZWNhdGVkR2xvYmFsT2Jq
ZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBub2RlKTsKKyAgICAgICAgV3JhcHBlckNsYXNzKiB3cmFw
cGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFz
cz4oZXhlYywgZ2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCBub2RlKTsKICAgICAgICAgLy8g
RklYTUU6IFRoZSBlbnRpcmUgZnVuY3Rpb24gY2FuIGJlIHJlbW92ZWQsIG9uY2Ugd2UgZml4IGNh
Y2hpbmcuCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYSBvbmUtb2ZmIGhhY2sgdG8gbWFr
ZSBOb2RlcyBjYWNoZSBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdC4KICAgICAgICAgY2FjaGVE
T01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgpLCBub2RlLCB3cmFwcGVyKTsKICAgICAgICAg
cmV0dXJuIHdyYXBwZXI7CiAgICAgfQotICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywg
Y2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RE9NTm9kZVdyYXBwZXIoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIERPTUNsYXNzKiBub2RlKQorICAgIHRlbXBsYXRlPGNsYXNzIFdy
YXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RE9NTm9k
ZVdyYXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERPTUNsYXNzKiBub2RlKQogICAgIHsKICAgICAgICAgaWYgKCFub2RlKQogICAgICAg
ICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7CiAgICAgICAgIGlmIChKU05vZGUqIHdyYXBwZXIg
PSBnZXRDYWNoZWRET01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgpLCBub2RlKSkKICAgICAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwotICAgICAgICByZXR1cm4gY3JlYXRlRE9NTm9kZVdyYXBw
ZXI8V3JhcHBlckNsYXNzPihleGVjLCBub2RlKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURPTU5v
ZGVXcmFwcGVyPFdyYXBwZXJDbGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBub2RlKTsKICAgICB9
CiAKICAgICBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShK
U0M6OkpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBzdGF0aWNUYWJsZSk7CkBA
IC0yNTAsNyArMjU1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBKU0M6OlVTdHJpbmcg
dmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUp
OyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsCiAgICAgSlNDOjpVU3RyaW5nIHZhbHVlVG9T
dHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVmaW5lZAogCi0gICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgUGFzc1JlZlB0cjxUPiBwdHIpIHsgcmV0dXJuIHRvSlMoZXhlYywgcHRyLmdldCgp
KTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIGlubGluZSBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxUPiBwdHIpCisgICAgeworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHB0ci5nZXQoKSk7CisgICAgfQogCiAgICAgYm9vbCBjaGVja05vZGVTZWN1
cml0eShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCmluZGV4IDBmNDE5YmEuLmRmNjA2OGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBKU0RPTVdpbmRvd0Jh
c2U6OnVwZGF0ZURvY3VtZW50KCkKIHsKICAgICBBU1NFUlQoZCgpLT5pbXBsLT5kb2N1bWVudCgp
KTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxFeGVjKCk7Ci0gICAgc3ltYm9sVGFibGVQ
dXRXaXRoQXR0cmlidXRlcyhJZGVudGlmaWVyKGV4ZWMsICJkb2N1bWVudCIpLCB0b0pTKGV4ZWMs
IGQoKS0+aW1wbC0+ZG9jdW1lbnQoKSksIERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgc3lt
Ym9sVGFibGVQdXRXaXRoQXR0cmlidXRlcyhJZGVudGlmaWVyKGV4ZWMsICJkb2N1bWVudCIpLCB0
b0pTKGV4ZWMsIHRoaXMsIGQoKS0+aW1wbC0+ZG9jdW1lbnQoKSksIERvbnREZWxldGUgfCBSZWFk
T25seSk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NV2luZG93QmFzZTo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CkBAIC0xNzIsNiArMTcyLDEzIEBAIEpTR2xvYmFs
RGF0YSogSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERhdGEoKQogICAgIHJldHVybiBn
bG9iYWxEYXRhOwogfQogCisvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNjZXNp
bmcgYSB3aW5kb3cgaW4gYW55IGNvbnRleHQgd2lsbAorLy8gdXNlIHRoYXQgRE9NV2luZG93J3Mg
cHJvdG90eXBlIGNoYWluLgorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqLCBET01XaW5kb3cqIGRvbVdpbmRvdykKK3sKKyAgICByZXR1cm4gdG9KUyhleGVj
LCBkb21XaW5kb3cpOworfQorCiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgRE9NV2luZG93KiBk
b21XaW5kb3cpCiB7CiAgICAgaWYgKCFkb21XaW5kb3cpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAppbmRleCAxMTMzNDRmLi44NGNjODFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKQEAgLTg5LDYgKzg5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IH07CiAKICAgICAvLyBSZXR1cm5zIGEgSlNET01XaW5kb3cgb3IganNOdWxsKCkKKyAgICAvLyBK
U0RPTUdsb2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNjZXNpbmcgYSB3aW5kb3cgaW4gYW55IGNv
bnRleHQgd2lsbAorICAgIC8vIHVzZSB0aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4K
KyAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgRE9NV2luZG93Kik7CiAgICAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBE
T01XaW5kb3cqKTsKIAogICAgIC8vIFJldHVybnMgSlNET01XaW5kb3cgb3IgMApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAzM2FjN2JiLi5lZDEwMDBlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTI0LDggKzEy
NCw4IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKIAogICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlv
bj4gY29sbGVjdGlvbiA9IGRvY3VtZW50LT53aW5kb3dOYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSk7
CiAgICAgaWYgKGNvbGxlY3Rpb24tPmxlbmd0aCgpID09IDEpCi0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGNvbGxlY3Rpb24tPmZpcnN0SXRlbSgpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBj
b2xsZWN0aW9uLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iaiwgY29s
bGVjdGlvbi0+Zmlyc3RJdGVtKCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmosIGNv
bGxlY3Rpb24uZ2V0KCkpOwogfQogCiBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKQEAgLTQyMSw3ICs0MjEsNyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpl
dmVudChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgRXZlbnQqIGV2ZW50ID0gY3VycmVudEV2
ZW50KCk7CiAgICAgaWYgKCFldmVudCkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgcmV0dXJuIHRvSlMoZXhlYywgZXZlbnQpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbnN0
X2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzKSwgZXZlbnQpOwogfQogCiBKU1ZhbHVlIEpTRE9NV2lu
ZG93OjppbWFnZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCmluZGV4IGM3ZmZjZGUuLjkxYjNk
MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RD
dXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RD
dXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIGJvb2wgSlNEYXRhR3JpZENvbHVtbkxpc3Q6OmNh
bkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBEYXRhR3JpZENvbHVtbkxpc3QqIGltCiBKU1Zh
bHVlIEpTRGF0YUdyaWRDb2x1bW5MaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgSlNEYXRhR3JpZENvbHVtbkxpc3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU0RhdGFH
cmlkQ29sdW1uTGlzdCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwotICAgIHJldHVybiB0
b0pTKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRlbVdpdGhOYW1lKHByb3BlcnR5TmFtZSkpOwor
ICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5p
bXBsKCktPml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKaW5kZXggNDRl
Zjk3Yi4uNDkzYWFlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3Bw
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSlNEb2N1bWVudDo6c2V0TG9jYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIGZyYW1lLT5sb2FkZXIoKS0+c2NoZWR1bGVMb2Nh
dGlvbkNoYW5nZShzdHIsIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigp
LCAhYWN0aXZlRnJhbWUtPnNjcmlwdCgpLT5hbnlQYWdlSXNQcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSwgZmFsc2UsIHVzZXJHZXN0dXJlKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhl
YywgRG9jdW1lbnQqIGRvY3VtZW50KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTg5LDEzICs4OSwx
MyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVu
dCgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBI
VE1MRG9jdW1lbnQsIGRvY3VtZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JK
RUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MRG9jdW1lbnQsIGRvY3VtZW50KTsK
ICNpZiBFTkFCTEUoU1ZHKQogICAgIGVsc2UgaWYgKGRvY3VtZW50LT5pc1NWR0RvY3VtZW50KCkp
Ci0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR0Rv
Y3VtZW50LCBkb2N1bWVudCk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHRG9jdW1lbnQsIGRvY3VtZW50KTsKICNlbmRp
ZgogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIo
ZXhlYywgRG9jdW1lbnQsIGRvY3VtZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBEb2N1bWVudCwgZG9jdW1lbnQpOwog
CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBkb2N1bWVudCBpcyBrZXB0IGFyb3VuZCBieSB0aGUgd2lu
ZG93IG9iamVjdCwgYW5kIHdvcmtzIHJpZ2h0IHdpdGggdGhlCiAgICAgLy8gYmFjay9mb3J3YXJk
IGNhY2hlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCmluZGV4IGEwMTM1
N2IuLjJlZmI1ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAKQEAg
LTg5LDcgKzg5LDcgQEAgSlNWYWx1ZSBKU0VsZW1lbnQ6OnNldEF0dHJpYnV0ZU5vZGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIGlmICghYWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKGV4ZWMsIGltcCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1
ZSgpKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoZXhlYywgV1RGOjpnZXRQdHIoaW1wLT5zZXRBdHRyaWJ1dGVOb2RlKG5ld0F0dHIs
IGVjKSkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwg
V1RGOjpnZXRQdHIoaW1wLT5zZXRBdHRyaWJ1dGVOb2RlKG5ld0F0dHIsIGVjKSkpOwogICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEyMywx
MiArMTIzLDEyIEBAIEpTVmFsdWUgSlNFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlTlMoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIGlmICghYWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKGV4ZWMsIGltcCwgbmV3QXR0ci0+bmFtZSgpLCBuZXdBdHRyLT52YWx1
ZSgpKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoZXhlYywgV1RGOjpnZXRQdHIoaW1wLT5zZXRBdHRyaWJ1dGVOb2RlTlMobmV3QXR0
ciwgZWMpKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgp
LCBXVEY6OmdldFB0cihpbXAtPnNldEF0dHJpYnV0ZU5vZGVOUyhuZXdBdHRyLCBlYykpKTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpT
VmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEVsZW1lbnQqIGVsZW1lbnQp
CitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIGlmICghZWxlbWVu
dCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtMTM3LDEzICsxMzcsMTMgQEAgSlNWYWx1
ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgRWxlbWVudCogZWxlbWVudCkKIAog
ICAgIEpTTm9kZSogd3JhcHBlcjsgICAgICAgIAogICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVt
ZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBjcmVhdGVKU0hUTUxXcmFwcGVyKGV4ZWMsIHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVudCkpOworICAgICAgICB3cmFwcGVyID0gY3JlYXRl
SlNIVE1MV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50
Kj4oZWxlbWVudCkpOwogI2lmIEVOQUJMRShTVkcpCiAgICAgZWxzZSBpZiAoZWxlbWVudC0+aXNT
VkdFbGVtZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBjcmVhdGVKU1NWR1dyYXBwZXIoZXhlYywg
c3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICAgICAgd3JhcHBlciA9IGNy
ZWF0ZUpTU1ZHV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFNWR0VsZW1l
bnQqPihlbGVtZW50KSk7CiAjZW5kaWYKICAgICBlbHNlCi0gICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBFbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAgd3Jh
cHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRWxlbWVu
dCwgZWxlbWVudCk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsgICAgCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50Q3VzdG9tLmNwcAppbmRleCAzZmExMjU5Li40NTQyNzljIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTc2LDEwICs3NiwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEpTVmFsdWUgSlNFdmVudDo6Y2xpcGJvYXJkRGF0YShFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGltcGwoKS0+aXNDbGlwYm9hcmRFdmVudCgpID8gdG9KUyhl
eGVjLCBpbXBsKCktPmNsaXBib2FyZERhdGEoKSkgOiBqc1VuZGVmaW5lZCgpOworICAgIHJldHVy
biBpbXBsKCktPmlzQ2xpcGJvYXJkRXZlbnQoKSA/IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCks
IGltcGwoKS0+Y2xpcGJvYXJkRGF0YSgpKSA6IGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEV2ZW50KiBldmVudCkKK0pTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50KiBldmVudCkK
IHsKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7CiAKQEAgLTkyLDQ1ICs5Miw0NSBAQCBKU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBFdmVudCogZXZlbnQpCiAKICAgICBpZiAoZXZlbnQtPmlz
VUlFdmVudCgpKSB7CiAgICAgICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCi0gICAg
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBLZXlib2Fy
ZEV2ZW50LCBldmVudCk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1Rf
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEtleWJvYXJkRXZlbnQsIGV2ZW50KTsKICAgICAg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50KCkpCi0gICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBUZXh0RXZlbnQsIGV2ZW50KTsKKyAgICAg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgVGV4dEV2ZW50LCBldmVudCk7CiAgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNl
RXZlbnQoKSkKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIE1vdXNlRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgTW91c2VFdmVudCwgZXZlbnQp
OwogICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCi0gICAgICAgICAgICB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBXaGVlbEV2ZW50LCBldmVu
dCk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIFdoZWVsRXZlbnQsIGV2ZW50KTsKICNpZiBFTkFCTEUoU1ZHKQogICAg
ICAgICBlbHNlIGlmIChldmVudC0+aXNTVkdab29tRXZlbnQoKSkKLSAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1pvb21FdmVudCwgZXZlbnQp
OworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBTVkdab29tRXZlbnQsIGV2ZW50KTsKICNlbmRpZgogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBV
SUV2ZW50LCBldmVudCk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1Rf
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFVJRXZlbnQsIGV2ZW50KTsKICAgICB9IGVsc2Ug
aWYgKGV2ZW50LT5pc011dGF0aW9uRXZlbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fT0JKRUNUX1dSQVBQRVIoZXhlYywgTXV0YXRpb25FdmVudCwgZXZlbnQpOworICAgICAgICB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIE11
dGF0aW9uRXZlbnQsIGV2ZW50KTsKICAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50
KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIE92
ZXJmbG93RXZlbnQsIGV2ZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNU
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBPdmVyZmxvd0V2ZW50LCBldmVudCk7CiAgICAg
ZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIE1lc3NhZ2VFdmVudCwgZXZlbnQpOworICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IE1lc3NhZ2VFdmVudCwgZXZlbnQpOwogICAgIGVsc2UgaWYgKGV2ZW50LT5pc1Byb2dyZXNzRXZl
bnQoKSkgewogICAgICAgICBpZiAoZXZlbnQtPmlzWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
KCkpCi0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVj
LCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LCBldmVudCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFByb2dyZXNzRXZlbnQs
IGV2ZW50KTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIGdsb2JhbE9iamVjdCwgUHJvZ3Jlc3NFdmVudCwgZXZlbnQpOwogICAgIH0KICNpZiBF
TkFCTEUoRE9NX1NUT1JBR0UpCiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkp
Ci0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFN0b3Jh
Z2VFdmVudCwgZXZlbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFN0b3JhZ2VFdmVudCwgZXZlbnQpOwogI2VuZGlmCiAg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKLSAgICAgICAgd3Jh
cHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgV2ViS2l0QW5pbWF0aW9uRXZl
bnQsIGV2ZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRBbmltYXRpb25FdmVudCwgZXZlbnQpOwogICAgIGVs
c2UgaWYgKGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQotICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBXZWJLaXRUcmFuc2l0aW9uRXZlbnQs
IGV2ZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRUcmFuc2l0aW9uRXZlbnQsIGV2ZW50KTsKICNpZiBFTkFC
TEUoV09SS0VSUykKICAgICBlbHNlIGlmIChldmVudC0+aXNFcnJvckV2ZW50KCkpCi0gICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIEVycm9yRXZlbnQsIGV2
ZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBFcnJvckV2ZW50LCBldmVudCk7CiAjZW5kaWYKICAgICBlbHNlCi0gICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIEV2ZW50LCBldmVu
dCk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgRXZlbnQsIGV2ZW50KTsKIAogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGI5ZWQ2ODUuLmQ3OGIyOTcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKQEAgLTcxLDYgKzcxLDcg
QEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCBp
c1dpbmRvd0V2ZW50KQogICAgIC8vIE51bGwgY2hlY2sgYXMgY2xlYXJHbG9iYWxPYmplY3QoKSBj
YW4gY2xlYXIgdGhpcyBhbmQgd2Ugc3RpbGwgZ2V0IGNhbGxlZCBiYWNrIGJ5CiAgICAgLy8geG1s
aHR0cHJlcXVlc3Qgb2JqZWN0cy4gU2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjc1CiAgICAgLy8gRklYTUU6IElzIHRoaXMgY2hlY2sgc3RpbGwgbmVjZXNzYXJ5
PyBSZXF1ZXN0cyBhcmUgc3VwcG9zZWQgdG8gYmUgc3RvcHBlZCBiZWZvcmUgY2xlYXJHbG9iYWxP
YmplY3QoKSBpcyBjYWxsZWQuCisgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKCFn
bG9iYWxPYmplY3QpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQg
SlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dF
dmVudCkKICAgICAgICAgcmVmKCk7CiAKICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJn
czsKLSAgICAgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBldmVudCkpOworICAgICAgICBhcmdz
LmFwcGVuZCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgZXZlbnQpKTsKIAogICAgICAgICBFdmVu
dCogc2F2ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVudEV2ZW50KCk7CiAgICAgICAgIGds
b2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsKQEAgLTEyNyw3ICsxMjgsNyBAQCB2
b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2lu
ZG93RXZlbnQpCiAgICAgICAgICAgICBpZiAoaXNXaW5kb3dFdmVudCkKICAgICAgICAgICAgICAg
ICB0aGlzVmFsdWUgPSBnbG9iYWxPYmplY3QtPnRvVGhpc09iamVjdChleGVjKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzVmFsdWUgPSB0b0pTKGV4ZWMsIGV2ZW50LT5j
dXJyZW50VGFyZ2V0KCkpOworICAgICAgICAgICAgICAgIHRoaXNWYWx1ZSA9IHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBldmVudC0+Y3VycmVudFRhcmdldCgpKTsKICAgICAgICAgICAgIGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLT50aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgICAgICAg
ICAgcmV0dmFsID0gY2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRo
aXNWYWx1ZSwgYXJncyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudFRhcmdldC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQu
Y3BwCmluZGV4IDNkYWI2ZjYuLmNkZTA3MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudFRhcmdldC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFy
Z2V0LmNwcApAQCAtNjUsNyArNjUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEV2ZW50VGFyZ2V0
KiB0YXJnZXQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZ2V0KQogewogICAgIGlmICghdGFyZ2V0
KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CkBAIC03MywzMiArNzMsMzIgQEAgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgRXZlbnRUYXJnZXQqIHRhcmdldCkKICNpZiBFTkFCTEUoU1ZH
KQogICAgIC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudElu
c3RhbmNlIGFuZCB0b05vZGUgc2luY2Ugc28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVu
ZHMgb24gdG9Ob2RlIHJldHVybmluZyBhIHZhbGlkIG5vZGUuCiAgICAgaWYgKFNWR0VsZW1lbnRJ
bnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudEluc3RhbmNlKCkpCi0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGluc3RhbmNlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSk7CiAjZW5kaWYKICAgICAKICAgICBpZiAoTm9kZSog
bm9kZSA9IHRhcmdldC0+dG9Ob2RlKCkpCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUp
OworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogCiAgICAg
aWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gdGFyZ2V0LT50b0RPTVdpbmRvdygpKQotICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCBkb21XaW5kb3cpOworICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIGRvbVdpbmRvdyk7CiAKICAgICBpZiAoWE1MSHR0cFJlcXVlc3QqIHho
ciA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdCgpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCB4aHIpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHhocik7CiAK
ICAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRw
UmVxdWVzdFVwbG9hZCgpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCB1cGxvYWQpOworICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHVwbG9hZCk7CiAKICNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNhdGlvbkNhY2hl
KiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCi0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGNhY2hlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBjYWNoZSk7CiAjZW5kaWYKIAogICAgIGlmIChNZXNzYWdlUG9ydCogbWVzc2FnZVBvcnQg
PSB0YXJnZXQtPnRvTWVzc2FnZVBvcnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgbWVz
c2FnZVBvcnQpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIG1lc3Nh
Z2VQb3J0KTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGlmIChXb3JrZXIqIHdvcmtlciA9
IHRhcmdldC0+dG9Xb3JrZXIoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgd29ya2VyKTsK
KyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB3b3JrZXIpOwogCiAgICAg
aWYgKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQgPSB0YXJnZXQtPnRvV29ya2VyQ29udGV4
dCgpKQogICAgICAgICByZXR1cm4gdG9KU0RPTUdsb2JhbE9iamVjdCh3b3JrZXJDb250ZXh0KTsK
QEAgLTEwNiw3ICsxMDYsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBFdmVudFRh
cmdldCogdGFyZ2V0KQogCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogICAgIGlmIChTaGFy
ZWRXb3JrZXIqIHNoYXJlZFdvcmtlciA9IHRhcmdldC0+dG9TaGFyZWRXb3JrZXIoKSkKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgc2hhcmVkV29ya2VyKTsKKyAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzaGFyZWRXb3JrZXIpOwogI2VuZGlmCiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmgKaW5kZXggMDVkZjA1
Ni4uZGRkODIzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmgKQEAgLTM1LDggKzM1
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBF
dmVudFRhcmdldDsKKyAgICBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIAotICAgIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgRXZlbnRUYXJnZXQqKTsKKyAgICBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgRXZlbnRUYXJnZXQq
KTsKICAgICBFdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUpOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TENvbGxlY3Rpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0
aW9uQ3VzdG9tLmNwcAppbmRleCAwMjc0YWNmLi5kZDlhZjc0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgc3Rh
dGljIEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTSFRNTENvbGxlY3Rp
b24qIGNvbGxlY3Rpb24sIGNvbnMKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAg
ICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
bmFtZWRJdGVtc1swXS5nZXQoKSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rp
b24tPmdsb2JhbE9iamVjdCgpLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKIAogICAgIHJldHVybiBu
ZXcgKGV4ZWMpIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oZXhlYywgY29sbGVjdGlvbi0+Z2xvYmFs
T2JqZWN0KCksIG5hbWVkSXRlbXMpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxIVE1MQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBmdW5jdAogICAgICAgICBVU3RyaW5nIHN0cmluZyA9IGFyZ3MuYXQoMCkudG9TdHJpbmco
ZXhlYyk7CiAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc3RyaW5nLnRvVUludDMyKCZvaywgZmFs
c2UpOwogICAgICAgICBpZiAob2spCi0gICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBjb2xs
ZWN0aW9uLT5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBqc0Nv
bGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KSk7CiAKICAg
ICAgICAgLy8gU3VwcG9ydCBmb3IgZG9jdW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCiAgICAg
ICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGpzQ29sbGVjdGlvbiwgSWRlbnRpZmllcihl
eGVjLCBzdHJpbmcpKTsKQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsSFRNTENvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3QK
ICAgICAgICAgTm9kZSogbm9kZSA9IGNvbGxlY3Rpb24tPm5hbWVkSXRlbShwc3RyKTsKICAgICAg
ICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICAgICAgIGlmICghaW5kZXgpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywganNDb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgbm9kZSk7CiAgICAgICAgICAgICBu
b2RlID0gY29sbGVjdGlvbi0+bmV4dE5hbWVkSXRlbShwc3RyKTsKICAgICAgICAgICAgIC0taW5k
ZXg7CiAgICAgICAgIH0KQEAgLTExNiw3ICsxMTYsNyBAQCBKU1ZhbHVlIEpTSFRNTENvbGxlY3Rp
b246Oml0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIGJvb2wg
b2s7CiAgICAgdWludDMyX3QgaW5kZXggPSBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLnRvVUlu
dDMyKCZvaywgZmFsc2UpOwogICAgIGlmIChvaykKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
aW1wbCgpLT5pdGVtKGluZGV4KSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCgpLCBpbXBsKCktPml0ZW0oaW5kZXgpKTsKICAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhl
eGVjLCB0aGlzLCBJZGVudGlmaWVyKGV4ZWMsIGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykpKTsK
IH0KIApAQCAtMTI1LDcgKzEyNSw3IEBAIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFtZWRJ
dGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICByZXR1cm4gZ2V0
TmFtZWRJdGVtcyhleGVjLCB0aGlzLCBJZGVudGlmaWVyKGV4ZWMsIGFyZ3MuYXQoMCkudG9TdHJp
bmcoZXhlYykpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSFRNTENvbGxl
Y3Rpb24qIGNvbGxlY3Rpb24pCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKIHsK
ICAgICBpZiAoIWNvbGxlY3Rpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTEzNywx
NCArMTM3LDE0IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xsZWN0aW9u
KiBjb2xsZWN0aW9uKQogCiAgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKICAgICAg
ICAgY2FzZSBTZWxlY3RPcHRpb25zOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsK
KyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIERvY0FsbDoKICAgICAgICAgICAgIHR5cGVkZWYgSFRN
TENvbGxlY3Rpb24gSFRNTEFsbENvbGxlY3Rpb247Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBIVE1MQWxsQ29sbGVjdGlvbiwgY29sbGVjdGlv
bik7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIEhUTUxBbGxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgSFRNTENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwor
ICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBIVE1MQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5j
cHAKaW5kZXggYzExM2VjNy4uNGIzNzQ1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTczLDEwICs3MywxMCBAQCBKU1ZhbHVlIEpTSFRNTERv
Y3VtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpICYmIChmcmFt
ZSA9IHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4obm9kZSktPmNvbnRlbnRGcmFtZSgp
KSkKICAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGZyYW1lKTsKIAotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBub2RlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+
Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwogICAgIH0gCiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBj
b2xsZWN0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxP
YmplY3QoKSwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCkBA
IC04OCw3ICs4OCw3IEBAIEpTVmFsdWUgSlNIVE1MRG9jdW1lbnQ6OmFsbChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAgICAgaWYgKHYpCiAgICAgICAgIHJldHVybiB2OwogCi0gICAgcmV0dXJuIHRv
SlMoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oaW1wbCgpKS0+YWxsKCkuZ2V0KCkp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDxIVE1M
RG9jdW1lbnQqPihpbXBsKCkpLT5hbGwoKS5nZXQoKSk7CiB9CiAKIHZvaWQgSlNIVE1MRG9jdW1l
bnQ6OnNldEFsbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAzMzQ1NzY0Li40MTk0NjU3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAKQEAgLTM4LDE0
ICszOCwxNCBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudEhhbmRsZXJTY29wZShFeGVj
U3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW4mIHNjb3BlKSBjbwogICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gaW1wbCgpOwogCiAgICAgLy8gVGhlIGRvY3VtZW50IGlzIHB1dCBvbiBmaXJzdCwgZmFs
bCBiYWNrIHRvIHNlYXJjaGluZyBpdCBvbmx5IGFmdGVyIHRoZSBlbGVtZW50IGFuZCBmb3JtLgot
ICAgIHNjb3BlLnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBlbGVtZW50LT5vd25lckRvY3VtZW50
KCkpKSk7CisgICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgp
LCBlbGVtZW50LT5vd25lckRvY3VtZW50KCkpKSk7CiAKICAgICAvLyBUaGUgZm9ybSBpcyBuZXh0
LCBzZWFyY2hlZCBiZWZvcmUgdGhlIGRvY3VtZW50LCBidXQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXRz
ZWxmLgogICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCi0g
ICAgICAgIHNjb3BlLnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBmb3JtKSkpOworICAgICAgICBz
Y29wZS5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGZvcm0pKSk7CiAK
ICAgICAvLyBUaGUgZWxlbWVudCBpcyBvbiB0b3AsIHNlYXJjaGVkIGZpcnN0LgotICAgIHNjb3Bl
LnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBlbGVtZW50KSkpOworICAgIHNjb3BlLnB1c2goYXNP
YmplY3QodG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZWxlbWVudCkpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxG
b3JtRWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVt
ZW50Q3VzdG9tLmNwcAppbmRleCBmZmEyZDU3Li5hZTY4ZmYwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcApAQCAtNTIsOCArNTIsOCBAQCBK
U1ZhbHVlIEpTSFRNTEZvcm1FbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIGZvcm0tPmdldE5hbWVkRWxlbWVudHMocHJvcGVy
dHlOYW1lLCBuYW1lZEl0ZW1zKTsKICAgICAKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0g
MSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgbmFtZWRJdGVtc1swXS5nZXQoKSk7Ci0gICAg
aWYgKG5hbWVkSXRlbXMuc2l6ZSgpID4gMSkgCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGpz
Rm9ybS0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXNbMF0uZ2V0KCkpOworICAgIGlmIChuYW1l
ZEl0ZW1zLnNpemUoKSA+IDEpCiAgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rl
c0NvbGxlY3Rpb24oZXhlYywganNGb3JtLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7CiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDQ2MGJhMDguLjdiY2Ey
ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rp
b25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxl
Y3Rpb25DdXN0b20uY3BwCkBAIC05MSw3ICs5MSw3IEBAIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0Nv
bGxlY3Rpb246OmFkZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiBKU1Zh
bHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JiBhcmdzKQogewogICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbiogaW1wID0gc3Rh
dGljX2Nhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0aW9uKj4oaW1wbCgpKTsKLSAgICBKU0hUTUxTZWxl
Y3RFbGVtZW50KiBiYXNlID0gc3RhdGljX2Nhc3Q8SlNIVE1MU2VsZWN0RWxlbWVudCo+KGFzT2Jq
ZWN0KHRvSlMoZXhlYywgaW1wLT5iYXNlKCkpKSk7CisgICAgSlNIVE1MU2VsZWN0RWxlbWVudCog
YmFzZSA9IHN0YXRpY19jYXN0PEpTSFRNTFNlbGVjdEVsZW1lbnQqPihhc09iamVjdCh0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBpbXAtPmJhc2UoKSkpKTsKICAgICByZXR1cm4gYmFzZS0+cmVt
b3ZlKGV4ZWMsIGFyZ3MpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNDkwZTUwZS4uZmFhYWY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbWFnZUNvbnN0cnVjdG9yLmNwcApAQCAtNTUsMjEgKzU1LDIyIEBAIHN0YXRpYyBKU09iamVj
dCogY29uc3RydWN0SW1hZ2UoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3Is
IGNvbnN0IEFyCiAgICAgICAgIGhlaWdodCA9IGFyZ3MuYXQoMSkudG9JbnQzMihleGVjKTsKICAg
ICB9CiAKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0ltYWdlQ29uc3Ry
dWN0b3IqPihjb25zdHJ1Y3RvciktPmRvY3VtZW50KCk7CisgICAgSlNJbWFnZUNvbnN0cnVjdG9y
KiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJbWFnZUNvbnN0cnVjdG9yKj4oY29uc3Ry
dWN0b3IpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGpzQ29uc3RydWN0b3ItPmRvY3VtZW50
KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
UmVmZXJlbmNlRXJyb3IsICJJbWFnZSBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRvY3VtZW50IGlz
IHVuYXZhaWxhYmxlIik7CiAKICAgICAvLyBDYWxsaW5nIHRvSlMgb24gdGhlIGRvY3VtZW50IGNh
dXNlcyB0aGUgSlMgZG9jdW1lbnQgd3JhcHBlciB0byBiZQogICAgIC8vIGFkZGVkIHRvIHRoZSB3
aW5kb3cgb2JqZWN0LiBUaGlzIGlzIGRvbmUgdG8gZW5zdXJlIHRoYXQgSlNEb2N1bWVudDo6bWFy
awogICAgIC8vIHdpbGwgYmUgY2FsbGVkICh3aGljaCB3aWxsIGNhdXNlIHRoZSBpbWFnZSBlbGVt
ZW50IHRvIGJlIG1hcmtlZCBpZiBuZWNlc3NhcnkpLgotICAgIHRvSlMoZXhlYywgZG9jdW1lbnQp
OworICAgIHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvY3VtZW50
KTsKIAogICAgIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IG5ldyBIVE1MSW1hZ2VF
bGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBkb2N1bWVudCk7CiAgICAgaWYgKHdpZHRoU2V0KQog
ICAgICAgICBpbWFnZS0+c2V0V2lkdGgod2lkdGgpOwogICAgIGlmIChoZWlnaHRTZXQpCiAgICAg
ICAgIGltYWdlLT5zZXRIZWlnaHQoaGVpZ2h0KTsKLSAgICByZXR1cm4gYXNPYmplY3QodG9KUyhl
eGVjLCBpbWFnZS5yZWxlYXNlKCkpKTsKKyAgICByZXR1cm4gYXNPYmplY3QodG9KUyhleGVjLCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgaW1hZ2UucmVsZWFzZSgpKSk7CiB9CiAKIENv
bnN0cnVjdFR5cGUgSlNJbWFnZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0
b20uY3BwCmluZGV4IDMyZmU1OGIuLmZhM2IxZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZURhdGFDdXN0b20uY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SW1hZ2VEYXRhKiBpbWFnZURhdGEpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbWFnZURhdGEqIGltYWdlRGF0YSkKIHsKICAg
ICBpZiAoIWltYWdlRGF0YSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNDUsNyArNDUs
NyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBJbWFnZURhdGEqIGltYWdlRGF0YSkK
ICAgICBpZiAod3JhcHBlcikKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgCi0gICAgd3Jh
cHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgSW1hZ2VEYXRhLCBpbWFnZURh
dGEpOworICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgSW1hZ2VEYXRhLCBpbWFnZURhdGEpOwogICAgIElkZW50aWZpZXIgZGF0YU5hbWUo
ZXhlYywgImRhdGEiKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+
LCBjcGFTdHJ1Y3R1cmUsIChKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkp
OwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJbmZvID0geyAiQ2FudmFzUGl4
ZWxBcnJheSIsIDAsIDAsIDAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnNwZWN0b3JDb250cm9sbGVyQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNw
ZWN0b3JDb250cm9sbGVyQ3VzdG9tLmNwcAppbmRleCBiMDZjOWU5Li42NDE4NDJiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yQ29udHJvbGxlckN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckNvbnRyb2xsZXJDdXN0b20uY3Bw
CkBAIC0xMDgsMTAgKzEwOCwxMiBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0
UmVzb3VyY2VEb2N1bWVudE5vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcgogICAgIGlmIChk
b2N1bWVudC0+aXNQbHVnaW5Eb2N1bWVudCgpIHx8IGRvY3VtZW50LT5pc0ltYWdlRG9jdW1lbnQo
KSB8fCBkb2N1bWVudC0+aXNNZWRpYURvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogCi0gICAgRXhlY1N0YXRlKiByZXNvdXJjZUV4ZWMgPSB0b0pTRE9NV2luZG93U2hl
bGwoZnJhbWUpLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworICAgIEpTRE9NV2luZG93KiBnbG9i
YWxPYmplY3QgPSB0b0pTRE9NV2luZG93U2hlbGwoZnJhbWUpLT53aW5kb3coKTsKKyAgICBFeGVj
U3RhdGUqIHJlc291cmNlRXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAg
SlNMb2NrIGxvY2soZmFsc2UpOwotICAgIHJldHVybiBKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6
OndyYXAocmVzb3VyY2VFeGVjLCB0b0pTKHJlc291cmNlRXhlYywgZG9jdW1lbnQpKTsKKyAgICAv
LyBQYXNzIHRoZSByZXNvdXJjZXMncyBnbG9iYWwgb2JqZWN0IHNvIHRoYXQgdGhlIERvY3VtZW50
IHdpbGwgZW5kIHVwIHdpdGggdGhlIHJlc291cmNlJ3MgRG9jdW1lbnQgcHJvdG90eXBlLgorICAg
IHJldHVybiBKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAocmVzb3VyY2VFeGVjLCB0b0pT
KHJlc291cmNlRXhlYywgZ2xvYmFsT2JqZWN0LCBkb2N1bWVudCkpOwogfQogCiBKU1ZhbHVlIEpT
SW5zcGVjdG9yQ29udHJvbGxlcjo6c2VhcmNoKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKQEAgLTE0Miw3ICsxNDQsNyBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yQ29udHJvbGxl
cjo6c2VhcmNoKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAg
aWYgKG5ld1N0YXJ0ID09IHN0YXJ0VmlzaWJsZVBvc2l0aW9uKHNlYXJjaFJhbmdlLmdldCgpLCBE
T1dOU1RSRUFNKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
dG9KUyhleGVjLCByZXN1bHRSYW5nZS5nZXQoKSkpOworICAgICAgICByZXN1bHQuYXBwZW5kKHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHJlc3VsdFJhbmdlLmdldCgpKSk7CiAKICAgICAgICAg
c2V0U3RhcnQoc2VhcmNoUmFuZ2UuZ2V0KCksIG5ld1N0YXJ0KTsKICAgICB9IHdoaWxlICh0cnVl
KTsKQEAgLTI3OCw3ICsyODAsOCBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yQ29udHJvbGxlcjo6Y3Vy
cmVudENhbGxGcmFtZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogICAgIEV4ZWNT
dGF0ZSogZ2xvYmFsRXhlYyA9IGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpOwogCiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwotICAgIHJldHVybiBK
U0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZ2xvYmFsRXhlYywgdG9KUyhleGVjLCBjYWxs
RnJhbWUpKTsKKyAgICAvLyBKYXZhU2NyaXB0Q2FsbEZyYW1lIGlzIG9ubHkgZXZlciBhY2Nlc3Np
YmxlIGZyb20gdGhlIEluc3BlY3RvciAobGlrZSBKU0lucHNlY3RvckNvbnRyb2xsZXIpLCB0aGUg
aW5zcGVjdG9yJ3Mgd2luZG93IGFsd2F5cyBoYXMgdGhlIHJpZ2h0IHByb3RvdHlwZXMuCisgICAg
cmV0dXJuIEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3JhcChnbG9iYWxFeGVjLCB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBjYWxsRnJhbWUpKTsKIH0KIAogSlNWYWx1ZSBKU0luc3BlY3Rv
ckNvbnRyb2xsZXI6OnByb2ZpbGVzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OkFy
Z0xpc3QmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3Rl
bmVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5k
ZXggODkxMzI0My4uN2NhZmYyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50
TGlzdGVuZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBKU0xhenlFdmVudExpc3RlbmVy
OjpwYXJzZUNvZGUoKSBjb25zdAogICAgICAgICAvLyAoYW5kIHRoZSBkb2N1bWVudCwgYW5kIHRo
ZSBmb3JtIC0gc2VlIEpTSFRNTEVsZW1lbnQ6OmV2ZW50SGFuZGxlclNjb3BlKQogICAgICAgICBT
Y29wZUNoYWluIHNjb3BlID0gbGlzdGVuZXJBc0Z1bmN0aW9uLT5zY29wZSgpOwogCi0gICAgICAg
IEpTVmFsdWUgdGhpc09iaiA9IHRvSlMoZXhlYywgbV9vcmlnaW5hbE5vZGUpOworICAgICAgICBK
U1ZhbHVlIHRoaXNPYmogPSB0b0pTKGV4ZWMsIG1fZ2xvYmFsT2JqZWN0LCBtX29yaWdpbmFsTm9k
ZSk7CiAgICAgICAgIGlmICh0aGlzT2JqLmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KHRoaXNPYmopKS0+cHVzaEV2ZW50SGFuZGxlclNjb3Bl
KGV4ZWMsIHNjb3BlKTsKICAgICAgICAgICAgIGxpc3RlbmVyQXNGdW5jdGlvbi0+c2V0U2NvcGUo
c2NvcGUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29u
c3RydWN0b3IuY3BwCmluZGV4IDJkNDc2MDcuLjI1YTVjYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTU1LDExICs1
NSwxMiBAQCBDb25zdHJ1Y3RUeXBlIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdAogCiBKU09iamVjdCogSlNNZXNzYWdlQ2hh
bm5lbENvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29u
c3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmKQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQgPSBzdGF0aWNfY2FzdDxKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IqPihjb25z
dHJ1Y3RvciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBKU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBp
ZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFJlZmVyZW5jZUVy
cm9yLCAiTWVzc2FnZUNoYW5uZWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVudCBpcyB1
bmF2YWlsYWJsZSIpOwogCi0gICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgTWVzc2FnZUNo
YW5uZWw6OmNyZWF0ZShjb250ZXh0KSkpOworICAgIHJldHVybiBhc09iamVjdCh0b0pTKGV4ZWMs
IGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBNZXNzYWdlQ2hhbm5lbDo6Y3JlYXRlKGNv
bnRleHQpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCmluZGV4IDcwMzI5ZTIuLmQzYjU4Nzgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB2b2lkIEpTTWVzc2Fn
ZUNoYW5uZWw6Om1hcmsoKQogewotICAgIERPTU9iamVjdDo6bWFyaygpOworICAgIEJhc2U6Om1h
cmsoKTsKIAogICAgIGlmIChNZXNzYWdlUG9ydCogcG9ydCA9IG1faW1wbC0+cG9ydDEoKSkgewog
ICAgICAgICBET01PYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKCpI
ZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCksIHBvcnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggYmZhYzM3NS4uNzE0NzJkNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBAIC00MCw3ICs0MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU01lc3NhZ2VQb3J0OjptYXJrKCkKIHsK
LSAgICBET01PYmplY3Q6Om1hcmsoKTsKKyAgICBCYXNlOjptYXJrKCk7CiAKICAgICBtYXJrSWZO
b3ROdWxsKG1faW1wbC0+b25tZXNzYWdlKCkpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWltZVR5cGVBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWltZVR5cGVBcnJheUN1c3RvbS5jcHAKaW5kZXggYzkwZGFkZC4uNGFmMDFlYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pbWVUeXBlQXJyYXlDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNaW1lVHlwZUFycmF5Q3VzdG9tLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBib29sIEpTTWltZVR5cGVBcnJheTo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSos
IE1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlQXJyYQogSlNWYWx1ZSBKU01pbWVUeXBlQXJyYXk6Om5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU01pbWVUeXBlQXJyYXkqIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU01pbWVUeXBlQXJyYXkqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPm5hbWVkSXRlbShw
cm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmpl
Y3QoKSwgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
YW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1h
cEN1c3RvbS5jcHAKaW5kZXggN2JkOTViNC4uNTU4MjVmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgYm9vbCBKU05h
bWVkTm9kZU1hcDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIE5hbWVkTm9kZU1hcCog
aW1wbCwgY29uc3QgSWQKIEpTVmFsdWUgSlNOYW1lZE5vZGVNYXA6Om5hbWVHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU05hbWVkTm9kZU1hcCogdGhpc09iaiA9IHN0YXRpY19jYXN0
PEpTTmFtZWROb2RlTWFwKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJu
IHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7
CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmot
PmltcGwoKS0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0Nv
bGxlY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcAppbmRleCAzMzIzZWUyLi4yOTg0YjNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKQEAgLTU2LDggKzU2LDggQEAgSlNWYWx1ZSBKU05h
bWVkTm9kZXNDb2xsZWN0aW9uOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiwKIAogSlNWYWx1ZSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjppbmRleEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbiAqdGhpc09iaiA9IHN0YXRpY19j
YXN0PEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24qPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsK
LSAgICByZXR1cm4gdG9KUyhleGVjLCAoKnRoaXNPYmotPm1fbm9kZXMpW3Nsb3QuaW5kZXgoKV0u
Z2V0KCkpOworICAgIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24qIHRoaXNPYmogPSBzdGF0aWNfY2Fz
dDxKU05hbWVkTm9kZXNDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Cisg
ICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksICgqdGhpc09iai0+
bV9ub2Rlcylbc2xvdC5pbmRleCgpXS5nZXQoKSk7CiB9CiAKIGJvb2wgSlNOYW1lZE5vZGVzQ29s
bGVjdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04Niw3ICs4Niw3IEBA
IGJvb2wgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
RE9NT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICByZXR1cm4gRE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXI6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggNzlhYzZiNy4uZWEyMGRjOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZv
aWQgSlNOb2RlOjptYXJrKCkKICAgICAvLyB0aGUgZG9jdW1lbnQsIHdlIG5lZWQgdG8gbWFyayB0
aGUgZG9jdW1lbnQsIGJ1dCB3ZSBkb24ndCBuZWVkIHRvIGV4cGxpY2l0bHkKICAgICAvLyBtYXJr
IGFueSBvdGhlciBub2Rlcy4KICAgICBpZiAobm9kZS0+aW5Eb2N1bWVudCgpKSB7Ci0gICAgICAg
IERPTU9iamVjdDo6bWFyaygpOworICAgICAgICBCYXNlOjptYXJrKCk7CiAgICAgICAgIG1hcmtF
dmVudExpc3RlbmVycyhub2RlLT5ldmVudExpc3RlbmVycygpKTsKICAgICAgICAgaWYgKERvY3Vt
ZW50KiBkb2MgPSBub2RlLT5vd25lckRvY3VtZW50KCkpCiAgICAgICAgICAgICBpZiAoRE9NT2Jq
ZWN0KiBkb2NXcmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcigqSGVhcDo6aGVhcCh0
aGlzKS0+Z2xvYmFsRGF0YSgpLCBkb2MpKQpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgSlNOb2Rl
OjptYXJrKCkKICAgICAvLyBOb2RlcyBpbiBhIHN1YnRyZWUgYXJlIG1hcmtlZCBieSB0aGUgdHJl
ZSdzIHJvb3QsIHNvLCBpZiB0aGUgcm9vdCBpcyBhbHJlYWR5CiAgICAgLy8gbWFya2luZyB0aGUg
dHJlZSwgd2UgZG9uJ3QgbmVlZCB0byBleHBsaWNpdGx5IG1hcmsgYW55IG90aGVyIG5vZGVzLgog
ICAgIGlmIChyb290LT5pblN1YnRyZWVNYXJrKCkpIHsKLSAgICAgICAgRE9NT2JqZWN0OjptYXJr
KCk7CisgICAgICAgIEJhc2U6Om1hcmsoKTsKICAgICAgICAgbWFya0V2ZW50TGlzdGVuZXJzKG5v
ZGUtPmV2ZW50TGlzdGVuZXJzKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTkyLDcg
KzE5Miw3IEBAIHZvaWQgSlNOb2RlOjptYXJrKCkKICAgICBBU1NFUlQobWFya2VkKCkpOwogfQog
Ci1zdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXIoRXhlY1N0YXRlKiBl
eGVjLCBOb2RlKiBub2RlKQorc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVXcmFw
cGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9k
ZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CiAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01O
b2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CkBAIC0yMDEsNjMgKzIwMSw2MyBA
QCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXIoRXhlY1N0YXRlKiBl
eGVjLCBOb2RlKiBub2RlKQogICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgewogICAgICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxF
bGVtZW50KCkpCi0gICAgICAgICAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIo
ZXhlYywgc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICAgICAg
d3JhcHBlciA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxIVE1MRWxlbWVudCo+KG5vZGUpKTsKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICAgICAg
ZWxzZSBpZiAobm9kZS0+aXNTVkdFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgd3JhcHBlciA9
IGNyZWF0ZUpTU1ZHV3JhcHBlcihleGVjLCBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkp
OworICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBjcmVhdGVKU1NWR1dyYXBwZXIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkpOwogI2VuZGlmCiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9X
UkFQUEVSKGV4ZWMsIEVsZW1lbnQsIG5vZGUpOworICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEVsZW1lbnQsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6
Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgQXR0
ciwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBBdHRyLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX05PREVfV1JBUFBFUihleGVjLCBUZXh0LCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFRleHQsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9O
T0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMs
IENEQVRBU2VjdGlvbiwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9O
T0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDREFUQVNlY3Rpb24sIG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6Ci0gICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgRW50aXR5LCBub2Rl
KTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsIEVudGl0eSwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6Ci0gICAgICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgbm9kZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6Ci0gICAgICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgQ29tbWVudCwgbm9kZSk7
CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBDb21tZW50LCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRv
IGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1bWVudCBkaWN0aW9uYXJ5
Ci0gICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5v
ZGUpKTsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQ
RV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4
ZWMsIERvY3VtZW50VHlwZSwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9OT0RFX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBEb2N1bWVudFR5cGUsIG5vZGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKLSAg
ICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBOb3RhdGlv
biwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBOb3RhdGlvbiwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgotICAgICAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIERvY3VtZW50RnJhZ21lbnQs
IG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4
ZWMsIGdsb2JhbE9iamVjdCwgRG9jdW1lbnRGcmFnbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgRW50aXR5UmVmZXJl
bmNlLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX05PREVfV1JBUFBF
UihleGVjLCBnbG9iYWxPYmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX05PREVfV1JBUFBFUihleGVjLCBOb2RlLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIE5vZGUsIG5vZGUp
OwogICAgIH0KIAogICAgIHJldHVybiB3cmFwcGVyOyAgICAKIH0KICAgICAKLUpTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIG5vZGUpCitKU1ZhbHVlIHRvSlNO
ZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCAgTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc051
bGwoKTsKICAgICAKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihleGVjLCBub2RlKTsKKyAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogfQogICAgIAot
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgTm9kZSogbm9kZSkKK0pTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vZGUqIG5v
ZGUpCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CkBAIC0yNjYs
NyArMjY2LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgTm9kZSogbm9kZSkKICAg
ICBpZiAod3JhcHBlcikKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcihleGVjLCBub2RlKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihleGVjLCBn
bG9iYWxPYmplY3QsIG5vZGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggZjVkNGQ1Yy4u
MjUxNzMzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25k
aXRpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcApAQCAtNjEsNyArNjEsOSBAQCBzaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2Vw
dE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpCiAgICAgICAgIHJl
dHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwogCiAgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGZpbHRlck5vZGUpKTsKKyAgICAv
LyBGSVhNRTogVGhlIG5vZGUgc2hvdWxkIGhhdmUgdGhlIHByb3RvdHlwZSBjaGFpbiB0aGF0IGNh
bWUgZnJvbSBpdHMgZG9jdW1lbnQsIG5vdAorICAgIC8vIHdoYXRldmVyIHByb3RvdHlwZSBjaGFp
biBtaWdodCBiZSBvbiB0aGUgd2luZG93IHRoaXMgZmlsdGVyIGNhbWUgZnJvbS4KKyAgICBhcmdz
LmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhl
YyksIGZpbHRlck5vZGUpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXggZWNjMTJkNS4uYTQ4YTU5ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIEpTTm9kZUZpbHRlcjo6bWFyaygpCiB7CiAgICAgaW1w
bCgpLT5tYXJrKCk7Ci0gICAgRE9NT2JqZWN0OjptYXJrKCk7CisgICAgQmFzZTo6bWFyaygpOwog
fQogCiBKU1ZhbHVlIEpTTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUl0ZXJhdG9yQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JD
dXN0b20uY3BwCmluZGV4IDhmZmY4MmUuLjQ0MzIwMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCkBAIC0zNCw3ICszNCw3IEBAIHZvaWQgSlNOb2Rl
SXRlcmF0b3I6Om1hcmsoKQogICAgIGlmIChOb2RlRmlsdGVyKiBmaWx0ZXIgPSBtX2ltcGwtPmZp
bHRlcigpKQogICAgICAgICBmaWx0ZXItPm1hcmsoKTsKICAgICAKLSAgICBET01PYmplY3Q6Om1h
cmsoKTsKKyAgICBCYXNlOjptYXJrKCk7CiB9CiAKIEpTVmFsdWUgSlNOb2RlSXRlcmF0b3I6Om5l
eHROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC00OSw3ICs0OSw5IEBA
IEpTVmFsdWUgSlNOb2RlSXRlcmF0b3I6Om5leHROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
QXJnTGlzdCYpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIAotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUuZ2V0KCkpOworICAg
IC8vIEZJWE1FOiBnbG9iYWxPYmplY3QoKSBpcyBvbmx5IGNvcnJlY3QsIGFzc3VtaW5nIHlvdSBj
YW4gbmV2ZXIgbWFrZSBhIE5vZGVJdGVyYXRvciBmcm9tCisgICAgLy8gb25lIGZyYW1lIHdoaWNo
IGl0ZXJhdGVzIG92ZXIgbm9kZXMgaW4gYW5vdGhlciBmcmFtZS4gIEkgYmVsaWV2ZSB0aGlzIG1h
eSBhY3R1YWxseSBiZSBwb3NzaWJsZS4KKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QoKSwgbm9kZS5nZXQoKSk7CiB9CiAKIEpTVmFsdWUgSlNOb2RlSXRlcmF0b3I6OnByZXZpb3Vz
Tm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNjQsNyArNjYsOSBAQCBK
U1ZhbHVlIEpTTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JikKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZS5nZXQoKSk7Cisg
ICAgLy8gRklYTUU6IGdsb2JhbE9iamVjdCgpIGlzIG9ubHkgY29ycmVjdCwgYXNzdW1pbmcgeW91
IGNhbiBuZXZlciBtYWtlIGEgTm9kZUl0ZXJhdG9yIGZyb20KKyAgICAvLyBvbmUgZnJhbWUgd2hp
Y2ggaXRlcmF0ZXMgb3ZlciBub2RlcyBpbiBhbm90aGVyIGZyYW1lLiAgSSBiZWxpZXZlIHRoaXMg
bWF5IGFjdHVhbGx5IGJlIHBvc3NpYmxlLgorICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCgpLCBub2RlLmdldCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlz
dEN1c3RvbS5jcHAKaW5kZXggMjgyMWQwMS4uMGIzYjQ1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUxpc3RDdXN0b20uY3BwCkBAIC00Miw3ICs0Miw4IEBAIHN0YXRpYyBKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbE5vZGVMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0
aW9uLCBKCiAgICAgdW5zaWduZWQgaW5kZXggPSBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLnRv
VUludDMyKCZvayk7CiAgICAgaWYgKCFvaykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8SlNOb2RlTGlzdCo+KGZ1bmN0aW9u
KS0+aW1wbCgpLT5pdGVtKGluZGV4KSk7CisgICAgSlNOb2RlTGlzdCoganNOb2RlTGlzdCA9IHN0
YXRpY19jYXN0PEpTTm9kZUxpc3QqPihmdW5jdGlvbik7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
anNOb2RlTGlzdC0+Z2xvYmFsT2JqZWN0KCksIGpzTm9kZUxpc3QtPmltcGwoKS0+aXRlbShpbmRl
eCkpOwogfQogCiBDYWxsVHlwZSBKU05vZGVMaXN0OjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2Fs
bERhdGEpCkBAIC01OSw3ICs2MCw3IEBAIGJvb2wgSlNOb2RlTGlzdDo6Y2FuR2V0SXRlbXNGb3JO
YW1lKEV4ZWNTdGF0ZSosIE5vZGVMaXN0KiBpbXBsLCBjb25zdCBJZGVudGlmaWVyCiBKU1ZhbHVl
IEpTTm9kZUxpc3Q6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU05vZGVM
aXN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOb2RlTGlzdCo+KGFzT2JqZWN0KHNsb3Quc2xv
dEJhc2UoKSkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRlbVdp
dGhOYW1lKHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmds
b2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNP
cHRpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMGUwZTA4Ny4uMmI4YmQ1ZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC00Myw3ICs0Myw4IEBAIEpT
T3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvCiAKIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0SFRNTE9w
dGlvbkVsZW1lbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0
IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8
SlNPcHRpb25Db25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKS0+ZG9jdW1lbnQoKTsKKyAgICBKU09w
dGlvbkNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNPcHRpb25Db25z
dHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBqc0NvbnN0
cnVjdG9yLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIFJlZmVyZW5jZUVycm9yLCAiT3B0aW9uIGNvbnN0cnVjdG9yIGFzc29j
aWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKTsKIApAQCAtNjcsNyArNjgsNyBAQCBzdGF0
aWMgSlNPYmplY3QqIGNvbnN0cnVjdEhUTUxPcHRpb25FbGVtZW50KEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGNvbnN0cnVjdAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1
cm4gYXNPYmplY3QodG9KUyhleGVjLCBlbGVtZW50LnJlbGVhc2UoKSkpOworICAgIHJldHVybiBh
c09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBlbGVtZW50
LnJlbGVhc2UoKSkpOwogfQogCiBDb25zdHJ1Y3RUeXBlIEpTT3B0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5BcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwCmluZGV4IDgxZDQyOTUuLmMxYTg0ZTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5BcnJheUN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkFycmF5Q3VzdG9tLmNwcApAQCAtMzYs
NyArMzYsNyBAQCBib29sIEpTUGx1Z2luQXJyYXk6OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3Rh
dGUqLCBQbHVnaW5BcnJheSogcGx1Z2luQXJyYXksIGNvbgogSlNWYWx1ZSBKU1BsdWdpbkFycmF5
OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNQbHVnaW5BcnJheSogdGhp
c09iaiA9IHN0YXRpY19jYXN0PEpTUGx1Z2luQXJyYXkqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPm5hbWVkSXRlbShw
cm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmpl
Y3QoKSwgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkN1c3RvbS5jcHAK
aW5kZXggNTU1ZGQ5ZS4uNDZlNGM4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkN1c3Rv
bS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgYm9vbCBKU1BsdWdpbjo6Y2FuR2V0SXRlbXNGb3JOYW1l
KEV4ZWNTdGF0ZSosIFBsdWdpbiogcGx1Z2luLCBjb25zdCBJZGVudGlmaWVyJgogSlNWYWx1ZSBK
U1BsdWdpbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTUGx1Z2luKiB0
aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNQbHVnaW4qPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkp
KTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPm5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3Qo
KSwgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1l
bnRJbnN0YW5jZUN1c3RvbS5jcHAKaW5kZXggMjkyMjc0MC4uYjc3NjZjYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTU1ZHRWxlbWVudEluc3Rh
bmNlOjptYXJrKCkKIHsKLSAgICBET01PYmplY3Q6Om1hcmsoKTsKKyAgICBCYXNlOjptYXJrKCk7
CiAKICAgICAvLyBNYXJrIHRoZSB3cmFwcGVyIGZvciBvdXIgY29ycmVzcG9uZGluZyBlbGVtZW50
LCBzbyBpdCBjYW4gbWFyayBpdHMgZXZlbnQgaGFuZGxlcnMuCiAgICAgSlNOb2RlKiBjb3JyZXNw
b25kaW5nV3JhcHBlciA9IGdldENhY2hlZERPTU5vZGVXcmFwcGVyKGltcGwoKS0+Y29ycmVzcG9u
ZGluZ0VsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgaW1wbCgpLT5jb3JyZXNwb25kaW5nRWxlbWVudCgp
KTsKQEAgLTc1LDEzICs3NSwxMyBAQCB2b2lkIEpTU1ZHRWxlbWVudEluc3RhbmNlOjpwdXNoRXZl
bnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbiYpIGNvbnN0CiB7CiB9CiAKLUpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBTVkdFbGVtZW50SW5zdGFuY2Uq
IG9iamVjdCkKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTVkdFbGVtZW50SW5zdGFuY2UqIG9iamVjdCkKIHsK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldERPTU9iamVjdFdyYXBwZXI8SlNTVkdFbGVtZW50SW5z
dGFuY2U+KGV4ZWMsIG9iamVjdCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRET01PYmplY3RX
cmFwcGVyPEpTU1ZHRWxlbWVudEluc3RhbmNlPihleGVjLCBnbG9iYWxPYmplY3QsIG9iamVjdCk7
CiAKICAgICAvLyBFbnN1cmUgdGhhdCBvdXIgY29ycmVzcG9uZGluZyBlbGVtZW50IGhhcyBhIEph
dmFTY3JpcHQgd3JhcHBlciB0byBrZWVwIGl0cyBldmVudCBoYW5kbGVycyBhbGl2ZS4KICAgICBp
ZiAob2JqZWN0KQotICAgICAgICB0b0pTKGV4ZWMsIG9iamVjdC0+Y29ycmVzcG9uZGluZ0VsZW1l
bnQoKSk7CisgICAgICAgIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QtPmNvcnJlc3Bv
bmRpbmdFbGVtZW50KCkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKaW5kZXggZmMxZTI2Ni4uMzUzOTBiMiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogSlNWYWx1ZSBKU1NWR01hdHJpeDo6aW52ZXJzZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogewogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGlt
cCgqaW1wbCgpKTsKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBKU1NWR1N0
YXRpY1BPRFR5cGVXcmFwcGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6Y3JlYXRlKGltcC5pbnZl
cnNlKCkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQg
PSB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpT
U1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpjcmVhdGUoaW1w
LmludmVyc2UoKSkuZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7CiAKICAgICBpZiAoIWltcC5pc0lu
dmVydGlibGUoKSkKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFNWR0V4Y2VwdGlvbjo6
U1ZHX01BVFJJWF9OT1RfSU5WRVJUQUJMRSk7CkBAIC00Nyw3ICs0Nyw3IEBAIEpTVmFsdWUgSlNT
VkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogICAgIGZsb2F0IHggPSBhcmdzLmF0KDApLnRvRmxvYXQoZXhlYyk7CiAgICAgZmxv
YXQgeSA9IGFyZ3MuYXQoMSkudG9GbG9hdChleGVjKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1
bHQgPSB0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8VHJhbnNmb3JtYXRpb25N
YXRyaXg+OjpjcmVhdGUoaW1wLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSkpLmdldCgpLCBtX2NvbnRl
eHQuZ2V0KCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGRlcHJlY2F0
ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBw
ZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpjcmVhdGUoaW1wLnJvdGF0ZUZyb21WZWN0b3IoeCwg
eSkpLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwogCiAgICAgaWYgKHggPT0gMC4wIHx8IHkgPT0g
MC4wKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgU1ZHRXhjZXB0aW9uOjpTVkdfSU5W
QUxJRF9WQUxVRV9FUlIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1Bh
dGhTZWdDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20u
Y3BwCmluZGV4IGNiNDY4N2MuLjQyZmE4NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZH
UGF0aFNlZ0N1c3RvbS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBT
VkdQYXRoU2VnKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2Vn
KiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpCiB7CiAgICAgaWYgKCFvYmplY3QpCiAgICAg
ICAgIHJldHVybiBqc051bGwoKTsKQEAgLTY5LDQ2ICs2OSw0NiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBTVkdQYXRoU2VnKiBvYmplY3QsIFNWR0VsZW1lbnQqIGNvbnRleHQpCiAK
ICAgICBzd2l0Y2ggKG9iamVjdC0+cGF0aFNlZ1R5cGUoKSkgewogICAgIGNhc2UgU1ZHUGF0aFNl
Zzo6UEFUSFNFR19DTE9TRVBBVEg6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdDbG9zZVBhdGgsIG9iamVjdCwgY29udGV4dCk7CisgICAg
ICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwg
U1ZHUGF0aFNlZ0Nsb3NlUGF0aCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhT
ZWc6OlBBVEhTRUdfTU9WRVRPX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNU
X1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ01vdmV0b0Ficywgb2JqZWN0LCBjb250ZXh0KTsKKyAg
ICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBTVkdQYXRoU2VnTW92ZXRvQWJzLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19NT1ZFVE9fUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpF
Q1RfV1JBUFBFUihleGVjLCBTVkdQYXRoU2VnTW92ZXRvUmVsLCBvYmplY3QsIGNvbnRleHQpOwor
ICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmpl
Y3QsIFNWR1BhdGhTZWdNb3ZldG9SZWwsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQ
YXRoU2VnOjpQQVRIU0VHX0xJTkVUT19BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdMaW5ldG9BYnMsIG9iamVjdCwgY29udGV4dCk7
CisgICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgU1ZHUGF0aFNlZ0xpbmV0b0Ficywgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNW
R1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX1JFTDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdf
T0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0xpbmV0b1JlbCwgb2JqZWN0LCBjb250ZXh0
KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBTVkdQYXRoU2VnTGluZXRvUmVsLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2Ug
U1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzoKLSAgICAgICAgcmV0dXJuIENS
RUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficywg
b2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLCBvYmplY3Qs
IGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklDX1JF
TDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENS
RUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFU
SFNFR19DVVJWRVRPX1FVQURSQVRJQ19BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLCBvYmplY3Qs
IGNvbnRleHQpOworICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLCBvYmplY3QsIGNv
bnRleHQpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19S
RUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLCBvYmplY3QsIGNvbnRleHQpOworICAgICAgICByZXR1
cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLCBvYmplY3QsIGNvbnRleHQpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19BUkNfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1Rf
V1JBUFBFUihleGVjLCBTVkdQYXRoU2VnQXJjQWJzLCBvYmplY3QsIGNvbnRleHQpOworICAgICAg
ICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNW
R1BhdGhTZWdBcmNBYnMsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX0FSQ19SRUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVS
KGV4ZWMsIFNWR1BhdGhTZWdBcmNSZWwsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVy
biBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNl
Z0FyY1JlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdf
TElORVRPX0hPUklaT05UQUxfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1Rf
V1JBUFBFUihleGVjLCBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicywgb2JqZWN0LCBjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicywgb2JqZWN0LCBjb250ZXh0
KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMOgot
ICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbFJlbCwgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIENS
RUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbFJlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6
OlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdf
T0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLCBvYmplY3Qs
IGNvbnRleHQpOworICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicywgb2JqZWN0LCBjb250
ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDoK
LSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLCBvYmplY3QsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gQ1JF
QVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbFJlbCwgb2JqZWN0LCBjb250ZXh0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBB
VEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NW
R19PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLCBv
YmplY3QsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBF
UihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMsIG9i
amVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VC
SUNfU01PT1RIX1JFTDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIo
ZXhlYywgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCwgb2JqZWN0LCBjb250ZXh0KTsK
KyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLCBvYmplY3QsIGNvbnRleHQpOwog
ICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJT
OgotICAgICAgICByZXR1cm4gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicywgb2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAg
cmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicywgb2JqZWN0LCBjb250ZXh0KTsKICAgICBj
YXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTDoKLSAg
ICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwsIG9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHJldHVy
biBDUkVBVEVfU1ZHX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwsIG9iamVjdCwgY29udGV4dCk7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX1VOS05PV046CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHUGF0aFNlZywgb2JqZWN0LCBjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBTVkdQYXRoU2VnLCBvYmplY3QsIGNvbnRleHQpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAKaW5kZXggYjZm
YzExNi4uYjcxZjNhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhT
ZWdMaXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xp
c3RDdXN0b20uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEpTVmFsdWUgSlNTVkdQYXRoU2VnTGlzdDo6
aW5pdGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKICAgICBT
VkdQYXRoU2VnKiBvYmogPSBXVEY6OmdldFB0cihpbXAtPmluaXRpYWxpemUobmV3SXRlbSwgZWMp
KTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaiwgbV9jb250ZXh0
LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVk
R2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBvYmosIG1fY29udGV4dC5nZXQoKSk7CiAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+c3ZnQXR0cmli
dXRlQ2hhbmdlZChpbXAtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAKQEAgLTc4LDcg
Kzc4LDcgQEAgSlNWYWx1ZSBKU1NWR1BhdGhTZWdMaXN0OjpnZXRJdGVtKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICBTVkdQYXRoU2VnTGlzdCogaW1wID0gc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOwogICAgIFNWR1BhdGhTZWcqIG9iaiA9IFdU
Rjo6Z2V0UHRyKGltcC0+Z2V0SXRlbShpbmRleCwgZWMpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSBy
ZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaiwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0ID0gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBl
KGV4ZWMpLCBvYmosIG1fY29udGV4dC5nZXQoKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IGVjKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtOTcsNyArOTcsNyBAQCBKU1ZhbHVlIEpT
U1ZHUGF0aFNlZ0xpc3Q6Omluc2VydEl0ZW1CZWZvcmUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JiBhcmdzKQogCiAgICAgU1ZHUGF0aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdMaXN0Kj4oaW1wbCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pT
KGV4ZWMsIFdURjo6Z2V0UHRyKGltcC0+aW5zZXJ0SXRlbUJlZm9yZShuZXdJdGVtLCBpbmRleCwg
ZWMpKSwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhl
eGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBXVEY6OmdldFB0
cihpbXAtPmluc2VydEl0ZW1CZWZvcmUobmV3SXRlbSwgaW5kZXgsIGVjKSksIG1fY29udGV4dC5n
ZXQoKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAgIG1fY29udGV4dC0+
c3ZnQXR0cmlidXRlQ2hhbmdlZChpbXAtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOyAgICAK
QEAgLTExOCw3ICsxMTgsNyBAQCBKU1ZhbHVlIEpTU1ZHUGF0aFNlZ0xpc3Q6OnJlcGxhY2VJdGVt
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogICAgIFNWR1BhdGhTZWdM
aXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdCo+KGltcGwoKSk7CiAKLSAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPnJlcGxhY2VJ
dGVtKG5ld0l0ZW0sIGluZGV4LCBlYykpLCBtX2NvbnRleHQuZ2V0KCkpOworICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5
cGUoZXhlYyksIFdURjo6Z2V0UHRyKGltcC0+cmVwbGFjZUl0ZW0obmV3SXRlbSwgaW5kZXgsIGVj
KSksIG1fY29udGV4dC5nZXQoKSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAog
ICAgIG1fY29udGV4dC0+c3ZnQXR0cmlidXRlQ2hhbmdlZChpbXAtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVOYW1lKCkpOyAgICAKQEAgLTE0MCw3ICsxNDAsNyBAQCBKU1ZhbHVlIEpTU1ZHUGF0aFNlZ0xp
c3Q6OnJlbW92ZUl0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiAg
ICAgUmVmUHRyPFNWR1BhdGhTZWc+IG9iaihpbXAtPnJlbW92ZUl0ZW0oaW5kZXgsIGVjKSk7CiAK
LSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBvYmouZ2V0KCksIG1fY29udGV4
dC5nZXQoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqLmdldCgpLCBtX2NvbnRleHQuZ2V0
KCkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAKICAgICBtX2NvbnRleHQtPnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoaW1wLT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsgICAgCkBA
IC0xNTQsNyArMTU0LDcgQEAgSlNWYWx1ZSBKU1NWR1BhdGhTZWdMaXN0OjphcHBlbmRJdGVtKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogICAgIFNWR1BhdGhTZWdMaXN0
KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdCo+KGltcGwoKSk7CiAKLSAgICBKU0M6
OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBXVEY6OmdldFB0cihpbXAtPmFwcGVuZEl0ZW0o
bmV3SXRlbSwgZWMpKSwgbV9jb250ZXh0LmdldCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0
ID0gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBX
VEY6OmdldFB0cihpbXAtPmFwcGVuZEl0ZW0obmV3SXRlbSwgZWMpKSwgbV9jb250ZXh0LmdldCgp
KTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogCiAgICAgbV9jb250ZXh0LT5zdmdB
dHRyaWJ1dGVDaGFuZ2VkKGltcC0+YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSk7ICAgIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcAppbmRleCBhMThjMmEy
Li4xOTY5ZmUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9t
LmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgSlNWYWx1ZSBmaW5pc2hHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxlbWVudCogY29udAogICAgICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JG
b3JMaXN0PEZsb2F0UG9pbnQ+OjpjcmVhdGUoaXRlbS5nZXQoKSwgbGlzdC0+YXNzb2NpYXRlZEF0
dHJpYnV0ZU5hbWUoKSkuZ2V0KCksIGNvbnRleHQpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGRl
cHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHUE9EVHlwZVdyYXBw
ZXJDcmVhdG9yRm9yTGlzdDxGbG9hdFBvaW50Pjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFz
c29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpLmdldCgpLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIEpT
VmFsdWUgZmluaXNoU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYgZWMsIFNW
R0VsZW1lbnQqIGNvbnRleHQsIFNWR1BvaW50TGlzdCogbGlzdCwgUGFzc1JlZlB0cjxQT0RMaXN0
SXRlbSA+IGl0ZW0pCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaFNldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVkdFbGVtZW50KiBjb250CiAg
ICAgfQogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSBsaXN0LT5hc3Nv
Y2lhdGVkQXR0cmlidXRlTmFtZSgpOwogICAgIGNvbnRleHQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
YXR0cmlidXRlTmFtZSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBl
ckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQ+OjpjcmVhdGUoaXRlbS5nZXQoKSwgYXR0cmlidXRl
TmFtZSkuZ2V0KCksIGNvbnRleHQpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRH
bG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9y
Rm9yTGlzdDxGbG9hdFBvaW50Pjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGF0dHJpYnV0ZU5hbWUpLmdl
dCgpLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIEpTVmFsdWUgZmluaXNoU2V0dGVyUmVhZE9ubHlS
ZXN1bHQoRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlJiBlYywgU1ZHRWxlbWVudCogY29u
dGV4dCwgU1ZHUG9pbnRMaXN0KiBsaXN0LCBQYXNzUmVmUHRyPFBPRExpc3RJdGVtPiBpdGVtKQpA
QCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgSlNWYWx1ZSBmaW5pc2hTZXR0ZXJSZWFkT25seVJlc3Vs
dChFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVgogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAgICAgY29udGV4dC0+c3ZnQXR0cmlidXRlQ2hhbmdlZChs
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEZsb2F0UG9pbnQ+OjpjcmVhdGUoKml0ZW0pLmdldCgp
LCBjb250ZXh0KTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0
Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPEZsb2F0UG9pbnQ+
OjpjcmVhdGUoKml0ZW0pLmdldCgpLCBjb250ZXh0KTsKIH0KIAogSlNWYWx1ZSBKU1NWR1BvaW50
TGlzdDo6Y2xlYXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTVkdUcmFuc2Zvcm1MaXN0Q3VzdG9tLmNwcAppbmRleCA1OGIyNWFk
Li4xYTkxMTBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHVHJhbnNmb3Jt
TGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1RyYW5zZm9ybUxp
c3RDdXN0b20uY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZpbmlzaEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVkdFbGVtZW50KiBjb250CiAg
ICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9KUyhleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVy
Q3JlYXRvckZvckxpc3Q8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKGl0ZW0uZ2V0KCksIGxpc3QtPmFz
c29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpLmdldCgpLCBjb250ZXh0KTsKKyAgICByZXR1cm4gdG9K
UyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBKU1NWR1BP
RFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q8U1ZHVHJhbnNmb3JtPjo6Y3JlYXRlKGl0ZW0uZ2V0
KCksIGxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpLmdldCgpLCBjb250ZXh0KTsKIH0K
IAogc3RhdGljIEpTVmFsdWUgZmluaXNoU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9u
Q29kZSYgZWMsIFNWR0VsZW1lbnQqIGNvbnRleHQsIFNWR1RyYW5zZm9ybUxpc3QqIGxpc3QsIFBh
c3NSZWZQdHI8UE9ETGlzdEl0ZW0+IGl0ZW0pCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBKU1Zh
bHVlIGZpbmlzaFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTVkdF
bGVtZW50KiBjb250CiAgICAgfQogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUgPSBsaXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpOwogICAgIGNvbnRleHQtPnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgSlNT
VkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVt
LmdldCgpLCBhdHRyaWJ1dGVOYW1lKS5nZXQoKSwgY29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgSlNTVkdQT0RU
eXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PFNWR1RyYW5zZm9ybT46OmNyZWF0ZShpdGVtLmdldCgp
LCBhdHRyaWJ1dGVOYW1lKS5nZXQoKSwgY29udGV4dCk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGZp
bmlzaFNldHRlclJlYWRPbmx5UmVzdWx0KEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYg
ZWMsIFNWR0VsZW1lbnQqIGNvbnRleHQsIFNWR1RyYW5zZm9ybUxpc3QqIGxpc3QsIFBhc3NSZWZQ
dHI8UE9ETGlzdEl0ZW0+IGl0ZW0pCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGZp
bmlzaFNldHRlclJlYWRPbmx5UmVzdWx0KEV4ZWNTdGF0ZSogZXhlYywgRXhjZXB0aW9uQ29kZSYg
ZWMsIFNWCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KICAgICBjb250ZXh0
LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOwot
ICAgIHJldHVybiB0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8U1ZHVHJhbnNm
b3JtPjo6Y3JlYXRlKCppdGVtKS5nZXQoKSwgY29udGV4dCk7CisgICAgcmV0dXJuIHRvSlMoZXhl
YywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgSlNTVkdTdGF0aWNQ
T0RUeXBlV3JhcHBlcjxTVkdUcmFuc2Zvcm0+OjpjcmVhdGUoKml0ZW0pLmdldCgpLCBjb250ZXh0
KTsKIH0KIAogSlNWYWx1ZSBKU1NWR1RyYW5zZm9ybUxpc3Q6OmNsZWFyKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5
bGVTaGVldEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3Rv
bS5jcHAKaW5kZXggZjgxNDZiZC4uMDBkYWNlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNT
dHlsZVNoZWV0Q3VzdG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQog
ewogICAgIGlmICghc3R5bGVTaGVldCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNDUs
OSArNDUsOSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0KQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAgIGlmIChzdHlsZVNoZWV0LT5p
c0NTU1N0eWxlU2hlZXQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dS
QVBQRVIoZXhlYywgQ1NTU3R5bGVTaGVldCwgc3R5bGVTaGVldCk7CisgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTU3R5bGVT
aGVldCwgc3R5bGVTaGVldCk7CiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBTdHlsZVNoZWV0LCBzdHlsZVNoZWV0KTsKKyAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBT
dHlsZVNoZWV0LCBzdHlsZVNoZWV0KTsKIAogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKaW5kZXggMWRhNjQx
OC4uMzg4NzcwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRM
aXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RD
dXN0b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIEpTVmFsdWUgSlNTdHlsZVNoZWV0TGlzdDo6bmFt
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAg
SlNTdHlsZVNoZWV0TGlzdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTU3R5bGVTaGVldExpc3Qq
Pihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsKICAgICBIVE1MU3R5bGVFbGVtZW50KiBlbGVt
ZW50ID0gdGhpc09iai0+aW1wbCgpLT5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lKTsKICAgICBB
U1NFUlQoZWxlbWVudCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgZWxlbWVudC0+c2hlZXQoKSk7
CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIGVsZW1lbnQt
PnNoZWV0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
VGV4dEN1c3RvbS5jcHAKaW5kZXggOWU2NjgyNi4uMmRjODg2ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNUZXh0Q3VzdG9tLmNwcApAQCAtMzIsMTIgKzMyLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNT
dGF0ZSogZXhlYywgVGV4dCogdGV4dCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRleHQqIHRleHQpCiB7
CiAgICAgaWYgKCF0ZXh0KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgCi0gICAgcmV0
dXJuIENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIFRleHQsIHRleHQpOworICAgIHJldHVy
biBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFRleHQsIHRleHQp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJl
ZVdhbGtlckN1c3RvbS5jcHAKaW5kZXggNjM2OTAxNy4uYmExMjIzNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcApAQCAtMzQsNyArMzQsNyBAQCB2b2lkIEpT
VHJlZVdhbGtlcjo6bWFyaygpCiAgICAgaWYgKE5vZGVGaWx0ZXIqIGZpbHRlciA9IG1faW1wbC0+
ZmlsdGVyKCkpCiAgICAgICAgIGZpbHRlci0+bWFyaygpOwogICAgIAotICAgIERPTU9iamVjdDo6
bWFyaygpOworICAgIEJhc2U6Om1hcmsoKTsKIH0KICAgICAKIEpTVmFsdWUgSlNUcmVlV2Fsa2Vy
OjpwYXJlbnROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC00Miw3ICs0
Miw3IEBAIEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+cGFyZW50Tm9kZShleGVj
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAKIEpTVmFsdWUgSlNUcmVlV2Fsa2Vy
OjpmaXJzdENoaWxkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC01MCw3ICs1
MCw3IEBAIEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+Zmlyc3RDaGlsZChleGVj
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAKIEpTVmFsdWUgSlNUcmVlV2Fsa2Vy
OjpsYXN0Q2hpbGQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKQEAgLTU4LDcgKzU4
LDcgQEAgSlNWYWx1ZSBKU1RyZWVXYWxrZXI6Omxhc3RDaGlsZChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPmxhc3RDaGlsZChleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAKIEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpu
ZXh0U2libGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNjYsNyArNjYs
NyBAQCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBBcmdMaXN0JikKICAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5uZXh0U2libGluZyhleGVj
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAKIEpTVmFsdWUgSlNUcmVlV2Fsa2Vy
OjpwcmV2aW91c1NpYmxpbmcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKQEAgLTc0
LDcgKzc0LDcgQEAgSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyhFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPnByZXZp
b3VzU2libGluZyhleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAKIEpTVmFs
dWUgSlNUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JikKQEAgLTgyLDcgKzgyLDcgQEAgSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnByZXZpb3VzTm9k
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBs
KCktPnByZXZpb3VzTm9kZShleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KICAgICAK
IEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpuZXh0Tm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFy
Z0xpc3QmKQpAQCAtOTAsNyArOTAsNyBAQCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6bmV4dE5vZGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKICAgICBOb2RlKiBub2RlID0gaW1wbCgp
LT5uZXh0Tm9kZShleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZjBhMmE5Yy4uYmMwNTI1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCkBAIC00Miw4ICs0Miw5IEBAIEpTV2Vi
S2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6OkpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPCiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsK
IH0KIAotc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXZWJLaXRDU1NNYXRyaXgoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCosIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitzdGF0aWMgSlNPYmplY3Qq
IGNvbnN0cnVjdFdlYktpdENTU01hdHJpeChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKKyAgICBKU1dlYktpdENTU01hdHJpeENv
bnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKTsKICAgICBTdHJpbmcgczsKICAgICBpZiAoYXJncy5z
aXplKCkgPj0gMSkKICAgICAgICAgcyA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyk7CkBAIC01
MSw3ICs1Miw3IEBAIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0V2ViS2l0Q1NTTWF0cml4KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgUmVmUHRyPFdlYktpdENTU01hdHJpeD4gbWF0cml4ID0gV2ViS2l0Q1NTTWF0
cml4OjpjcmVhdGUocywgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAg
cmV0dXJuIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgV2ViS2l0Q1NTTWF0cml4LCBt
YXRyaXguZ2V0KCkpOworICAgIHJldHVybiBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMs
IGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBXZWJLaXRDU1NNYXRyaXgsIG1hdHJpeC5n
ZXQoKSk7CiB9CiAKIENvbnN0cnVjdFR5cGUgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGNkOGUz
YjMuLjI3Y2MxZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRD
b25zdHJ1Y3Rvci5jcHAKQEAgLTQzLDggKzQzLDEwIEBAIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
cjo6SlNXZWJLaXRQb2ludENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4
ZWMsIDIpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKIH0KIAotc3RhdGljIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RXZWJLaXRQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgY29u
c3QgQXJnTGlzdCYgYXJncykKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0V2ViS2l0UG9pbnQo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmIGFy
Z3MpCiB7CisgICAgSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3Rh
dGljX2Nhc3Q8SlNXZWJLaXRQb2ludENvbnN0cnVjdG9yKj4oY29uc3RydWN0b3IpOworCiAgICAg
ZmxvYXQgeCA9IDA7CiAgICAgZmxvYXQgeSA9IDA7CiAgICAgaWYgKGFyZ3Muc2l6ZSgpID49IDIp
IHsKQEAgLTU1LDcgKzU3LDcgQEAgc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3RXZWJLaXRQb2lu
dChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYKICAgICAgICAgaWYg
KGlzbmFuKHkpKQogICAgICAgICAgICAgeSA9IDA7CiAgICAgfQotICAgIHJldHVybiBhc09iamVj
dCh0b0pTKGV4ZWMsIFdlYktpdFBvaW50OjpjcmVhdGUoeCwgeSkpKTsKKyAgICByZXR1cm4gYXNP
YmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0UG9p
bnQ6OmNyZWF0ZSh4LCB5KSkpOwogfQogCiBKU0M6OkNvbnN0cnVjdFR5cGUgSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYgY29uc3Ry
dWN0RGF0YSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1
Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IGU1YTU1NmYuLjZkOTA0ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnN0cnVjdG9yLmNwcApAQCAtNDgsOCArNDgsMTAgQEAgSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6SlNX
b3JrZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG8K
ICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhl
YywgMSksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwogfQogCi1zdGF0aWMgSlNPYmpl
Y3QqIGNvbnN0cnVjdFdvcmtlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgY29uc3QgQXJn
TGlzdCYgYXJncykKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0V29ya2VyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogeworICAg
IEpTV29ya2VyQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dvcmtl
ckNvbnN0cnVjdG9yKj4oY29uc3RydWN0b3IpOworCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID09IDAp
CiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFN5bnRheEVycm9yLCAiTm90IGVub3Vn
aCBhcmd1bWVudHMiKTsKIApAQCAtNTcsMTEgKzU5LDEyIEBAIHN0YXRpYyBKU09iamVjdCogY29u
c3RydWN0V29ya2VyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdMaXN0JiBh
cmdzCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gMDsKIAor
ICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgdXNlIHRoZSBsZXhpY2FsIGdsb2JhbCBvYmplY3QgaGVy
ZT8KICAgICBET01XaW5kb3cqIHdpbmRvdyA9IGFzSlNET01XaW5kb3coZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKS0+aW1wbCgpOwotICAgIAorCiAgICAgUmVmUHRyPFdvcmtlcj4gd29ya2Vy
ID0gV29ya2VyOjpjcmVhdGUoc2NyaXB0VVJMLCB3aW5kb3ctPmRvY3VtZW50KCkpOwogCi0gICAg
cmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgd29ya2VyLnJlbGVhc2UoKSkpOworICAgIHJldHVy
biBhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCB3b3Jr
ZXIucmVsZWFzZSgpKSk7CiB9CiAKIENvbnN0cnVjdFR5cGUgSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKaW5kZXggYzcxZjQ1Yi4uNWY4YTMx
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCkBAIC01
Nyw2ICs1NywxMSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU1dvcmtlckNvbnRleHRCYXNl
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gbV9pbXBsLmdldCgp
OwogfQogCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCos
IFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQpCit7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
d29ya2VyQ29udGV4dCk7Cit9CisKIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBXb3JrZXJDb250
ZXh0KiB3b3JrZXJDb250ZXh0KQogewogICAgIGlmICghd29ya2VyQ29udGV4dCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggZGNiYzVjMy4uMjEyMWJiMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKQEAgLTUyLDYgKzUy
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICAvLyBSZXR1cm5zIGEgSlNX
b3JrZXJDb250ZXh0IG9yIGpzTnVsbCgpCisgICAgLy8gQWx3YXlzIGlnbm9yZXMgdGhlIGV4ZWNT
dGF0ZSBhbmQgcGFzc2VkIGdsb2JhbE9iamVjdCwgV29ya2VyQ29udGV4dCBpcyBpdHNlbGYgYSBn
bG9iYWxPYmplY3QgYW5kIHdpbGwgYWx3YXlzIHVzZSBpdHMgb3duIHByb3RvdHlwZSBjaGFpbi4K
KyAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgV29ya2VyQ29udGV4dCopOwogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgV29ya2VyQ29udGV4dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
NmJmODk5MC4uYTY0NGM5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcApAQCAtNDAsMTIgKzQwLDEzIEBAIEpTWE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HCiAKIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0WE1MSHR0cFJlcXVlc3Qo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFyZ0xpc3QmKQog
ewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxKU1hN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IqPihjb25zdHJ1Y3RvciktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3Ig
PSBzdGF0aWNfY2FzdDxKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IqPihjb25zdHJ1Y3Rvcik7
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGV4ZWMsIFJlZmVyZW5jZUVycm9yLCAiWE1MSHR0cFJlcXVlc3QgY29uc3Ry
dWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIpOwogCiAgICAgUmVmUHRy
PFhNTEh0dHBSZXF1ZXN0PiB4bWxIdHRwUmVxdWVzdCA9IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUo
Y29udGV4dCk7Ci0gICAgcmV0dXJuIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgWE1M
SHR0cFJlcXVlc3QsIHhtbEh0dHBSZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgWE1M
SHR0cFJlcXVlc3QsIHhtbEh0dHBSZXF1ZXN0LmdldCgpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBK
U1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0
YSYgY29uc3RydWN0RGF0YSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9j
ZXNzb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNGZiMWU1ZC4uMDdmZWM3MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ3
LDkgKzQ3LDEwIEBAIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpKU1hTTFRQcm9jZXNzb3JD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvCiAgICAgcHV0RGlyZWN0KGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWFNMVFByb2Nlc3NvclByb3RvdHlwZTo6c2Vs
ZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKIH0KIAotc3RhdGljIEpTT2JqZWN0KiBjb25z
dHJ1Y3RYU0xUUHJvY2Vzc29yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBjb25zdCBBcmdM
aXN0JikKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0WFNMVFByb2Nlc3NvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgY29uc3QgQXJnTGlzdCYpCiB7Ci0gICAgcmV0
dXJuIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgWFNMVFByb2Nlc3NvciwgWFNMVFBy
b2Nlc3Nvcjo6Y3JlYXRlKCkuZ2V0KCkpOworICAgIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
KiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3Iq
Pihjb25zdHJ1Y3Rvcik7CisgICAgcmV0dXJuIENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhl
YywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFhTTFRQcm9jZXNzb3IsIFhTTFRQcm9j
ZXNzb3I6OmNyZWF0ZSgpLmdldCgpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3RE
YXRhKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCmlu
ZGV4IDAxZTUzYTYuLjg1ZDdiNTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
U0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFBy
b2Nlc3NvckN1c3RvbS5jcHAKQEAgLTYyLDI3ICs2MiwzNCBAQCBKU1ZhbHVlIEpTWFNMVFByb2Nl
c3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZwogewogICAgIEpTVmFsdWUgbm9kZVZhbCA9IGFyZ3MuYXQoMCk7CiAgICAgSlNWYWx1ZSBk
b2NWYWwgPSBhcmdzLmF0KDEpOwotICAgIGlmIChub2RlVmFsLmlzT2JqZWN0KCZKU05vZGU6OnNf
aW5mbykgJiYgZG9jVmFsLmlzT2JqZWN0KCZKU0RvY3VtZW50OjpzX2luZm8pKSB7Ci0gICAgICAg
IFdlYkNvcmU6Ok5vZGUqIG5vZGUgPSBzdGF0aWNfY2FzdDxKU05vZGUqPihhc09iamVjdChub2Rl
VmFsKSktPmltcGwoKTsKLSAgICAgICAgRG9jdW1lbnQqIGRvYyA9IHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4oc3RhdGljX2Nhc3Q8SlNEb2N1bWVudCo+KGFzT2JqZWN0KGRvY1ZhbCkpLT5pbXBsKCkp
OwotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpbXBsKCktPnRyYW5zZm9ybVRvRnJhZ21lbnQo
bm9kZSwgZG9jKS5nZXQoKSk7CisgICAgaWYgKCFub2RlVmFsLmlzT2JqZWN0KCZKU05vZGU6OnNf
aW5mbykgfHwgIWRvY1ZhbC5pc09iamVjdCgmSlNEb2N1bWVudDo6c19pbmZvKSkgeworICAgICAg
ICAvLyBUaHJvdyBleGNlcHRpb24/CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAg
IH0KLSAgICAvLyBUaHJvdyBleGNlcHRpb24/Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgICAgIAorICAgIE5vZGUqIHNvdXJjZU5vZGUgPSBzdGF0aWNfY2FzdDxKU05vZGUqPihhc09i
amVjdChub2RlVmFsKSktPmltcGwoKTsKKyAgICBKU0RvY3VtZW50KiBqc0Rlc3RpbmF0aW9uRG9j
ID0gc3RhdGljX2Nhc3Q8SlNEb2N1bWVudCo+KGFzT2JqZWN0KGRvY1ZhbCkpOworICAgIERvY3Vt
ZW50KiBkZXN0aW5hdGlvbkRvY3VtZW50ID0ganNEZXN0aW5hdGlvbkRvYy0+aW1wbCgpOworCisg
ICAgLy8gTk9URTogVGhhdCB3ZSdyZSBjYXJlZnVsIHRvIHVzZSB0aGUgcHJvdG90eXBlIGNoYWlu
IGZyb20gdGhlIHdpbmRvdyBvZiB0aGUgb3duZXIgZG9jdW1lbnQsIG5vdCBmcm9tIHdoYXRldmVy
IHdpbmRvdyBYTFNUUHJvY2Vzc29yIGNhbWUgZnJvbS4KKyAgICByZXR1cm4gdG9KUyhleGVjLCBq
c0Rlc3RpbmF0aW9uRG9jLT5nbG9iYWxPYmplY3QoKSwgaW1wbCgpLT50cmFuc2Zvcm1Ub0ZyYWdt
ZW50KHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uRG9jdW1lbnQpKTsKIH0KIAogSlNWYWx1ZSBKU1hT
TFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JiBhcmdzKQogewogICAgIEpTVmFsdWUgbm9kZVZhbCA9IGFyZ3MuYXQoMCk7Ci0gICAg
aWYgKG5vZGVWYWwuaXNPYmplY3QoJkpTTm9kZTo6c19pbmZvKSkgewotICAgICAgICBKU05vZGUq
IG5vZGUgPSBzdGF0aWNfY2FzdDxKU05vZGUqPihhc09iamVjdChub2RlVmFsKSk7Ci0gICAgICAg
IFJlZlB0cjxEb2N1bWVudD4gcmVzdWx0RG9jdW1lbnQgPSBpbXBsKCktPnRyYW5zZm9ybVRvRG9j
dW1lbnQobm9kZS0+aW1wbCgpKTsKLSAgICAgICAgaWYgKHJlc3VsdERvY3VtZW50KQotICAgICAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgcmVzdWx0RG9jdW1lbnQuZ2V0KCkpOworICAgIGlmICgh
bm9kZVZhbC5pc09iamVjdCgmSlNOb2RlOjpzX2luZm8pKSB7CisgICAgICAgIC8vIFRocm93IGV4
Y2VwdGlvbj8KICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIC8vIFRo
cm93IGV4Y2VwdGlvbj8KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIEpTTm9kZSog
c291cmNlTm9kZSA9IHN0YXRpY19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKTsKKyAg
ICBSZWZQdHI8RG9jdW1lbnQ+IHJlc3VsdERvY3VtZW50ID0gaW1wbCgpLT50cmFuc2Zvcm1Ub0Rv
Y3VtZW50KHNvdXJjZU5vZGUtPmltcGwoKSk7CisgICAgaWYgKCFyZXN1bHREb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICAvLyBXZSdyZSBhc3N1bWluZyB0aGUg
d2luZG93IHRoaXMgWFNMVFByb2Nlc3NvciBjYW1lIGZyb20gaXMgbW9yZSBjb3JyZWN0IHRoYW4g
dGhlIGxleGljYWwgc2NvcGUuCisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCks
IHJlc3VsdERvY3VtZW50LnJlbGVhc2UoKSk7CiB9CiAKIEpTVmFsdWUgSlNYU0xUUHJvY2Vzc29y
OjpzZXRQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNDQyMjA1ZS4uMTBiNGUy
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zMjcsNyAr
MzI3LDcgQEAgSlNPYmplY3QqIFNjcmlwdENvbnRyb2xsZXI6OmpzT2JqZWN0Rm9yUGx1Z2luRWxl
bWVudChIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luKQogICAgIC8vIENyZWF0ZSBhIEpTT2JqZWN0
IGJvdW5kIHRvIHRoaXMgZWxlbWVudAogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKICAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwotICAgIEpTVmFsdWUg
anNFbGVtZW50VmFsdWUgPSB0b0pTKGV4ZWMsIHBsdWdpbik7CisgICAgSlNWYWx1ZSBqc0VsZW1l
bnRWYWx1ZSA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHBsdWdpbik7CiAgICAgaWYgKCFq
c0VsZW1lbnRWYWx1ZSB8fCAhanNFbGVtZW50VmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50
TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNw
cAppbmRleCBlNWJlMWQ2Li44YTQyZWQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTcyLDcgKzcyLDggQEAgUGFzc1JlZlB0cjxKU0xhenlFdmVu
dExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqIG5vZGUsIEF0dHJp
YnUKICAgICAvLyBFbnN1cmUgdGhhdCAnbm9kZScgaGFzIGEgSmF2YVNjcmlwdCB3cmFwcGVyIHRv
IG1hcmsgdGhlIGV2ZW50IGxpc3RlbmVyIHdlJ3JlIGNyZWF0aW5nLgogICAgIHsKICAgICAgICAg
SlNMb2NrIGxvY2soZmFsc2UpOwotICAgICAgICB0b0pTKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpLCBub2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBwYXNzIHRoZSBnbG9iYWwgb2Jq
ZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZQorICAgICAgICB0b0pTKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogICAgIH0KIAogICAgIHJldHVybiBK
U0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoYXR0ci0+bG9jYWxOYW1lKCkuc3RyaW5nKCksIGV2
ZW50UGFyYW1ldGVyTmFtZShub2RlLT5pc1NWR0VsZW1lbnQoKSksIGF0dHItPnZhbHVlKCksIGds
b2JhbE9iamVjdCwgbm9kZSwgc2NyaXB0Q29udHJvbGxlci0+ZXZlbnRIYW5kbGVyTGluZU51bWJl
cigpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcAppbmRleCA3ZjYzOTFkLi5jNzQz
ZTVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwCkBAIC0xMjYsNyArMTI2LDgg
QEAgYm9vbCBTY3JpcHRHbG9iYWxPYmplY3Q6OnNldChTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUs
IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFMKIGJvb2wgU2NyaXB0R2xvYmFsT2JqZWN0OjpzZXQo
U2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBjb25zdCBjaGFyKiBuYW1lLCBJbnNwZWN0b3JDb250
cm9sbGVyKiB2YWx1ZSkKIHsKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgc2NyaXB0U3Rh
dGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHV0RGlyZWN0KElkZW50aWZpZXIoc2NyaXB0U3Rh
dGUsIG5hbWUpLCB0b0pTKHNjcmlwdFN0YXRlLCB2YWx1ZSkpOworICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHNjcmlw
dFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworICAgIGdsb2JhbE9iamVjdC0+cHV0RGly
ZWN0KElkZW50aWZpZXIoc2NyaXB0U3RhdGUsIG5hbWUpLCB0b0pTKHNjcmlwdFN0YXRlLCBnbG9i
YWxPYmplY3QsIHZhbHVlKSk7CiAgICAgcmV0dXJuIGhhbmRsZUV4Y2VwdGlvbihzY3JpcHRTdGF0
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVh
cmFudGluZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUu
Y3BwCmluZGV4IGFiMzkyYmMuLjBmZTJjNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcApAQCAtNjksMTAgKzY5LDExIEBAIGJvb2wgZ2V0UXVh
cmFudGluZWRTY3JpcHRPYmplY3QoRGF0YWJhc2UqIGRhdGFiYXNlLCBTY3JpcHRPYmplY3QmIHF1
YXJhbnRpbmVkT2JqCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgRXhlY1N0YXRlKiBleGVjID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmdsb2JhbEV4ZWMoKTsK
KyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTVdpbmRvdyhmcmFt
ZSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAK
ICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRP
YmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHRvSlMo
ZXhlYywgZGF0YWJhc2UpKSkpOworICAgIHF1YXJhbnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0
KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgZGF0YWJhc2UpKSkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04
NCwxMCArODUsMTEgQEAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9iamVjdChGcmFtZSogZnJh
bWUsIFN0b3JhZ2UqIHN0b3JhZ2UsIFNjcmlwdE9iamVjdCYgcXUKICAgICBBU1NFUlQoZnJhbWUp
OwogICAgIEFTU0VSVChzdG9yYWdlKTsKIAotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlNET01X
aW5kb3coZnJhbWUpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IHRvSlNET01XaW5kb3coZnJhbWUpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwotICAg
IHF1YXJhbnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2Jq
ZWN0V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIHN0b3JhZ2UpKSkpOworICAgIHF1YXJh
bnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0V3Jh
cHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RvcmFnZSkpKSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEwMCw3ICsxMDIsOCBAQCBib29sIGdldFF1YXJhbnRp
bmVkU2NyaXB0T2JqZWN0KE5vZGUqIG5vZGUsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRPYmpl
Y3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLSAg
ICBxdWFyYW50aW5lZE9iamVjdCA9IFNjcmlwdE9iamVjdChhc09iamVjdChKU0luc3BlY3RlZE9i
amVjdFdyYXBwZXI6OndyYXAoZXhlYywgdG9KUyhleGVjLCBub2RlKSkpKTsKKyAgICAvLyBGSVhN
RTogU2hvdWxkIHVzZSBzb21lIHNvcnQgb2YgZ2xvYmFsT2JqZWN0RnJvbU5vZGUoKQorICAgIHF1
YXJhbnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0
V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQ
cm90b3R5cGUoZXhlYyksIG5vZGUpKSkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0gYi9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSW50ZXJuYWwubW0KaW5kZXggZWI5OGE4YS4uOWIyNmU1OSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQpAQCAtMTIzLDExICsxMjMsMTMgQEAgdm9pZCByZW1v
dmVET01XcmFwcGVyKERPTU9iamVjdEludGVybmFsKiBpbXBsKQogICAgICAgICBmcmFtZSA9IGRv
Y3VtZW50LT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCi0gICAgSlNDOjpFeGVjU3RhdGUgKmV4ZWMgPSBmcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9i
amVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgCisKKyAgICAvLyBUaGUgZ2xvYmFsIG9iamVjdCB3
aGljaCBzaG91bGQgb3duIHRoaXMgbm9kZS4KKyAgICBXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gZnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBK
U0M6OkV4ZWNTdGF0ZSAqZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworCiAgICAg
Ly8gR2V0IChvciBjcmVhdGUpIGEgY2FjaGVkIEpTIG9iamVjdCBmb3IgdGhlIERPTSBub2RlLgot
ICAgIEpTQzo6SlNPYmplY3QgKnNjcmlwdEltcCA9IGFzT2JqZWN0KFdlYkNvcmU6OnRvSlMoZXhl
Yywgbm9kZUltcGwpKTsKKyAgICBKU0M6OkpTT2JqZWN0ICpzY3JpcHRJbXAgPSBhc09iamVjdChX
ZWJDb3JlOjp0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgbm9kZUltcGwpKTsKIAogICAgIEpTQzo6
QmluZGluZ3M6OlJvb3RPYmplY3QqIHJvb3RPYmplY3QgPSBmcmFtZS0+c2NyaXB0KCktPmJpbmRp
bmdSb290T2JqZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IGZhMWE3Y2QuLjQ1NjI0N2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjI1LDExICs2MjUsMTEgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAKICAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tVG9KUyJ9KSB7CiAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qLCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRw
b2RUeXBlPiosIFNWR0VsZW1lbnQqIGNvbnRleHQpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKElz
U1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgJGltcGxUeXBlKiwgU1ZHRWxlbWVudCogY29udGV4dCk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgJGltcGxUeXBlKiwgU1ZHRWxlbWVudCogY29udGV4dCk7XG4i
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosICRpbXBsVHlwZSopO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlwZSopO1xuIik7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgaWYgKCEkaGFzUGFyZW50IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKQEAgLTY0Miw3ICs2NDIsNyBAQCBz
dWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIk5vZGUiIG9yICRpbnRlcmZhY2VOYW1lIGVxICJFbGVtZW50IiBvciAkaW50ZXJmYWNl
TmFtZSBlcSAiVGV4dCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkNEQVRBU2VjdGlvbiIpIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVk
KEpTQzo6RXhlY1N0YXRlKiwgJGludGVyZmFjZU5hbWUqKTtcbiIpOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CiAg
ICAgCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CkBAIC0xMDk0LDYgKzEwOTQsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTtcbiIpOwogCiAgICAgICAg
ICAgICAgICAgbXkgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24gPSAiIjsKICAgICAg
ICAgICAgICAgICBpZiAoISRwb2RUeXBlIGFuZCAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0
ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKSBvciAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkv
KSkgewpAQCAtMTEwMywyNSArMTEwNCwyNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVj
a0RvbWFpblNlY3VyaXR5In0gJiYgCiAgICAgICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3Vy
aXR5In0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgICEkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHlPbkdldCJ9KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc3RhdGlj
X2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5hbGxvd3NBY2Nl
c3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmICghY2FzdGVkVGhpcy0+YWxsb3dzQWNjZXNzRnJvbShleGVjKSlcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwg
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0g
fHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0
dGVyIn0gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlND
Q3VzdG9tR2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RC
YXNlKCkpKS0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoZXhlYyk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNhc3RlZFRoaXMtPiRpbXBs
R2V0dGVyRnVuY3Rpb25OYW1lKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tOb2RlU2Vj
dXJpdHkifSkgewogICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0RPTUJpbmRp
bmcuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGlj
X2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xu
Iik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBj
aGVja05vZGVTZWN1cml0eShleGVjLCBpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkpID8g
IiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NO
YW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0ZXJG
dW5jdGlvbk5hbWUoKSIsICJzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5z
bG90QmFzZSgpKSkiKSAuICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNf
Y2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3Vy
aXR5KGV4ZWMsIGltcC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSkgPyAiIC4gTmF0aXZlVG9K
U1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICRpbXBsQ2xh
c3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uLCAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgp
IiwgImNhc3RlZFRoaXMiKSAuICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CiAgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2hlY2tGcmFtZVNlY3VyaXR5In0pIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siRG9jdW1lbnQuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
SlNET01CaW5kaW5nLmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFt
ZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+
aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYywgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkg
PyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgIDAsICRpbXBsQ2xh
c3NOYW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxHZXR0
ZXJGdW5jdGlvbk5hbWUoKSIsICJzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xv
dC5zbG90QmFzZSgpKSkiKSAuICIgOiBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0
aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNoZWNrTm9kZVNl
Y3VyaXR5KGV4ZWMsIGltcC0+Y29udGVudERvY3VtZW50KCkpID8gIiAuIE5hdGl2ZVRvSlNWYWx1
ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICAwLCAkaW1wbENsYXNzTmFtZSwgJGltcGxDbGFzc05h
bWVGb3JWYWx1ZUNvbnZlcnNpb24sICJpbXAtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAi
Y2FzdGVkVGhpcyIpIC4gIiA6IGpzVW5kZWZpbmVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICB9
IGVsc2lmICgkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siRXZlbnRMaXN0ZW5lci5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7XG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGlt
cCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0
aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKEV2ZW50TGlzdGVuZXIq
IGxpc3RlbmVyID0gaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpKSB7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChKU09iamVjdCog
anNGdW5jdGlvbiA9IGxpc3RlbmVyLT5qc0Z1bmN0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4ganNGdW5jdGlvbjtc
biIpOwpAQCAtMTEzMCwyMSArMTEzMSwyMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAv
Q29uc3RydWN0b3IkLykgewogICAgICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JUeXBl
ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZSk7CiAgICAgICAgICAgICAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3Rv
ciQvLzsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNs
b3Quc2xvdEJhc2UoKSkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICMgQ29uc3RydWN0b3Ig
YXR0cmlidXRlIGlzIG9ubHkgdXNlZCBieSBET01XaW5kb3cuaWRsLCBzbyBpdCdzIGNvcnJlY3Qg
dG8gcGFzcyBjYXN0ZWRUaGlzIGFzIHRoZSBnbG9iYWwgb2JqZWN0CiAgICAgICAgICAgICAgICAg
ICAgICMgT25jZSBET01PYmplY3RzIGhhdmUgYSBiYWNrLXBvaW50ZXIgdG8gdGhlIGdsb2JhbE9i
amVjdCB3ZSBjYW4gcGFzcyBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKQogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlMiIC4gJGNvbnN0cnVjdG9y
VHlwZSAuICI6OmdldENvbnN0cnVjdG9yKGV4ZWMsIGNhc3RlZFRoaXMpO1xuIik7CiAgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoIUB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHBvZFR5cGUgaW1wKCpzdGF0
aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmltcGwoKSk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRw
b2RUeXBlIGltcCgqY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRwb2RUeXBlIGVxICJmbG9hdCIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZH
TnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAk
aW1wbENsYXNzTmFtZSwgIiIsICJpbXAiLCAic3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2Jq
ZWN0KHNsb3Quc2xvdEJhc2UoKSkpIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICIgLiBOYXRpdmVUb0pTVmFsdWUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgIiIsICJpbXAiLCAiY2Fz
dGVkVGhpcyIpIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
IiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NO
YW1lLCAiIiwgImltcC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgInN0YXRpY19jYXN0PCRj
bGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIpIC4gIjtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAiIC4g
TmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUs
ICIiLCAiaW1wLiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCkiLCAiY2FzdGVkVGhpcyIpIC4gIjtc
biIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGlt
cGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nh
c3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENs
YXNzTmFtZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBteSAkdmFsdWU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKICAgICAgICAgICAgICAgICAgICAgICAgIG15
ICRyZWZsZWN0VVJMID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUmVmbGVjdFVSTCJ9OwpAQCAtMTE1NiwyMyArMTE1NiwyMiBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkdmFsdWUgPSAiaW1wLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgp
IjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIG15
ICRqc1R5cGUgPSBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1w
bENsYXNzTmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICR2YWx1ZSwgInN0
YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJGpzVHlwZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmli
dXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVl
Q29udmVyc2lvbiwgJHZhbHVlLCAiY2FzdGVkVGhpcyIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWZQdHI8JHR5
cGU+IG9iaiA9ICRqc1R5cGU7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gdG9KUyhleGVjLCBvYmouZ2V0KCksIGltcCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqLmdldCgpLCBp
bXApO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAkanNUeXBlO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwotCisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7ICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgaWYgKCRwb2RUeXBlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBp
bXAoKnN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+
aW1wbCgpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgIiIsICJpbXAuJGltcGxHZXR0ZXJGdW5j
dGlvbk5hbWUoZWMpIiwgInN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90LnNs
b3RCYXNlKCkpKSIpIC4gIjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJHBvZFR5cGUgaW1wKCpjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAs
ICRpbXBsQ2xhc3NOYW1lLCAiIiwgImltcC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZShlYykiLCAi
Y2FzdGVkVGhpcyIpIC4gIjtcbiIpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05h
bWUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oc3RhdGljX2Nhc3Q8JGNsYXNz
TmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5pbXBsKCkpO1xuIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBs
Q2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiwgImltcC0+JGltcGxH
ZXR0ZXJGdW5jdGlvbk5hbWUoZWMpIiwgInN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVj
dChzbG90LnNsb3RCYXNlKCkpKSIpIC4gIjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9IHN0YXRpY19jYXN0
PCRpbXBsQ2xhc3NOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW1wbENsYXNz
TmFtZSwgJGltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb24sICJpbXAtPiRpbXBsR2V0dGVy
RnVuY3Rpb25OYW1lKGVjKSIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIik7CkBAIC0xNDk2LDcgKzE0OTUsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siS1VSTC5o
In0gPSAxOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGpzU3Ry
aW5nT3JOdWxsKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRlbShzbG90LmluZGV4KCkpKTtcbiIp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqLT5p
bXBsKCkpLT5pdGVtKHNsb3QuaW5kZXgoKSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwg
c3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKHNsb3Qu
aW5kZXgoKSkpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG4iKTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIpIHsK
QEAgLTE1MDcsMjAgKzE1MDYsMjAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAg
IGlmICgoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2Vu
ZXJhdGVUb0pTIn0pIGFuZCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
VG9KUyJ9KSB7CiAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNTVkdQ
T0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dClcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTVkdQ
T0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iamVjdCwgU1ZHRWxlbWVudCogY29udGV4dClcbiIp
OwogICAgICAgICB9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1w
bENsYXNzTmFtZSkpIHsKLSAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAkaW1wbFR5cGUqIG9iamVjdCwgU1ZHRWxl
bWVudCogY29udGV4dClcbiIpOworICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsICRpbXBsVHlwZSogb2JqZWN0LCBTVkdFbGVtZW50KiBjb250ZXh0KVxuIik7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAkaW1wbFR5cGUqIG9iamVjdClcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGltcGxU
eXBlKiBvYmplY3QpXG4iKTsKICAgICAgICAgfQogCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CiAgICAgICAgIGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZSwgSlNT
VkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPihleGVjLCBvYmplY3QsIGNvbnRleHQpO1xuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0RE9NT2JqZWN0
V3JhcHBlcjwkY2xhc3NOYW1lLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+KGV4ZWMs
IGdsb2JhbE9iamVjdCwgb2JqZWN0LCBjb250ZXh0KTtcbiIpOwogICAgICAgICB9IGVsc2lmIChJ
c1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVy
PCRjbGFzc05hbWU+KGV4ZWMsIG9iamVjdCwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVyPCRjbGFzc05h
bWU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgb2JqZWN0LCBjb250ZXh0KTtcbiIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldERP
TU9iamVjdFdyYXBwZXI8JGNsYXNzTmFtZT4oZXhlYywgb2JqZWN0KTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8JGNs
YXNzTmFtZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QpO1xuIik7CiAgICAgICAgIH0KICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICB9CkBAIC0xNjk2LDYgKzE2OTUs
OSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1l
L0pTU3RyaW5nLmg+In0gPSAxOwogICAgICAgICByZXR1cm4gImpzU3RyaW5nKGV4ZWMsICR2YWx1
ZSkiOwogICAgIH0KKyAgICAKKyAgICAjIFNvbWUgU1ZHIGJpbmRpbmdzIGRvbid0IGhhdmUgc3Bh
Y2UgdG8gc3RvcmUgYSBnbG9iYWxPYmplY3QgcG9pbnRlciwgZm9yIHRob3NlLCB3ZSB1c2UgdGhl
IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUgaGFjayBmb3Igbm93LgorICAgIG15
ICRnbG9iYWxPYmplY3QgPSBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENs
YXNzTmFtZSkgPyAiZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSIgOiAi
JHRoaXNWYWx1ZS0+Z2xvYmFsT2JqZWN0KCkiOwogCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1BvZFR5cGUoJHR5cGUpKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTJHR5cGUuaCJ9ID0g
MTsKQEAgLTE3MTQsMjUgKzE3MTYsMjUgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICAg
ICAgYW5kICRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGVXaXRoV3JpdGVhYmxlUHJvcGVydGllcygk
dHlwZSkKICAgICAgICAgICAgIGFuZCBub3QgZGVmaW5lZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1tdXRhYmxlIn0pIHsKICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNQb2RUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgIHJldHVybiAi
dG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBPRFR5cGVQYXJlbnQ8JG5h
dGl2ZVR5cGUsICRpbXBsQ2xhc3NOYW1lPjo6Y3JlYXRlKCR2YWx1ZSwgJHRoaXNWYWx1ZS0+aW1w
bCgpKS5nZXQoKSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgpKSI7CisgICAgICAgICAgICAgICAgcmV0
dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXJX
aXRoUE9EVHlwZVBhcmVudDwkbmF0aXZlVHlwZSwgJGltcGxDbGFzc05hbWU+OjpjcmVhdGUoJHZh
bHVlLCAkdGhpc1ZhbHVlLT5pbXBsKCkpLmdldCgpLCAkdGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMs
IEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXJXaXRoUGFyZW50PCRuYXRpdmVUeXBlLCAkaW1wbENs
YXNzTmFtZT46OmNyZWF0ZShpbXAsICYke2ltcGxDbGFzc05hbWV9OjokZ2V0dGVyLCAmJHtpbXBs
Q2xhc3NOYW1lfTo6JHNldHRlcikuZ2V0KCksIGltcCkiOworICAgICAgICAgICAgICAgIHJldHVy
biAidG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0
aFBhcmVudDwkbmF0aXZlVHlwZSwgJGltcGxDbGFzc05hbWU+OjpjcmVhdGUoaW1wLCAmJHtpbXBs
Q2xhc3NOYW1lfTo6JGdldHRlciwgJiR7aW1wbENsYXNzTmFtZX06OiRzZXR0ZXIpLmdldCgpLCBp
bXApIjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICgkaW1wbENsYXNz
TmFtZUZvclZhbHVlQ29udmVyc2lvbiBlcSAiIikgewogICAgICAgICAgICAgIyBTVkdab29tRXZl
bnQgaGFzIG5vIGNvbnRleHQoKSBwb2ludGVyLCBhbmQgaXMgYWxzbyBub3QgYW4gU1ZHRWxlbWVu
dC4KICAgICAgICAgICAgICMgVGhpcyBpcyBub3QgYSBwcm9ibGVtLCBiZWNhdXNlIFNWR1pvb21F
dmVudCBoYXMgbm8gcmVhZC93cml0ZSBwcm9wZXJ0aWVzLgotICAgICAgICAgICAgcmV0dXJuICJ0
b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUo
JHZhbHVlKS5nZXQoKSwgMCkiIGlmICRpbXBsQ2xhc3NOYW1lIGVxICJTVkdab29tRXZlbnQiOwor
ICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZHU3RhdGlj
UE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgMCkiIGlm
ICRpbXBsQ2xhc3NOYW1lIGVxICJTVkdab29tRXZlbnQiOwogCiAgICAgICAgICAgICBpZiAoSXNT
VkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5h
dGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgY2FzdGVkVGhpc09iai0+Y29udGV4dCgp
KSIgaWYgJGluRnVuY3Rpb25DYWxsOwotICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVj
LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSku
Z2V0KCksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOworICAgICAgICAgICAgICAgIHJldHVybiAi
dG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRp
dmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCksIGNhc3RlZFRoaXNPYmotPmNvbnRleHQoKSki
IGlmICRpbkZ1bmN0aW9uQ2FsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywg
JGdsb2JhbE9iamVjdCwgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNy
ZWF0ZSgkdmFsdWUpLmdldCgpLCAkdGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsKICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGlj
UE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgaW1wKSI7
CisgICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIEpTU1ZH
U3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwg
aW1wKSI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7ICMgVGhlc2UgY2xhc3Nlcywg
YWx3YXlzIGhhdmUgYSBtX2NvbnRleHQgcG9pbnRlciEKLSAgICAgICAgICAgIHJldHVybiAidG9K
UyhleGVjLCBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRuYXRpdmVUeXBlLCAkaW1w
bENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbj46Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcihpbXAs
ICYke2ltcGxDbGFzc05hbWVGb3JWYWx1ZUNvbnZlcnNpb259OjokZ2V0dGVyLCAmJHtpbXBsQ2xh
c3NOYW1lRm9yVmFsdWVDb252ZXJzaW9ufTo6JHNldHRlcikuZ2V0KCksICR0aGlzVmFsdWUtPmNv
bnRleHQoKSkiOworICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3Qs
IEpTU1ZHRHluYW1pY1BPRFR5cGVXcmFwcGVyQ2FjaGU8JG5hdGl2ZVR5cGUsICRpbXBsQ2xhc3NO
YW1lRm9yVmFsdWVDb252ZXJzaW9uPjo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKGltcCwgJiR7aW1w
bENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbn06OiRnZXR0ZXIsICYke2ltcGxDbGFzc05hbWVG
b3JWYWx1ZUNvbnZlcnNpb259Ojokc2V0dGVyKS5nZXQoKSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgp
KSI7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE3NjUsMTggKzE3NjcsMTUgQEAgc3ViIE5hdGl2
ZVRvSlNWYWx1ZQogICAgIHJldHVybiAkdmFsdWUgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5p
bWF0ZWRUeXBlKCR0eXBlKTsKIAogICAgIGlmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFt
ZXRlcigkdHlwZSkpIHsKLSAgICAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1l
dGVyKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdU
Rjo6Z2V0UHRyKCR2YWx1ZSksICR0aGlzVmFsdWUtPmNvbnRleHQoKSkiOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKCR2YWx1ZSks
IGltcCkiOwotICAgICAgICB9CisgICAgICAgIG15ICRjb250ZXh0UHRyID0gSXNTVkdUeXBlTmVl
ZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpID8gIiR0aGlzVmFsdWUtPmNvbnRl
eHQoKSIgOiAiaW1wIjsKKyAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxPYmplY3Qs
IFdURjo6Z2V0UHRyKCR2YWx1ZSksICRjb250ZXh0UHRyKSI7CiAgICAgfQogCiAgICAgaWYgKCRz
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm5zTmV3In0pIHsgICAgICAgIAot
ICAgICAgICByZXR1cm4gInRvSlNOZXdseUNyZWF0ZWQoZXhlYywgV1RGOjpnZXRQdHIoJHZhbHVl
KSkiOworICAgICAgICByZXR1cm4gInRvSlNOZXdseUNyZWF0ZWQoZXhlYywgJGdsb2JhbE9iamVj
dCwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOwogICAgIH0KIAotICAgIHJldHVybiAidG9KUyhleGVj
LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CisgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9iYWxP
YmplY3QsIFdURjo6Z2V0UHRyKCR2YWx1ZSkpIjsKIH0KIAogc3ViIGNlaWxpbmdUb1Bvd2VyT2Yy
CkBAIC0yMDI3LDEyICsyMDI2LDEzIEBAIHN1YiBjb25zdHJ1Y3RvckZvcgogICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJHZpc2libGVDbGFzc05hbWUgPSBzaGlmdDsKICAg
ICBteSAkY2FuQ29uc3RydWN0ID0gc2hpZnQ7CisgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1l
ID0gIiR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yIjsKIAogbXkgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7Ci1jbGFzcyAke2NsYXNzTmFtZX1Db25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rv
ck9iamVjdCB7CitjbGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyBET01Db25z
dHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgJHtjbGFzc05hbWV9Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgICAgICA6
IERPTUNvbnN0cnVjdG9yT2JqZWN0KCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAg
ICAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCisgICAgICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcHV0RGlyZWN0KGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9OjpzZWxmKGV4ZWMs
IGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIH0KQEAgLTIwNDgsMTMgKzIwNDgsMTMgQEAgRU9G
CiAKICAgICBpZiAoJGNhbkNvbnN0cnVjdCkgewogJGltcGxDb250ZW50IC49IDw8ICJFT0YiOwot
ICAgIHN0YXRpYyBKU09iamVjdCogY29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
LCBjb25zdCBBcmdMaXN0JikKKyAgICBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdCR7aW50ZXJm
YWNlTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNvbnN0IEFy
Z0xpc3QmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgJHtpbnRl
cmZhY2VOYW1lfTo6Y3JlYXRlKCkpKTsKKyAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhl
Yywgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihjb25zdHJ1Y3RvciktPmds
b2JhbE9iamVjdCgpLCAke2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoKSkpOwogICAgIH0KICAgICB2
aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25z
dHJ1Y3REYXRhKQogICAgIHsKLSAgICAgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3Q7CisgICAgICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0JHtpbnRlcmZhY2VOYW1lfTsKICAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0
OwogICAgIH0KIEVPRgpAQCAtMjA2MywxNiArMjA2MywxNiBAQCBFT0YKICRpbXBsQ29udGVudCAu
PSA8PCAiRU9GIjsKIH07CiAKLWNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiJHt2aXNpYmxlQ2xhc3NOYW1lfUNvbnN0cnVjdG9yIiwgMCwgJiR7Y2xh
c3NOYW1lfUNvbnN0cnVjdG9yVGFibGUsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyAke2NvbnN0cnVj
dG9yQ2xhc3NOYW1lfTo6c19pbmZvID0geyAiJHt2aXNpYmxlQ2xhc3NOYW1lfUNvbnN0cnVjdG9y
IiwgMCwgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIDAgfTsKIAotYm9vbCAke2NsYXNz
TmFtZX1Db25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yLCBE
T01PYmplY3Q+KGV4ZWMsICYke2NsYXNzTmFtZX1Db25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX0sIERPTU9iamVjdD4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9
VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIEVPRgogCi0gICAgJGltcGxK
U0NJbmNsdWRleyJKU051bWJlckNlbGwuaCJ9ID0gMTsKKyAgICAkaW1wbEpTQ0luY2x1ZGV7IkpT
TnVtYmVyQ2VsbC5oIn0gPSAxOyAjIEZJWE1FOiBXaGF0IGlzIHRoaXMgZm9yPwogCiAgICAgcmV0
dXJuICRpbXBsQ29udGVudDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMu
cGwgYi9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDEyZjBlYzcuLmU2ZDU5YTAgMTAw
NzU1Ci0tLSBhL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbApAQCAtODc1LDIyICs4NzUsMjMgQEAgc3ViIHByaW50V3JhcHBlckZ1bmN0aW9u
cwogICAgICAgICB9CiAKICAgICAgICAgIyBIYWNrIGZvciB0aGUgbWVkaWEgdGFncworICAgICAg
ICAjIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gZG9uZSB2aWEgYSBDdXN0b21XcmFwcGVy
IGF0dHJpYnV0ZSBhbmQgYSBzZXBhcmF0ZSAqQ3VzdG9tIGZpbGUuCiAgICAgICAgIGlmICgkdGFn
c3skdGFnTmFtZX17IndyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlIn0pIHsKICAgICAgICAg
ICAgIHByaW50IEYgPDxFTkQKLXN0YXRpYyBKU05vZGUqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1l
fVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3Bh
Y2UnfUVsZW1lbnQ+IGVsZW1lbnQpCitzdGF0aWMgSlNOb2RlKiBjcmVhdGUke0pTSW50ZXJmYWNl
TmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50PiBlbGVtZW50
KQogewogICAgIGlmICghTWVkaWFQbGF5ZXI6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVy
biBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31F
bGVtZW50LCBlbGVtZW50LmdldCgpKTsKLSAgICByZXR1cm4gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQ
RVIoZXhlYywgJHtKU0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKKyAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRl
cnN7J25hbWVzcGFjZSd9RWxlbWVudCwgZWxlbWVudC5nZXQoKSk7CisgICAgcmV0dXJuIENSRUFU
RV9ET01fTk9ERV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHtKU0ludGVyZmFjZU5hbWV9
LCBlbGVtZW50LmdldCgpKTsKIH0KIAogRU5ECiA7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBwcmludCBGIDw8RU5ECi1zdGF0aWMgSlNOb2RlKiBjcmVhdGUke0pTSW50ZXJmYWNlTmFt
ZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNw
YWNlJ31FbGVtZW50PiBlbGVtZW50KQorc3RhdGljIEpTTm9kZSogY3JlYXRlJHtKU0ludGVyZmFj
ZU5hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudD4gZWxlbWVu
dCkKIHsKLSAgICByZXR1cm4gQ1JFQVRFX0RPTV9OT0RFX1dSQVBQRVIoZXhlYywgJHtKU0ludGVy
ZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9OT0RFX1dS
QVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAke0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0
KCkpOwogfQogCiBFTkQKQEAgLTkzMSw3ICs5MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31OYW1lczsKIAotdHlwZWRl
ZiBKU05vZGUqICgqQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJG
dW5jdGlvbikoRXhlY1N0YXRlKiwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31F
bGVtZW50Pik7Cit0eXBlZGVmIEpTTm9kZSogKCpDcmVhdGUkcGFyYW1ldGVyc3snbmFtZXNwYWNl
J31FbGVtZW50V3JhcHBlckZ1bmN0aW9uKShFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudD4pOwogCiBFTkQKIDsK
QEAgLTkzOSw3ICs5NDAsNyBAQCBFTkQKICAgICBwcmludFdyYXBwZXJGdW5jdGlvbnMoJEYpOwog
CiAgICAgcHJpbnQgRiA8PEVORAotSlNOb2RlKiBjcmVhdGVKUyRwYXJhbWV0ZXJzeyduYW1lc3Bh
Y2UnfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfUVsZW1lbnQ+IGVsZW1lbnQpCitKU05vZGUqIGNyZWF0ZUpTJHBhcmFtZXRlcnN7J25h
bWVzcGFjZSd9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudD4gZWxl
bWVudCkKIHsgICAKICAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6QXRvbWljU3RyaW5nSW1w
bCosIENyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+
IEZ1bmN0aW9uTWFwOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoRnVuY3Rpb25NYXAsIG1hcCwg
KCkpOwpAQCAtOTY5LDggKzk3MCw4IEBAIEVORAogICAgIH0KICAgICBDcmVhdGUkcGFyYW1ldGVy
c3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlv
biA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKICAgICBpZiAoY3JlYXRl
V3JhcHBlckZ1bmN0aW9uKQotICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGV4
ZWMsIGVsZW1lbnQpOwotICAgIHJldHVybiBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCAk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50LCBlbGVtZW50LmdldCgpKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGVsZW1lbnQp
OworICAgIHJldHVybiBDUkVBVEVfRE9NX05PREVfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
ICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQsIGVsZW1lbnQuZ2V0KCkpOwogfQogCiB9
CkBAIC0xMDA2LDkgKzEwMDcsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBKU05vZGU7CisgICAgY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CiAg
ICAgY2xhc3MgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudDsKIAotICAgIEpTTm9kZSog
Y3JlYXRlSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31XcmFwcGVyKEpTQzo6RXhlY1N0YXRlKiwg
UGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7CisgICAgSlNOb2Rl
KiBjcmVhdGVKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfVdyYXBwZXIoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9
RWxlbWVudD4pOwogCiB9
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33462</attachid>
            <date>2009-07-24 12:35:08 -0700</date>
            <delta_ts>2010-06-10 20:00:24 -0700</delta_ts>
            <desc>Remaining changes, mostly needs a few tests</desc>
            <filename>bug-27634-20090724123507.patch</filename>
            <type>text/plain</type>
            <size>34655</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREN1c3RvbS5jcHAKaW5kZXggMzk4YTY3OS4uNTdiY2RhYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAK
QEAgLTQyLDEyICs0MiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBDYW52YXNTdHls
ZSogc3R5bGUpCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FudmFzU3R5bGUqIHN0eWxlKQogewogICAgIGlmIChz
dHlsZS0+Y2FudmFzR3JhZGllbnQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3R5bGUt
PmNhbnZhc0dyYWRpZW50KCkpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0eWxlLT5jYW52YXNHcmFkaWVudCgpKTsKICAgICBpZiAoc3R5bGUtPmNhbnZhc1BhdHRl
cm4oKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3R5bGUtPmNhbnZhc1BhdHRlcm4oKSk7
CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3R5bGUtPmNhbnZhc1Bh
dHRlcm4oKSk7CiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIHN0eWxlLT5jb2xvcigpKTsKIH0K
IApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXNTdHlsZT4gdG9IVE1M
Q2FudmFzU3R5bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlU3R5bGUoRXhlY1N0YXRlKiBleGVjKSBjb25zdAog
ewotICAgIHJldHVybiB0b0pTKGV4ZWMsIGltcGwoKS0+c3Ryb2tlU3R5bGUoKSk7ICAgICAgICAK
KyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgaW1wbCgpLT5zdHJva2VTdHls
ZSgpKTsKIH0KIAogdm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5
bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNzcsNyArNzcsNyBAQCB2b2lk
IEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VTdHlsZShFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgdmFsdWUpCiAKIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmZpbGxTdHlsZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvSlMoZXhl
YywgaW1wbCgpLT5maWxsU3R5bGUoKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0KCksIGltcGwoKS0+ZmlsbFN0eWxlKCkpOwogfQogCiB2b2lkIEpTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpzZXRGaWxsU3R5bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpA
QCAtMzM5LDcgKzMzOSw3IEBAIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNy
ZWF0ZVBhdHRlcm4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0CiAKICAgICBpZiAoby0+
aW5oZXJpdHMoJkpTSFRNTEltYWdlRWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRp
b25Db2RlIGVjOwotICAgICAgICBKU1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAg
IEpTVmFsdWUgcGF0dGVybiA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAg
ICBjb250ZXh0LT5jcmVhdGVQYXR0ZXJuKHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihz
dGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4obyktPmltcGwoKSksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIGFyZ3Mu
YXQoMSkpLCBlYykuZ2V0KCkpOwogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwpA
QCAtMzQ3LDcgKzM0Nyw3IEBAIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNy
ZWF0ZVBhdHRlcm4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0CiAgICAgfQogICAgIGlm
IChvLT5pbmhlcml0cygmSlNIVE1MQ2FudmFzRWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBF
eGNlcHRpb25Db2RlIGVjOwotICAgICAgICBKU1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisg
ICAgICAgIEpTVmFsdWUgcGF0dGVybiA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksCiAgICAg
ICAgICAgICBjb250ZXh0LT5jcmVhdGVQYXR0ZXJuKHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVt
ZW50Kj4oc3RhdGljX2Nhc3Q8SlNIVE1MRWxlbWVudCo+KG8pLT5pbXBsKCkpLAogICAgICAgICAg
ICAgICAgIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIGFyZ3MuYXQoMSkpLCBlYyku
Z2V0KCkpOwogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmgKaW5kZXggMzk3NTk0MC4uYWJhNWVjOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCkBAIC0yNTUsMjMgKzI1NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBKU0M6OlVTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsCiAgICAgSlNDOjpV
U3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUpOyAvLyBudWxsIGlmIHRoZSB2YWx1ZSBpcyBudWxsIG9yIHVuZGVm
aW5lZAogCi0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSBhIHN0b3AtZ2FwIHVudGlsIGFsbCB0b0pT
IGNhbGxzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gcGFzcyBhIGdsb2JhbE9iamVjdAotICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgVCogcHRyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgcHRyKTsKLSAgICB9Ci0gICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFQ+IHB0cikKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHB0
ci5nZXQoKSk7Ci0gICAgfQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICAgIGlubGluZSBK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogcHRy
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoZXhlYywgZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgcHRyKTsKLSAgICB9Ci0KICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KICAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8
VD4gcHRyKQogICAgIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRl
eCA4OWU5YWY4Li5kZjYwNjhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjp1cGRhdGVEb2N1bWVu
dCgpCiB7CiAgICAgQVNTRVJUKGQoKS0+aW1wbC0+ZG9jdW1lbnQoKSk7CiAgICAgRXhlY1N0YXRl
KiBleGVjID0gZ2xvYmFsRXhlYygpOwotICAgIHN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMo
SWRlbnRpZmllcihleGVjLCAiZG9jdW1lbnQiKSwgdG9KUyhleGVjLCBkKCktPmltcGwtPmRvY3Vt
ZW50KCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHN5bWJvbFRhYmxlUHV0V2l0aEF0
dHJpYnV0ZXMoSWRlbnRpZmllcihleGVjLCAiZG9jdW1lbnQiKSwgdG9KUyhleGVjLCB0aGlzLCBk
KCktPmltcGwtPmRvY3VtZW50KCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQogCiBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBKU0RPTVdpbmRvd0Jhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRl
eCAzM2FjN2JiLi5lZDEwMDBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtMTI0LDggKzEyNCw4IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKIAogICAg
IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gY29sbGVjdGlvbiA9IGRvY3VtZW50LT53aW5kb3dOYW1l
ZEl0ZW1zKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKGNvbGxlY3Rpb24tPmxlbmd0aCgpID09IDEp
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmZpcnN0SXRlbSgpKTsKLSAg
ICByZXR1cm4gdG9KUyhleGVjLCBjb2xsZWN0aW9uLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi0+Zmlyc3RJdGVtKCkpOworICAgIHJldHVybiB0
b0pTKGV4ZWMsIHRoaXNPYmosIGNvbGxlY3Rpb24uZ2V0KCkpOwogfQogCiBib29sIEpTRE9NV2lu
ZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTQyMSw3ICs0MjEsNyBAQCBK
U1ZhbHVlIEpTRE9NV2luZG93OjpldmVudChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgRXZl
bnQqIGV2ZW50ID0gY3VycmVudEV2ZW50KCk7CiAgICAgaWYgKCFldmVudCkKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgZXZlbnQpOworICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGNvbnN0X2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzKSwgZXZlbnQpOwog
fQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjppbWFnZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9t
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3Bw
CmluZGV4IGM3ZmZjZGUuLjkxYjNkMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIGJvb2wgSlNE
YXRhR3JpZENvbHVtbkxpc3Q6OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBEYXRhR3Jp
ZENvbHVtbkxpc3QqIGltCiBKU1ZhbHVlIEpTRGF0YUdyaWRDb2x1bW5MaXN0OjpuYW1lR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNEYXRhR3JpZENvbHVtbkxpc3QqIHRoaXNPYmog
PSBzdGF0aWNfY2FzdDxKU0RhdGFHcmlkQ29sdW1uTGlzdCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJh
c2UoKSkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRlbVdpdGhO
YW1lKHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2Jh
bE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuY3BwCmluZGV4IGI5ZWQ2ODUuLmQ3OGIyOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTcxLDYgKzcxLDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQogICAgIC8vIE51
bGwgY2hlY2sgYXMgY2xlYXJHbG9iYWxPYmplY3QoKSBjYW4gY2xlYXIgdGhpcyBhbmQgd2Ugc3Rp
bGwgZ2V0IGNhbGxlZCBiYWNrIGJ5CiAgICAgLy8geG1saHR0cHJlcXVlc3Qgb2JqZWN0cy4gU2Vl
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjc1CiAgICAgLy8gRklY
TUU6IElzIHRoaXMgY2hlY2sgc3RpbGwgbmVjZXNzYXJ5PyBSZXF1ZXN0cyBhcmUgc3VwcG9zZWQg
dG8gYmUgc3RvcHBlZCBiZWZvcmUgY2xlYXJHbG9iYWxPYmplY3QoKSBpcyBjYWxsZWQuCisgICAg
QVNTRVJUKGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVF
dmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKICAgICAgICAgcmVmKCk7CiAK
ICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICAgICAgYXJncy5hcHBlbmQo
dG9KUyhleGVjLCBldmVudCkpOworICAgICAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgZXZlbnQpKTsKIAogICAgICAgICBFdmVudCogc2F2ZWRFdmVudCA9IGdsb2JhbE9i
amVjdC0+Y3VycmVudEV2ZW50KCk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2
ZW50KGV2ZW50KTsKQEAgLTEyNyw3ICsxMjgsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCiAgICAgICAgICAgICBp
ZiAoaXNXaW5kb3dFdmVudCkKICAgICAgICAgICAgICAgICB0aGlzVmFsdWUgPSBnbG9iYWxPYmpl
Y3QtPnRvVGhpc09iamVjdChleGVjKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICB0aGlzVmFsdWUgPSB0b0pTKGV4ZWMsIGV2ZW50LT5jdXJyZW50VGFyZ2V0KCkpOworICAgICAg
ICAgICAgICAgIHRoaXNWYWx1ZSA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBldmVudC0+Y3Vy
cmVudFRhcmdldCgpKTsKICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLT50
aW1lb3V0Q2hlY2tlci5zdGFydCgpOwogICAgICAgICAgICAgcmV0dmFsID0gY2FsbChleGVjLCBq
c0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncyk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCmluZGV4IGQ1MjUyYzcuLmI3NWNj
Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcApAQCAtNjUsNyArNjUsNyBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRXZlbnRUYXJnZXQqIHRh
cmdldCkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnZXQpCiB7CiAgICAgaWYgKCF0YXJnZXQpCiAg
ICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTczLDMyICs3MywzMiBAQCBKU1ZhbHVlIHRvSlMo
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIEV2ZW50VGFyZ2V0KiB0YXJnZXQp
CiAjaWYgRU5BQkxFKFNWRykKICAgICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9ydHMgYm90
aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2UgaGFu
ZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2RlLgogICAg
IGlmIChTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0LT50b1NWR0VsZW1lbnRJ
bnN0YW5jZSgpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpbnN0YW5jZSk7CisgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5zdGFuY2UpOwogI2VuZGlmCiAgICAg
CiAgICAgaWYgKE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpKQotICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBub2RlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBub2RlKTsKIAogICAgIGlmIChET01XaW5kb3cqIGRvbVdpbmRvdyA9IHRhcmdldC0+dG9ET01X
aW5kb3coKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZG9tV2luZG93KTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21XaW5kb3cpOwogCiAgICAgaWYgKFhN
TEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3QoKSkKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgeGhyKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCB4aHIpOwogCiAgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0
YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgdXBsb2FkKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB1cGxv
YWQpOwogCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBpZiAoRE9N
QXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJnZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgp
KQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBjYWNoZSk7CisgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgY2FjaGUpOwogI2VuZGlmCiAKICAgICBpZiAoTWVzc2FnZVBv
cnQqIG1lc3NhZ2VQb3J0ID0gdGFyZ2V0LT50b01lc3NhZ2VQb3J0KCkpCi0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIG1lc3NhZ2VQb3J0KTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBtZXNzYWdlUG9ydCk7CiAKICNpZiBFTkFCTEUoV09SS0VSUykKICAgICBpZiAo
V29ya2VyKiB3b3JrZXIgPSB0YXJnZXQtPnRvV29ya2VyKCkpCi0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIHdvcmtlcik7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
d29ya2VyKTsKIAogICAgIGlmIChEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0
ID0gdGFyZ2V0LT50b0RlZGljYXRlZFdvcmtlckNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIHRv
SlNET01HbG9iYWxPYmplY3Qod29ya2VyQ29udGV4dCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqLCBFdmVudFRhcmdl
dCogdGFyZ2V0KQogCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogICAgIGlmIChTaGFyZWRX
b3JrZXIqIHNoYXJlZFdvcmtlciA9IHRhcmdldC0+dG9TaGFyZWRXb3JrZXIoKSkKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgc2hhcmVkV29ya2VyKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzaGFyZWRXb3JrZXIpOwogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5j
cHAKaW5kZXggYzExM2VjNy4uNGIzNzQ1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTczLDEwICs3MywxMCBAQCBKU1ZhbHVlIEpTSFRNTERv
Y3VtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpICYmIChmcmFt
ZSA9IHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4obm9kZSktPmNvbnRlbnRGcmFtZSgp
KSkKICAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGZyYW1lKTsKIAotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBub2RlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+
Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwogICAgIH0gCiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBj
b2xsZWN0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxP
YmplY3QoKSwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCkBA
IC04OCw3ICs4OCw3IEBAIEpTVmFsdWUgSlNIVE1MRG9jdW1lbnQ6OmFsbChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAgICAgaWYgKHYpCiAgICAgICAgIHJldHVybiB2OwogCi0gICAgcmV0dXJuIHRv
SlMoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oaW1wbCgpKS0+YWxsKCkuZ2V0KCkp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDxIVE1M
RG9jdW1lbnQqPihpbXBsKCkpLT5hbGwoKS5nZXQoKSk7CiB9CiAKIHZvaWQgSlNIVE1MRG9jdW1l
bnQ6OnNldEFsbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAzMzQ1NzY0Li40MTk0NjU3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAKQEAgLTM4LDE0
ICszOCwxNCBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudEhhbmRsZXJTY29wZShFeGVj
U3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW4mIHNjb3BlKSBjbwogICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gaW1wbCgpOwogCiAgICAgLy8gVGhlIGRvY3VtZW50IGlzIHB1dCBvbiBmaXJzdCwgZmFs
bCBiYWNrIHRvIHNlYXJjaGluZyBpdCBvbmx5IGFmdGVyIHRoZSBlbGVtZW50IGFuZCBmb3JtLgot
ICAgIHNjb3BlLnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBlbGVtZW50LT5vd25lckRvY3VtZW50
KCkpKSk7CisgICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgp
LCBlbGVtZW50LT5vd25lckRvY3VtZW50KCkpKSk7CiAKICAgICAvLyBUaGUgZm9ybSBpcyBuZXh0
LCBzZWFyY2hlZCBiZWZvcmUgdGhlIGRvY3VtZW50LCBidXQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXRz
ZWxmLgogICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCi0g
ICAgICAgIHNjb3BlLnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBmb3JtKSkpOworICAgICAgICBz
Y29wZS5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGZvcm0pKSk7CiAK
ICAgICAvLyBUaGUgZWxlbWVudCBpcyBvbiB0b3AsIHNlYXJjaGVkIGZpcnN0LgotICAgIHNjb3Bl
LnB1c2goYXNPYmplY3QodG9KUyhleGVjLCBlbGVtZW50KSkpOworICAgIHNjb3BlLnB1c2goYXNP
YmplY3QodG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZWxlbWVudCkpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxG
b3JtRWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVt
ZW50Q3VzdG9tLmNwcAppbmRleCBmZmEyZDU3Li5hZTY4ZmYwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcApAQCAtNTIsOCArNTIsOCBAQCBK
U1ZhbHVlIEpTSFRNTEZvcm1FbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIGZvcm0tPmdldE5hbWVkRWxlbWVudHMocHJvcGVy
dHlOYW1lLCBuYW1lZEl0ZW1zKTsKICAgICAKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0g
MSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgbmFtZWRJdGVtc1swXS5nZXQoKSk7Ci0gICAg
aWYgKG5hbWVkSXRlbXMuc2l6ZSgpID4gMSkgCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGpz
Rm9ybS0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXNbMF0uZ2V0KCkpOworICAgIGlmIChuYW1l
ZEl0ZW1zLnNpemUoKSA+IDEpCiAgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rl
c0NvbGxlY3Rpb24oZXhlYywganNGb3JtLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7CiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDQ2MGJhMDguLjdiY2Ey
ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rp
b25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxl
Y3Rpb25DdXN0b20uY3BwCkBAIC05MSw3ICs5MSw3IEBAIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0Nv
bGxlY3Rpb246OmFkZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiBKU1Zh
bHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JiBhcmdzKQogewogICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbiogaW1wID0gc3Rh
dGljX2Nhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0aW9uKj4oaW1wbCgpKTsKLSAgICBKU0hUTUxTZWxl
Y3RFbGVtZW50KiBiYXNlID0gc3RhdGljX2Nhc3Q8SlNIVE1MU2VsZWN0RWxlbWVudCo+KGFzT2Jq
ZWN0KHRvSlMoZXhlYywgaW1wLT5iYXNlKCkpKSk7CisgICAgSlNIVE1MU2VsZWN0RWxlbWVudCog
YmFzZSA9IHN0YXRpY19jYXN0PEpTSFRNTFNlbGVjdEVsZW1lbnQqPihhc09iamVjdCh0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBpbXAtPmJhc2UoKSkpKTsKICAgICByZXR1cm4gYmFzZS0+cmVt
b3ZlKGV4ZWMsIGFyZ3MpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yQ29udHJvbGxlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5z
cGVjdG9yQ29udHJvbGxlckN1c3RvbS5jcHAKaW5kZXggYjA2YzllOS4uNjQxODQyYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckNvbnRyb2xsZXJDdXN0b20uY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JDb250cm9sbGVyQ3VzdG9tLmNw
cApAQCAtMTA4LDEwICsxMDgsMTIgQEAgSlNWYWx1ZSBKU0luc3BlY3RvckNvbnRyb2xsZXI6Omdl
dFJlc291cmNlRG9jdW1lbnROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXIKICAgICBpZiAo
ZG9jdW1lbnQtPmlzUGx1Z2luRG9jdW1lbnQoKSB8fCBkb2N1bWVudC0+aXNJbWFnZURvY3VtZW50
KCkgfHwgZG9jdW1lbnQtPmlzTWVkaWFEb2N1bWVudCgpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAotICAgIEV4ZWNTdGF0ZSogcmVzb3VyY2VFeGVjID0gdG9KU0RPTVdpbmRvd1No
ZWxsKGZyYW1lKS0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBKU0RPTVdpbmRvdyogZ2xv
YmFsT2JqZWN0ID0gdG9KU0RPTVdpbmRvd1NoZWxsKGZyYW1lKS0+d2luZG93KCk7CisgICAgRXhl
Y1N0YXRlKiByZXNvdXJjZUV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKIAogICAg
IEpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICByZXR1cm4gSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVy
Ojp3cmFwKHJlc291cmNlRXhlYywgdG9KUyhyZXNvdXJjZUV4ZWMsIGRvY3VtZW50KSk7CisgICAg
Ly8gUGFzcyB0aGUgcmVzb3VyY2VzJ3MgZ2xvYmFsIG9iamVjdCBzbyB0aGF0IHRoZSBEb2N1bWVu
dCB3aWxsIGVuZCB1cCB3aXRoIHRoZSByZXNvdXJjZSdzIERvY3VtZW50IHByb3RvdHlwZS4KKyAg
ICByZXR1cm4gSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKHJlc291cmNlRXhlYywgdG9K
UyhyZXNvdXJjZUV4ZWMsIGdsb2JhbE9iamVjdCwgZG9jdW1lbnQpKTsKIH0KIAogSlNWYWx1ZSBK
U0luc3BlY3RvckNvbnRyb2xsZXI6OnNlYXJjaChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xp
c3QmIGFyZ3MpCkBAIC0xNDIsNyArMTQ0LDcgQEAgSlNWYWx1ZSBKU0luc3BlY3RvckNvbnRyb2xs
ZXI6OnNlYXJjaChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgICAg
IGlmIChuZXdTdGFydCA9PSBzdGFydFZpc2libGVQb3NpdGlvbihzZWFyY2hSYW5nZS5nZXQoKSwg
RE9XTlNUUkVBTSkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICByZXN1bHQuYXBwZW5k
KHRvSlMoZXhlYywgcmVzdWx0UmFuZ2UuZ2V0KCkpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCh0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCByZXN1bHRSYW5nZS5nZXQoKSkpOwogCiAgICAgICAg
IHNldFN0YXJ0KHNlYXJjaFJhbmdlLmdldCgpLCBuZXdTdGFydCk7CiAgICAgfSB3aGlsZSAodHJ1
ZSk7CkBAIC0yNzgsNyArMjgwLDggQEAgSlNWYWx1ZSBKU0luc3BlY3RvckNvbnRyb2xsZXI6OmN1
cnJlbnRDYWxsRnJhbWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKICAgICBFeGVj
U3RhdGUqIGdsb2JhbEV4ZWMgPSBjYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKS0+Z2xvYmFsT2JqZWN0
KCktPmdsb2JhbEV4ZWMoKTsKIAogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICByZXR1cm4g
SlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGdsb2JhbEV4ZWMsIHRvSlMoZXhlYywgY2Fs
bEZyYW1lKSk7CisgICAgLy8gSmF2YVNjcmlwdENhbGxGcmFtZSBpcyBvbmx5IGV2ZXIgYWNjZXNz
aWJsZSBmcm9tIHRoZSBJbnNwZWN0b3IgKGxpa2UgSlNJbnBzZWN0b3JDb250cm9sbGVyKSwgdGhl
IGluc3BlY3RvcidzIHdpbmRvdyBhbHdheXMgaGFzIHRoZSByaWdodCBwcm90b3R5cGVzLgorICAg
IHJldHVybiBKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZ2xvYmFsRXhlYywgdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QoKSwgY2FsbEZyYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNJbnNwZWN0
b3JDb250cm9sbGVyOjpwcm9maWxlcyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpB
cmdMaXN0JikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0
ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmlu
ZGV4IDg5MTMyNDMuLjdjYWZmMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
YXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVu
dExpc3RlbmVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6cGFyc2VDb2RlKCkgY29uc3QKICAgICAgICAgLy8gKGFuZCB0aGUgZG9jdW1lbnQsIGFuZCB0
aGUgZm9ybSAtIHNlZSBKU0hUTUxFbGVtZW50OjpldmVudEhhbmRsZXJTY29wZSkKICAgICAgICAg
U2NvcGVDaGFpbiBzY29wZSA9IGxpc3RlbmVyQXNGdW5jdGlvbi0+c2NvcGUoKTsKIAotICAgICAg
ICBKU1ZhbHVlIHRoaXNPYmogPSB0b0pTKGV4ZWMsIG1fb3JpZ2luYWxOb2RlKTsKKyAgICAgICAg
SlNWYWx1ZSB0aGlzT2JqID0gdG9KUyhleGVjLCBtX2dsb2JhbE9iamVjdCwgbV9vcmlnaW5hbE5v
ZGUpOwogICAgICAgICBpZiAodGhpc09iai5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxKU05vZGUqPihhc09iamVjdCh0aGlzT2JqKSktPnB1c2hFdmVudEhhbmRsZXJTY29w
ZShleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBsaXN0ZW5lckFzRnVuY3Rpb24tPnNldFNjb3Bl
KHNjb3BlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaW1lVHlwZUFycmF5
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaW1lVHlwZUFycmF5Q3VzdG9tLmNw
cAppbmRleCBjOTBkYWRkLi40YWYwMWViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01p
bWVUeXBlQXJyYXlDdXN0b20uY3BwCkBAIC0zNiw3ICszNiw3IEBAIGJvb2wgSlNNaW1lVHlwZUFy
cmF5OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgTWltZVR5cGVBcnJheSogbWltZVR5
cGVBcnJhCiBKU1ZhbHVlIEpTTWltZVR5cGVBcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIEpTTWltZVR5cGVBcnJheSogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTWlt
ZVR5cGVBcnJheSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwotICAgIHJldHVybiB0b0pT
KGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOworICAgIHJl
dHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCkt
Pm5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAppbmRleCA3YmQ5
NWI0Li41NTgyNWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rl
TWFwQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3Vz
dG9tLmNwcApAQCAtNDQsNyArNDQsNyBAQCBib29sIEpTTmFtZWROb2RlTWFwOjpjYW5HZXRJdGVt
c0Zvck5hbWUoRXhlY1N0YXRlKiwgTmFtZWROb2RlTWFwKiBpbXBsLCBjb25zdCBJZAogSlNWYWx1
ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpT
TmFtZWROb2RlTWFwKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOYW1lZE5vZGVNYXAqPihhc09i
amVjdChzbG90LnNsb3RCYXNlKCkpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5p
bXBsKCktPmdldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gdG9KUyhleGVj
LCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgpLT5nZXROYW1lZEl0ZW0o
cHJvcGVydHlOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCmluZGV4IGYzNmE3ZDYuLjI5
ODRiM2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVzQ29sbGVj
dGlvbi5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcApAQCAtNTYsOCArNTYsOCBAQCBKU1ZhbHVlIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb246Omxl
bmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLAogCiBKU1ZhbHVl
IEpTTmFtZWROb2Rlc0NvbGxlY3Rpb246OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU05hbWVk
Tm9kZXNDb2xsZWN0aW9uICp0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOYW1lZE5vZGVzQ29sbGVj
dGlvbio+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMs
ICgqdGhpc09iai0+bV9ub2Rlcylbc2xvdC5pbmRleCgpXS5nZXQoKSk7CisgICAgSlNOYW1lZE5v
ZGVzQ29sbGVjdGlvbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTmFtZWROb2Rlc0NvbGxlY3Rp
b24qPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0
aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgKCp0aGlzT2JqLT5tX25vZGVzKVtzbG90LmluZGV4KCld
LmdldCgpKTsKIH0KIAogYm9vbCBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
SXRlcmF0b3JDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAKaW5kZXggYTJiOTY1OC4uNDQzMjAyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAgSlNWYWx1ZSBKU05v
ZGVJdGVyYXRvcjo6bmV4dE5vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZS5nZXQoKSk7CisgICAgLy8gRklYTUU6IGds
b2JhbE9iamVjdCgpIGlzIG9ubHkgY29ycmVjdCwgYXNzdW1pbmcgeW91IGNhbiBuZXZlciBtYWtl
IGEgTm9kZUl0ZXJhdG9yIGZyb20KKyAgICAvLyBvbmUgZnJhbWUgd2hpY2ggaXRlcmF0ZXMgb3Zl
ciBub2RlcyBpbiBhbm90aGVyIGZyYW1lLiAgSSBiZWxpZXZlIHRoaXMgbWF5IGFjdHVhbGx5IGJl
IHBvc3NpYmxlLgorICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlLmdl
dCgpKTsKIH0KIAogSlNWYWx1ZSBKU05vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC02NCw3ICs2Niw5IEBAIEpTVmFsdWUgSlNOb2Rl
SXRlcmF0b3I6OnByZXZpb3VzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBub2RlLmdldCgpKTsKKyAgICAvLyBGSVhNRTog
Z2xvYmFsT2JqZWN0KCkgaXMgb25seSBjb3JyZWN0LCBhc3N1bWluZyB5b3UgY2FuIG5ldmVyIG1h
a2UgYSBOb2RlSXRlcmF0b3IgZnJvbQorICAgIC8vIG9uZSBmcmFtZSB3aGljaCBpdGVyYXRlcyBv
dmVyIG5vZGVzIGluIGFub3RoZXIgZnJhbWUuICBJIGJlbGlldmUgdGhpcyBtYXkgYWN0dWFsbHkg
YmUgcG9zc2libGUuCisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIG5vZGUu
Z2V0KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxp
c3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcApp
bmRleCAyODIxZDAxLi4wYjNiNDVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUxpc3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1
c3RvbS5jcHAKQEAgLTQyLDcgKzQyLDggQEAgc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsTm9kZUxpc3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb24sIEoKICAgICB1
bnNpZ25lZCBpbmRleCA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykudG9VSW50MzIoJm9rKTsK
ICAgICBpZiAoIW9rKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICByZXR1cm4g
dG9KUyhleGVjLCBzdGF0aWNfY2FzdDxKU05vZGVMaXN0Kj4oZnVuY3Rpb24pLT5pbXBsKCktPml0
ZW0oaW5kZXgpKTsKKyAgICBKU05vZGVMaXN0KiBqc05vZGVMaXN0ID0gc3RhdGljX2Nhc3Q8SlNO
b2RlTGlzdCo+KGZ1bmN0aW9uKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBqc05vZGVMaXN0LT5n
bG9iYWxPYmplY3QoKSwganNOb2RlTGlzdC0+aW1wbCgpLT5pdGVtKGluZGV4KSk7CiB9CiAKIENh
bGxUeXBlIEpTTm9kZUxpc3Q6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKQEAgLTU5
LDcgKzYwLDcgQEAgYm9vbCBKU05vZGVMaXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRl
KiwgTm9kZUxpc3QqIGltcGwsIGNvbnN0IElkZW50aWZpZXIKIEpTVmFsdWUgSlNOb2RlTGlzdDo6
bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTTm9kZUxpc3QqIHRoaXNPYmog
PSBzdGF0aWNfY2FzdDxKU05vZGVMaXN0Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0g
ICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5pdGVtV2l0aE5hbWUocHJvcGVy
dHlOYW1lKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCks
IHRoaXNPYmotPmltcGwoKS0+aXRlbVdpdGhOYW1lKHByb3BlcnR5TmFtZSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1
Z2luQXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkFycmF5Q3Vz
dG9tLmNwcAppbmRleCA4MWQ0Mjk1Li5jMWE4NGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5BcnJheUN1c3RvbS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgYm9vbCBKU1BsdWdpbkFy
cmF5OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgUGx1Z2luQXJyYXkqIHBsdWdpbkFy
cmF5LCBjb24KIEpTVmFsdWUgSlNQbHVnaW5BcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIEpTUGx1Z2luQXJyYXkqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU1BsdWdp
bkFycmF5Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhl
YywgdGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJu
IHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFt
ZWRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luQ3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5DdXN0b20uY3BwCmluZGV4IDU1NWRkOWUuLjQ2ZTRjODggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5DdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5DdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBAIGJv
b2wgSlNQbHVnaW46OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBQbHVnaW4qIHBsdWdp
biwgY29uc3QgSWRlbnRpZmllciYKIEpTVmFsdWUgSlNQbHVnaW46Om5hbWVHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU1BsdWdpbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTUGx1
Z2luKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywg
dGhpc09iai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIHRv
SlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJ
dGVtKHByb3BlcnR5TmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCmluZGV4
IDA1NTM2OGUuLmI3NzY2Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCkBAIC04MSw3ICs4MSw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTVkdFbGVtCiAKICAgICAvLyBFbnN1cmUgdGhhdCBvdXIgY29ycmVzcG9uZGluZyBlbGVtZW50
IGhhcyBhIEphdmFTY3JpcHQgd3JhcHBlciB0byBrZWVwIGl0cyBldmVudCBoYW5kbGVycyBhbGl2
ZS4KICAgICBpZiAob2JqZWN0KQotICAgICAgICB0b0pTKGV4ZWMsIG9iamVjdC0+Y29ycmVzcG9u
ZGluZ0VsZW1lbnQoKSk7CisgICAgICAgIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3Qt
PmNvcnJlc3BvbmRpbmdFbGVtZW50KCkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCmluZGV4IDFkYTY0
MTguLjM4ODc3MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0
TGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0
Q3VzdG9tLmNwcApAQCAtNDUsNyArNDUsNyBAQCBKU1ZhbHVlIEpTU3R5bGVTaGVldExpc3Q6Om5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAg
IEpTU3R5bGVTaGVldExpc3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU1N0eWxlU2hlZXRMaXN0
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CiAgICAgSFRNTFN0eWxlRWxlbWVudCogZWxl
bWVudCA9IHRoaXNPYmotPmltcGwoKS0+Z2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZSk7CiAgICAg
QVNTRVJUKGVsZW1lbnQpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIGVsZW1lbnQtPnNoZWV0KCkp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBlbGVtZW50
LT5zaGVldCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCmluZGV4IDU4ZWVhNzIuLmJhMTIyMzUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnBhcmVudE5vZGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JikKICAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5wYXJlbnROb2RlKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OmZp
cnN0Q2hpbGQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKQEAgLTUwLDcgKzUwLDcg
QEAgSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JikKICAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5maXJzdENoaWxkKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6Omxh
c3RDaGlsZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNTgsNyArNTgsNyBA
QCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6bGFzdENoaWxkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
QXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+bGFzdENoaWxkKGV4ZWMpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6Om5leHRT
aWJsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCkBAIC02Niw3ICs2Niw3IEBA
IEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpuZXh0U2libGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPm5leHRTaWJsaW5nKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnBy
ZXZpb3VzU2libGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQpAQCAtNzQsNyAr
NzQsNyBAQCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+cHJldmlvdXNT
aWJsaW5nKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNWYWx1ZSBK
U1RyZWVXYWxrZXI6OnByZXZpb3VzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
KQpAQCAtODIsNyArODIsNyBAQCBKU1ZhbHVlIEpTVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCiAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+
cHJldmlvdXNOb2RlKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7Cisg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogICAgIAogSlNW
YWx1ZSBKU1RyZWVXYWxrZXI6Om5leHROb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYpCkBAIC05MCw3ICs5MCw3IEBAIEpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpuZXh0Tm9kZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQogICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPm5l
eHROb2RlKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9kZSk7CisgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIG5vZGUpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggMDFlNTNhNi4uODVk
N2I1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNw
cApAQCAtNjIsMjcgKzYyLDM0IEBAIEpTVmFsdWUgSlNYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1U
b0ZyYWdtZW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJnCiB7CiAgICAgSlNW
YWx1ZSBub2RlVmFsID0gYXJncy5hdCgwKTsKICAgICBKU1ZhbHVlIGRvY1ZhbCA9IGFyZ3MuYXQo
MSk7Ci0gICAgaWYgKG5vZGVWYWwuaXNPYmplY3QoJkpTTm9kZTo6c19pbmZvKSAmJiBkb2NWYWwu
aXNPYmplY3QoJkpTRG9jdW1lbnQ6OnNfaW5mbykpIHsKLSAgICAgICAgV2ViQ29yZTo6Tm9kZSog
bm9kZSA9IHN0YXRpY19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKS0+aW1wbCgpOwot
ICAgICAgICBEb2N1bWVudCogZG9jID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzdGF0aWNfY2Fz
dDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoZG9jVmFsKSktPmltcGwoKSk7Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGltcGwoKS0+dHJhbnNmb3JtVG9GcmFnbWVudChub2RlLCBkb2MpLmdldCgp
KTsKKyAgICBpZiAoIW5vZGVWYWwuaXNPYmplY3QoJkpTTm9kZTo6c19pbmZvKSB8fCAhZG9jVmFs
LmlzT2JqZWN0KCZKU0RvY3VtZW50OjpzX2luZm8pKSB7CisgICAgICAgIC8vIFRocm93IGV4Y2Vw
dGlvbj8KKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIC8vIFRocm93
IGV4Y2VwdGlvbj8KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgTm9k
ZSogc291cmNlTm9kZSA9IHN0YXRpY19jYXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKS0+
aW1wbCgpOworICAgIEpTRG9jdW1lbnQqIGpzRGVzdGluYXRpb25Eb2MgPSBzdGF0aWNfY2FzdDxK
U0RvY3VtZW50Kj4oYXNPYmplY3QoZG9jVmFsKSk7CisgICAgRG9jdW1lbnQqIGRlc3RpbmF0aW9u
RG9jdW1lbnQgPSBqc0Rlc3RpbmF0aW9uRG9jLT5pbXBsKCk7CisKKyAgICAvLyBOT1RFOiBUaGF0
IHdlJ3JlIGNhcmVmdWwgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gZnJvbSB0aGUgd2luZG93
IG9mIHRoZSBvd25lciBkb2N1bWVudCwgbm90IGZyb20gd2hhdGV2ZXIgd2luZG93IFhMU1RQcm9j
ZXNzb3IgY2FtZSBmcm9tLgorICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzRGVzdGluYXRpb25Eb2Mt
Pmdsb2JhbE9iamVjdCgpLCBpbXBsKCktPnRyYW5zZm9ybVRvRnJhZ21lbnQoc291cmNlTm9kZSwg
ZGVzdGluYXRpb25Eb2N1bWVudCkpOwogfQogCiBKU1ZhbHVlIEpTWFNMVFByb2Nlc3Nvcjo6dHJh
bnNmb3JtVG9Eb2N1bWVudChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7
CiAgICAgSlNWYWx1ZSBub2RlVmFsID0gYXJncy5hdCgwKTsKLSAgICBpZiAobm9kZVZhbC5pc09i
amVjdCgmSlNOb2RlOjpzX2luZm8pKSB7Ci0gICAgICAgIEpTTm9kZSogbm9kZSA9IHN0YXRpY19j
YXN0PEpTTm9kZSo+KGFzT2JqZWN0KG5vZGVWYWwpKTsKLSAgICAgICAgUmVmUHRyPERvY3VtZW50
PiByZXN1bHREb2N1bWVudCA9IGltcGwoKS0+dHJhbnNmb3JtVG9Eb2N1bWVudChub2RlLT5pbXBs
KCkpOwotICAgICAgICBpZiAocmVzdWx0RG9jdW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCByZXN1bHREb2N1bWVudC5nZXQoKSk7CisgICAgaWYgKCFub2RlVmFsLmlzT2JqZWN0
KCZKU05vZGU6OnNfaW5mbykpIHsKKyAgICAgICAgLy8gVGhyb3cgZXhjZXB0aW9uPwogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgLy8gVGhyb3cgZXhjZXB0aW9uPwot
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgSlNOb2RlKiBzb3VyY2VOb2RlID0gc3Rh
dGljX2Nhc3Q8SlNOb2RlKj4oYXNPYmplY3Qobm9kZVZhbCkpOworICAgIFJlZlB0cjxEb2N1bWVu
dD4gcmVzdWx0RG9jdW1lbnQgPSBpbXBsKCktPnRyYW5zZm9ybVRvRG9jdW1lbnQoc291cmNlTm9k
ZS0+aW1wbCgpKTsKKyAgICBpZiAoIXJlc3VsdERvY3VtZW50KQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKworICAgIC8vIFdlJ3JlIGFzc3VtaW5nIHRoZSB3aW5kb3cgdGhpcyBYU0xU
UHJvY2Vzc29yIGNhbWUgZnJvbSBpcyBtb3JlIGNvcnJlY3QgdGhhbiB0aGUgbGV4aWNhbCBzY29w
ZS4KKyAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgcmVzdWx0RG9jdW1lbnQu
cmVsZWFzZSgpKTsKIH0KIAogSlNWYWx1ZSBKU1hTTFRQcm9jZXNzb3I6OnNldFBhcmFtZXRlcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0NDIyMDVlLi4xMGI0ZTJjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBKU09iamVj
dCogU2NyaXB0Q29udHJvbGxlcjo6anNPYmplY3RGb3JQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5F
bGVtZW50KiBwbHVnaW4pCiAgICAgLy8gQ3JlYXRlIGEgSlNPYmplY3QgYm91bmQgdG8gdGhpcyBl
bGVtZW50CiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNWYWx1ZSBqc0VsZW1lbnRWYWx1ZSA9
IHRvSlMoZXhlYywgcGx1Z2luKTsKKyAgICBKU1ZhbHVlIGpzRWxlbWVudFZhbHVlID0gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QoKSwgcGx1Z2luKTsKICAgICBpZiAoIWpzRWxlbWVudFZhbHVlIHx8
ICFqc0VsZW1lbnRWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGU1YmUxZDYu
LjhhNDJlZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0
ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNw
cApAQCAtNzIsNyArNzIsOCBAQCBQYXNzUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0
ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSogbm9kZSwgQXR0cmlidQogICAgIC8vIEVuc3Vy
ZSB0aGF0ICdub2RlJyBoYXMgYSBKYXZhU2NyaXB0IHdyYXBwZXIgdG8gbWFyayB0aGUgZXZlbnQg
bGlzdGVuZXIgd2UncmUgY3JlYXRpbmcuCiAgICAgewogICAgICAgICBKU0xvY2sgbG9jayhmYWxz
ZSk7Ci0gICAgICAgIHRvSlMoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIG5vZGUpOworICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHBhc3MgdGhlIGdsb2JhbCBvYmplY3QgYXNzb2NpYXRlZCB3
aXRoIHRoZSBub2RlCisgICAgICAgIHRvSlMoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGds
b2JhbE9iamVjdCwgbm9kZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIEpTTGF6eUV2ZW50TGlzdGVu
ZXI6OmNyZWF0ZShhdHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgZXZlbnRQYXJhbWV0ZXJOYW1l
KG5vZGUtPmlzU1ZHRWxlbWVudCgpKSwgYXR0ci0+dmFsdWUoKSwgZ2xvYmFsT2JqZWN0LCBub2Rl
LCBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJMaW5lTnVtYmVyKCkpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRPYmplY3QuY3BwCmluZGV4IDdmNjM5MWQuLmM3NDNlNWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKQEAgLTEyNiw3ICsxMjYsOCBAQCBib29sIFNjcmlwdEds
b2JhbE9iamVjdDo6c2V0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFt
ZSwgY29uc3QgUwogYm9vbCBTY3JpcHRHbG9iYWxPYmplY3Q6OnNldChTY3JpcHRTdGF0ZSogc2Ny
aXB0U3RhdGUsIGNvbnN0IGNoYXIqIG5hbWUsIEluc3BlY3RvckNvbnRyb2xsZXIqIHZhbHVlKQog
ewogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5wdXREaXJlY3QoSWRlbnRpZmllcihzY3JpcHRTdGF0ZSwgbmFtZSksIHRvSlMo
c2NyaXB0U3RhdGUsIHZhbHVlKSk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc2NyaXB0U3RhdGUtPmxleGljYWxH
bG9iYWxPYmplY3QoKSk7CisgICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoSWRlbnRpZmllcihz
Y3JpcHRTdGF0ZSwgbmFtZSksIHRvSlMoc2NyaXB0U3RhdGUsIGdsb2JhbE9iamVjdCwgdmFsdWUp
KTsKICAgICByZXR1cm4gaGFuZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKaW5kZXggYWIzOTJi
Yy4uMGZlMmM2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3RR
dWFyYW50aW5lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJh
bnRpbmUuY3BwCkBAIC02OSwxMCArNjksMTEgQEAgYm9vbCBnZXRRdWFyYW50aW5lZFNjcmlwdE9i
amVjdChEYXRhYmFzZSogZGF0YWJhc2UsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRPYmoKICAg
ICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBFeGVjU3RhdGUqIGV4
ZWMgPSB0b0pTRE9NV2luZG93KGZyYW1lKS0+Z2xvYmFsRXhlYygpOworICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NV2luZG93KGZyYW1lKTsKKyAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKIAogICAgIEpTTG9jayBsb2Nr
KGZhbHNlKTsKLSAgICBxdWFyYW50aW5lZE9iamVjdCA9IFNjcmlwdE9iamVjdChhc09iamVjdChK
U0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZXhlYywgdG9KUyhleGVjLCBkYXRhYmFzZSkp
KSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNw
ZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBk
YXRhYmFzZSkpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg0LDEwICs4NSwxMSBAQCBi
b29sIGdldFF1YXJhbnRpbmVkU2NyaXB0T2JqZWN0KEZyYW1lKiBmcmFtZSwgU3RvcmFnZSogc3Rv
cmFnZSwgU2NyaXB0T2JqZWN0JiBxdQogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKHN0
b3JhZ2UpOwogCi0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmds
b2JhbEV4ZWMoKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RP
TVdpbmRvdyhmcmFtZSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCk7CiAKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgcXVhcmFudGluZWRPYmpl
Y3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFw
KGV4ZWMsIHRvSlMoZXhlYywgc3RvcmFnZSkpKSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBT
Y3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMs
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdG9yYWdlKSkpKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMTAwLDcgKzEwMiw4IEBAIGJvb2wgZ2V0UXVhcmFudGluZWRTY3JpcHRPYmplY3Qo
Tm9kZSogbm9kZSwgU2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iamVjdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwotICAgIHF1YXJhbnRpbmVkT2Jq
ZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0V3JhcHBlcjo6d3Jh
cChleGVjLCB0b0pTKGV4ZWMsIG5vZGUpKSkpOworICAgIC8vIEZJWE1FOiBTaG91bGQgdXNlIHNv
bWUgc29ydCBvZiBnbG9iYWxPYmplY3RGcm9tTm9kZSgpCisgICAgcXVhcmFudGluZWRPYmplY3Qg
PSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4
ZWMsIHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwg
bm9kZSkpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbSBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRl
cm5hbC5tbQppbmRleCBlYjk4YThhLi45YjI2ZTU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSW50ZXJuYWwubW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUlu
dGVybmFsLm1tCkBAIC0xMjMsMTEgKzEyMywxMyBAQCB2b2lkIHJlbW92ZURPTVdyYXBwZXIoRE9N
T2JqZWN0SW50ZXJuYWwqIGltcGwpCiAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICBKU0M6OkV4
ZWNTdGF0ZSAqZXhlYyA9IGZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKTsKLSAgICAKKworICAgIC8vIFRoZSBnbG9iYWwgb2JqZWN0IHdoaWNoIHNob3VsZCBvd24g
dGhpcyBub2RlLgorICAgIFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBmcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdCgpOworICAgIEpTQzo6RXhlY1N0YXRlICpl
eGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisKICAgICAvLyBHZXQgKG9yIGNyZWF0
ZSkgYSBjYWNoZWQgSlMgb2JqZWN0IGZvciB0aGUgRE9NIG5vZGUuCi0gICAgSlNDOjpKU09iamVj
dCAqc2NyaXB0SW1wID0gYXNPYmplY3QoV2ViQ29yZTo6dG9KUyhleGVjLCBub2RlSW1wbCkpOwor
ICAgIEpTQzo6SlNPYmplY3QgKnNjcmlwdEltcCA9IGFzT2JqZWN0KFdlYkNvcmU6OnRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBub2RlSW1wbCkpOwogCiAgICAgSlNDOjpCaW5kaW5nczo6Um9vdE9i
amVjdCogcm9vdE9iamVjdCA9IGZyYW1lLT5zY3JpcHQoKS0+YmluZGluZ1Jvb3RPYmplY3QoKTs=
</data>

          </attachment>
      

    </bug>

</bugzilla>