<?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>233310</bug_id>
          
          <creation_ts>2021-11-18 02:18:17 -0800</creation_ts>
          <short_desc>[WebGPU] Add converters from serializable descriptors to interface descriptors</short_desc>
          <delta_ts>2021-11-19 14:05:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>rmorisset</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816359</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 02:18:17 -0800</bug_when>
    <thetext>[WebGPU] Add converters from serializable descriptors to interface descriptors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816364</commentid>
    <comment_count>1</comment_count>
      <attachid>444654</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 02:24:46 -0800</bug_when>
    <thetext>Created attachment 444654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816482</commentid>
    <comment_count>2</comment_count>
      <attachid>444654</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-11-18 09:18:52 -0800</bug_when>
    <thetext>Comment on attachment 444654
Patch

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

Can you test any of this? Or, what is your plan for testing?

&gt; Source/WebKit/Shared/WebGPU/WebGPUCompilationMessage.cpp:38
&gt; +    return PAL::WebGPU::CompilationMessage::create(String(compilationMessage.message), compilationMessage.type, compilationMessage.lineNum, compilationMessage.linePos, compilationMessage.offset, compilationMessage.length);

Surprised you have to explicitly create a new String here. What is CompilationMessage.message?

&gt; Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp:53
&gt; +    for (const auto&amp; backingTimestampWrite : computePassTimestampWrites) {
&gt; +        auto timestampWrite = convertFromBacking(backingTimestampWrite);
&gt; +        if (!timestampWrite)
&gt; +            return std::nullopt;
&gt; +    }

Did you forget to append the timestampWrite to timestampWrites?

&gt; Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp:38
&gt; +    return { { } };

??

&gt; Source/WebKit/Shared/WebGPU/WebGPURenderPassDescriptor.cpp:56
&gt; +    if (renderPassDescriptor.depthStencilAttachment &amp;&amp; !depthStencilAttachment)

I think if renderPassDescriptor.depthStencilAttachment wasn&apos;t null, then depthStencilAttachment also won&apos;t be? Or could convertFromBacking still return a nullopt? i.e. can you just test depthStencilAttachment?

&gt; Source/WebKit/Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp:53
&gt; +    for (const auto&amp; backingTimestampWrite : renderPassTimestampWrites) {
&gt; +        auto timestampWrite = convertFromBacking(backingTimestampWrite);
&gt; +        if (!timestampWrite)
&gt; +            return std::nullopt;
&gt; +    }

You forgot to populate timestampWrites.

&gt; Source/WebKit/Shared/WebGPU/WebGPURenderPipelineDescriptor.cpp:73
&gt; +    auto fragment = ([&amp;] () -&gt; std::optional&lt;PAL::WebGPU::FragmentState&gt; {
&gt; +        if (renderPipelineDescriptor.fragment)
&gt; +            return convertFromBacking(*renderPipelineDescriptor.fragment);
&gt; +        return std::nullopt;
&gt; +    })();
&gt; +    if (renderPipelineDescriptor.fragment &amp;&amp; !fragment)
&gt; +        return std::nullopt;

Same question as above - is it enough to simply test fragment? Or early return if !rPD.fragment?

&gt; Source/WebKit/Shared/WebGPU/WebGPUVertexState.cpp:48
&gt; +        if (backingBuffer) {
&gt; +            auto buffer = convertFromBacking(*backingBuffer);
&gt; +            if (!buffer)
&gt; +                return std::nullopt;

Missing buffers.uncheckedAppend(buffer)?

Also, since you still append in the zero-buffer case, maybe this whole loop could be replaced with a vertexState.buffers.map()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816533</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 11:43:10 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #2)
&gt; Can you test any of this? Or, what is your plan for testing?

Yes. The plan is to use the WebGPU Conformance Test Suit. This set of patches I&apos;m writing now is the foundation - I&apos;m getting the code mostly written mostly correctly before we go through all the CTS tests and make them pass (and likely add many tests to the CTS too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816538</commentid>
    <comment_count>4</comment_count>
      <attachid>444654</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 11:48:34 -0800</bug_when>
    <thetext>Comment on attachment 444654
Patch

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

&gt;&gt; Source/WebKit/Shared/WebGPU/WebGPUCompilationMessage.cpp:38
&gt;&gt; +    return PAL::WebGPU::CompilationMessage::create(String(compilationMessage.message), compilationMessage.type, compilationMessage.lineNum, compilationMessage.linePos, compilationMessage.offset, compilationMessage.length);
&gt; 
&gt; Surprised you have to explicitly create a new String here. What is CompilationMessage.message?

It&apos;s also a string. CompilationMessage::create() takes a String&amp;&amp;. I should just make an overload that takes a const String&amp; so the caller doesn&apos;t have to do this.

&gt;&gt; Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp:53
&gt;&gt; +    }
&gt; 
&gt; Did you forget to append the timestampWrite to timestampWrites?

I&apos;ll switch all these to use Vector::map().

&gt;&gt; Source/WebKit/Shared/WebGPU/WebGPUExternalTextureBindingLayout.cpp:38
&gt;&gt; +    return { { } };
&gt; 
&gt; ??

ExternalTextureBindingLayout has no fields in it. https://gpuweb.github.io/gpuweb/#dictdef-gpuexternaltexturebindinglayout

&gt;&gt; Source/WebKit/Shared/WebGPU/WebGPURenderPassDescriptor.cpp:56
&gt;&gt; +    if (renderPassDescriptor.depthStencilAttachment &amp;&amp; !depthStencilAttachment)
&gt; 
&gt; I think if renderPassDescriptor.depthStencilAttachment wasn&apos;t null, then depthStencilAttachment also won&apos;t be? Or could convertFromBacking still return a nullopt? i.e. can you just test depthStencilAttachment?

convertFromBacking() can return null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816590</commentid>
    <comment_count>5</comment_count>
      <attachid>444654</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 13:15:45 -0800</bug_when>
    <thetext>Comment on attachment 444654
Patch

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

&gt;&gt;&gt; Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp:53
&gt;&gt;&gt; +    }
&gt;&gt; 
&gt;&gt; Did you forget to append the timestampWrite to timestampWrites?
&gt; 
&gt; I&apos;ll switch all these to use Vector::map().

Oh, map() actually won&apos;t work for these, because if any member fails to convert, the map operation has to abort. I&apos;ve converted some other places to use map(), though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816611</commentid>
    <comment_count>6</comment_count>
      <attachid>444730</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 13:34:34 -0800</bug_when>
    <thetext>Created attachment 444730
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816737</commentid>
    <comment_count>7</comment_count>
      <attachid>444777</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-18 20:41:53 -0800</bug_when>
    <thetext>Created attachment 444777
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816748</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-18 22:31:03 -0800</bug_when>
    <thetext>Committed r286047 (244434@main): &lt;https://commits.webkit.org/244434@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444777.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816749</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 22:32:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/85587265&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816922</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-11-19 10:52:51 -0800</bug_when>
    <thetext>Reverted r286047 for reason:

Breaks internal builds

Committed r286067 (244454@main): &lt;https://commits.webkit.org/244454@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816972</commentid>
    <comment_count>11</comment_count>
      <attachid>444848</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-19 13:08:21 -0800</bug_when>
    <thetext>Created attachment 444848
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816991</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-19 14:05:38 -0800</bug_when>
    <thetext>Committed r286077 (244464@main): &lt;https://commits.webkit.org/244464@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444848.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444654</attachid>
            <date>2021-11-18 02:24:46 -0800</date>
            <delta_ts>2021-11-18 09:18:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233310-20211118022446.patch</filename>
            <type>text/plain</type>
            <size>309254</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmMDcyNDFiNzliYjM1Y2Jh
OTc0MDNkY2NmOTc4Nzg1YmQ4ZjUwYTEuLjY5NTkxMzRlYTM5MmY0MGQ4NDZlZTZhOWM3YmQzNGY1
YWFmOTI2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMyIEBACisyMDIxLTExLTE4ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQWRk
IGNvbnZlcnRlcnMgZnJvbSBzZXJpYWxpemFibGUgZGVzY3JpcHRvcnMgdG8gaW50ZXJmYWNlIGRl
c2NyaXB0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgV2ViR1BVIGFic3RyYWN0IGludGVyZmFjZSAoaW4gUEFML2dyYXBoaWNzL1dlYkdQVSkg
aGFzIGEgc2V0IG9mIHN0cnVjdHMgZm9yIGRlc2NyaXB0b3JzLiBUaGVzZSBkZXNjcmlwdG9ycyBo
b2xkIHJlZmVyZW5jZXMgdG8KKyAgICAgICAgb2JqZWN0cywgc28gdGhlc2UgaW50ZXJmYWNlcyBj
YW4ndCBiZSBzZXJpYWxpemVkIGRpcmVjdGx5LiBJbnN0ZWFkLCB3ZSBoYXZlIGEgcGFyYWxsZWwg
c2V0IG9mIHN0cnVjdHMgKGluIFdlYktpdC9TaGFyZWQvV2ViR1BVKQorICAgICAgICB3aGljaCBy
ZXBsYWNlIHRoZSBvYmplY3QgcmVmZXJlbmNlcyB3aXRoIFdlYkdQVUlkZW50aWZpZXJzLiBUaGUg
d2ViIHByb2Nlc3Mgc2lkZSB3aWxsIGNvbnZlcnQgdGhlIGFic3RyYWN0IGludGVyZmFjZSBzdHJ1
Y3RzCisgICAgICAgIHRvIHRoZSBzZXJpYWxpemFibGUgb25lcywgYW5kIHRoZSBHUFUgcHJvY2Vz
cyBzaWRlIHdpbGwgY29udmVydCBiYWNrLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNvbnZl
cnRlcnMgYmFjaywgZnJvbSB0aGUgc2VyaWFsaXphYmxlCisgICAgICAgIHN0cnVjdHMgdG8gdGhl
IGFic3RyYWN0IGludGVyZmFjZSBzdHJ1Y3RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cExh
eW91dEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpj
b252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Q29tcHV0ZVBhc3NF
bmNvZGVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydERldmljZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJvbUJhY2tp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9t
QmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBp
cGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVj
dEhlYXA6OmNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFj
a2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRl
ckJ1bmRsZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFw
Ojpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFk
ZXJNb2R1bGVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmguCisgICAgICAg
IChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERl
c2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwRW50cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cExheW91dERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRy
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmxlbmRDb21wb25lbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRp
bmcuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXND
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRl
LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9y
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5k
aW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yVGFyZ2V0U3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3Iu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdl
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3Iu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRT
dGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0Rlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdy
aXRlcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVCbGVuZFN0YXRlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oLgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVF
cnJvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
RXh0ZW50M0QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJu
YWxUZXh0dXJlQmluZGluZ0xheW91dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5QnVmZmVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eUV4dGVybmFsSW1hZ2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eVRleHR1cmUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmg6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRl
eHR1cmVUYWdnZWQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxh
eW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Lmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2Ft
cGxlU3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU91dE9mTWVtb3J5RXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVU9yaWdpbjJELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oLgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3Rh
dGUuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRp
dmVTdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaDoK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
RW5jb2RlckRlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
clBhc3NDb2xvckF0dGFjaG1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5QnVmZmVyLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVy
QmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmguCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5n
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9w
dGlvbnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5
b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRl
c2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0
YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRp
bmdMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5n
TGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VVN1cHBvcnRlZEZlYXR1cmVzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91
dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0
ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmguCisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4QXR0cmlidXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhC
dWZmZXJMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUu
aDoKKwogMjAyMS0xMS0xOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbTW9kZWxdIFttYWNPU10gQWRkIHN1cHBvcnQgZm9yIGludGVyYWN0aW9uIG9uIG1h
Y09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcAppbmRleCBjNjBlOTRmNmMyMTBiMGIwYzA5YWFm
YTg5NjY0N2VkMWZmNzY5NTk1Li4wOTEyMjE5NGVjYzdlZjY5MGYwNjI3Yzg4YWQyOTRlNTM5M2E3
MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgogI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZS5oPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXQuaD4KICNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0Lmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVRdWV1ZS5oPgpAQCAtNjAsNyArNjEsNyBAQCBPYmplY3RIZWFwOjp+T2JqZWN0
SGVhcCgpCiB7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBPYmplY3RIZWFwOjpj
b252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BB
TDo6V2ViR1BVOjpBZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+
PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtNjgsNyArNjksNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6
QWRhcHRlciogT2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVy
YXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBP
YmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJp
bmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBh
dXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJh
dG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFM
OjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC03Niw3ICs3Nyw3IEBA
IGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3Jv
dXBGcm9tQmFja2luZyhXZWJHUFVJZGVuCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6QmluZEdyb3VwPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFM
OjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cExh
eW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BV
OjpCaW5kR3JvdXBMYXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpC
aW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtODQsNyArODUsNyBAQCBjb25z
dCBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdy
b3VwTGF5b3V0RnJvbUJhY2tpbgogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cExheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBB
TDo6V2ViR1BVOjpCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RI
ZWFwOjpjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTkyLDcg
KzkzLDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydEJ1
ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVm
PFBBTDo6V2ViR1BVOjpCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25z
dCBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRC
dWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQ
VTo6Q29tbWFuZEJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9
IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVj
dHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21t
YW5kQnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTEwMCw3ICsxMDEsNyBAQCBjb25zdCBQ
QUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZm
ZXJGcm9tQmFja2luZyhXZQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNv
bW1hbmRCdWZmZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6Oldl
YkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpDb21t
YW5kRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29i
amVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVu
ZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVu
Y29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTA4LDcgKzEwOSw3IEBAIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21tYW5kRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVy
RnJvbUJhY2tpbmcoCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6Q29tbWFu
ZEVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tcHV0ZVBhc3NFbmNv
ZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6
OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5jb2Rl
ckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0
ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09
IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMTYsNyArMTE3
LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6
Y29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb20KICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBB
TDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwog
fQogCi1jb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBPYmplY3RIZWFwOjpjb252
ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVy
KQorUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1
dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0
ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8
UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMjQs
NyArMTI1LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVh
cDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW4KICAgICByZXR1cm4gc3RkOjpnZXQ8
UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigp
OwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBPYmplY3RIZWFwOjpjb252ZXJ0RGV2
aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6
OkRldmljZSogT2JqZWN0SGVhcDo6Y29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4+KGl0ZXJhdG9yLT52
YWx1ZSkpCkBAIC0xMzIsNyArMTMzLDE1IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9i
amVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyCiAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVy
dEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BV
OjpFeHRlcm5hbFRleHR1cmUqIE9iamVjdEhlYXA6OmNvbnZlcnRFeHRlcm5hbFRleHR1cmVGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpF
eHRlcm5hbFRleHR1cmU+PihpdGVyYXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+
PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOworfQorCitQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RI
ZWFwOjpjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZjxQQUw6OldlYkdQVTo6R1BVPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTE0MCw3ICsxNDks
NyBAQCBjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudAogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFM
OjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlBp
cGVsaW5lTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1f
b2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMu
ZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGlu
ZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xNDgsNyArMTU3LDcgQEAgY29uc3QgUEFM
OjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlv
dXRGcm9tQmFja2luZygKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpQaXBl
bGluZUxheW91dD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2Vi
R1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RI
ZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwog
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0x
NTYsNyArMTY1LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpj
b252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGkKICAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9
CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlF1ZXVl
KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBA
IC0xNjQsNyArMTczLDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpj
b252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGkKICAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9
CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpj
b252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK1BBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpj
b252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmll
cik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+PihpdGVyYXRv
ci0+dmFsdWUpKQpAQCAtMTcyLDcgKzE4MSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyCiAg
ICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4+
KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJC
dW5kbGUqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVl
KSkKQEAgLTE4MCw3ICsxODksNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBP
YmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViRwogICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1
ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2Jq
ZWN0SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9s
ZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0ZXJh
dG9yLT52YWx1ZSkpCkBAIC0xODgsNyArMTk3LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmEK
ICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+
KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQ
aXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBP
YmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJh
dG9yLT52YWx1ZSkpCkBAIC0xOTYsNyArMjA1LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
clBpcGVsaW5lKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZygK
ICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0
ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBP
YmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK1BBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxl
ckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0
ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09
IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJH
UFU6OlNhbXBsZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMjA0LDcgKzIxMyw3IEBAIGNvbnN0
IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6
U2FtcGxlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BV
OjpTaGFkZXJNb2R1bGUqIE9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxl
KiBPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChp
ZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6
OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0
b3ItPnZhbHVlKSkKQEAgLTIxMiw3ICsyMjEsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVy
TW9kdWxlKiBPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViRwog
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJh
dG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBPYmpl
Y3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK1BBTDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OlRleHR1cmU+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMjIwLDcgKzIyOSw3IEBAIGNvbnN0IFBB
TDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6VGV4
dHVyZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpU
ZXh0dXJlVmlldyogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBPYmpl
Y3RIZWFwOjpjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldz4+KGl0ZXJhdG9yLT52YWx1
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCmluZGV4IDU0NmQxZTUxNzk3YjY2YTBlMzZlNjhiN2M1
MTBiYjUwMmJkMDE5NjQuLjlkOGZhMTA0NDczNTU1M2Y5NDU2ZTE1N2MzZmM1OTExOWYzNGY4ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCkBAIC00NywyNyArNDcsMjggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBPYmplY3RIZWFwKCk7CiAKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6QWRhcHRl
ciogY29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAg
ICBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRH
cm91cExheW91dCogY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZm
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6Oldl
YkdQVTo6Q29tbWFuZEJ1ZmZlciogY29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29k
ZXIqIGNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZp
bmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRD
b21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAg
ICBjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVs
aW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpX
ZWJHUFU6OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
IGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UGlwZWxp
bmVMYXlvdXQqIGNvbnZlcnRQaXBlbGluZUxheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogY29udmVydFF1ZXJ5
U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlF1ZXVlKiBjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogY29udmVy
dFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
LSAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxl
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJH
UFU6OlJlbmRlclBhc3NFbmNvZGVyKiBjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVy
UGlwZWxpbmUqIGNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBjb252ZXJ0U2FtcGxl
ckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2Vi
R1BVOjpTaGFkZXJNb2R1bGUqIGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZSogY29udmVy
dFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQ
QUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBjb252ZXJ0
QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2Vi
R1BVOjpCaW5kR3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFM
OjpXZWJHUFU6OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFu
ZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rl
ciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
IGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRl
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6Oldl
YkdQVTo6RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSogY29udmVydEV4dGVybmFs
VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2Vi
R1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQqIGNvbnZlcnRQaXBlbGluZUxheW91dEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpRdWVy
eVNldCogY29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
CisgICAgUEFMOjpXZWJHUFU6OlF1ZXVlKiBjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlciog
Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxl
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJl
bmRlclBhc3NFbmNvZGVyKiBjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUqIGNv
bnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwor
ICAgIFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUqIGNvbnZl
cnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZSogY29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIGNvbnZlcnRUZXh0
dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgdXNpbmcg
T2JqZWN0ID0gc3RkOjp2YXJpYW50PAogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+
LApAQCAtNzksNiArODAsNyBAQCBwcml2YXRlOgogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkNv
bXB1dGVQYXNzRW5jb2Rlcj4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVs
aW5lPiwKICAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+LAorICAgICAgICBSZWY8UEFM
OjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZT4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BV
PiwKICAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4sCiAgICAgICAgIFJl
ZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9n
ZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKaW5kZXggODUyYzI1OGM3ZTRjMmMzMjhkNTA3Yjlm
NTJhYzQ3ODU5ZjMxYmRlOC4uYzY3ZTJkMWUzZDVkZDBiOThhODc3NWNlYTZlZDliNzhlNTkzZWIw
YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291
cmNlcy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3Vy
Y2VzLnNoCkBAIC0xNCw3ICsxNCw3IEBAIGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBd
OyB0aGVuCiAgICAgZmkKIGZpCiAKLVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTAzCitVbmlm
aWVkU291cmNlQ3BwRmlsZUNvdW50PTExMQogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAK
IGlmIFsgJCMgLWVxIDAgXTsgdGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNjZi
ZDFiNzM3OWIwNGQ1MmRiMGNkMWI5NDA2OWJlMWE5NGZlZTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAK
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBEZXNjcmlwdG9yJiBiaW5kR3JvdXBEZXNjcmlwdG9y
KQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25z
dCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGJpbmRHcm91cERlc2NyaXB0b3IpKTsKKyAgICBpZiAo
IWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvKiBiaW5kR3Jv
dXBMYXlvdXQgPSBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoYmluZEdyb3VwRGVz
Y3JpcHRvci5iaW5kR3JvdXBMYXlvdXQpOworICAgIGlmICghYmluZEdyb3VwTGF5b3V0KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpCaW5k
R3JvdXBFbnRyeT4gZW50cmllczsKKyAgICBlbnRyaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
YmluZEdyb3VwRGVzY3JpcHRvci5lbnRyaWVzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRv
JiBiYWNraW5nRW50cnkgOiBiaW5kR3JvdXBEZXNjcmlwdG9yLmVudHJpZXMpIHsKKyAgICAgICAg
YXV0byBlbnRyeSA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nRW50cnkpOworICAgICAgICBp
ZiAoIWVudHJ5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgZW50
cmllcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZW50cnkpKTsKKyAgICB9CisKKyAgICByZXR1
cm4geyB7IFdURk1vdmUoKmJhc2UpLCAqYmluZEdyb3VwTGF5b3V0LCBXVEZNb3ZlKGVudHJpZXMp
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IuaAppbmRleCBiY2NlNWI5Mzg2ZDg5ZjdjMGExM2M4Y2E1M2Rk
OTNiZmUyNWQzYWRkLi42YTM0ZDE5ZDJkMzc4ZGNhZDc0YTQ4YmFjMGYzMjQ0NTk3YjdjZGMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmgKQEAgLTI1LDkgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRW50cnkuaCIK
ICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC02NSwzICs2OCw1IEBAIHN0cnVj
dCBCaW5kR3JvdXBEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwRW50cnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cEVudHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODMyZGQwNTdiNTU4YTliOTAxOGQwNzZjNzky
MzQ4NjIyODk3YzRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cEVudHJ5Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBFbnRyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBFbnRyeT4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91cEVudHJ5JiBiaW5kR3JvdXBF
bnRyeSkKK3sKKyAgICBzd2l0Y2ggKGJpbmRHcm91cEVudHJ5LnR5cGUpIHsKKyAgICBjYXNlIEJp
bmRpbmdSZXNvdXJjZVR5cGU6OlNhbXBsZXI6IHsKKyAgICAgICAgYXV0byogc2FtcGxlciA9IGNv
bnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcoYmluZEdyb3VwRW50cnkuaWRlbnRpZmllcik7CisgICAg
ICAgIGlmICghc2FtcGxlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50cnkuYmluZGluZywgeyAqc2FtcGxlciB9IH0gfTsK
KyAgICB9CisgICAgY2FzZSBCaW5kaW5nUmVzb3VyY2VUeXBlOjpUZXh0dXJlVmlldzogeworICAg
ICAgICBhdXRvKiB0ZXh0dXJlVmlldyA9IGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKGJp
bmRHcm91cEVudHJ5LmlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXRleHR1cmVWaWV3KQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBiaW5kR3Jv
dXBFbnRyeS5iaW5kaW5nLCB7ICp0ZXh0dXJlVmlldyB9IH0gfTsKKyAgICB9CisgICAgY2FzZSBC
aW5kaW5nUmVzb3VyY2VUeXBlOjpCdWZmZXJCaW5kaW5nOiB7CisgICAgICAgIGF1dG8gYnVmZmVy
QmluZGluZyA9IGNvbnZlcnRGcm9tQmFja2luZyhiaW5kR3JvdXBFbnRyeS5idWZmZXJCaW5kaW5n
KTsKKyAgICAgICAgaWYgKCFidWZmZXJCaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBiaW5kR3JvdXBFbnRyeS5iaW5kaW5nLCB7ICpi
dWZmZXJCaW5kaW5nIH0gfSB9OworICAgIH0KKyAgICBjYXNlIEJpbmRpbmdSZXNvdXJjZVR5cGU6
OkV4dGVybmFsVGV4dHVyZTogeworICAgICAgICBhdXRvKiBleHRlcm5hbFRleHR1cmUgPSBjb252
ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJvbUJhY2tpbmcoYmluZEdyb3VwRW50cnkuaWRlbnRpZmllcik7
CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBiaW5kR3JvdXBFbnRyeS5iaW5kaW5nLCB7ICpl
eHRlcm5hbFRleHR1cmUgfSB9IH07CisgICAgfQorICAgIH0KKworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQmluZEdyb3VwRW50cnkuaAppbmRleCBkMmY0OWQ1MDg0MzdkYmM5ZGZiYWQ3YmVkODYx
MTMxYWM3ZDRlOGUwLi42NDYyMWUxZjk1Y2I2ODhjMDA4YzljYzFlZDY5ZWQ1NjVhY2QyMGMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50
cnkuaApAQCAtMjUsOSArMjUsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC04MSw2ICs4NCw4IEBAIHN0cnVjdCBC
aW5kR3JvdXBFbnRyeSB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCiAKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCisKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlPiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA2NDg0ZTlkMmMwY2Iz
ZGVkNDJmYTJkMGYxZWY4ZTk1ODAyMjk0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcApAQCAt
MCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0
b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3Im
IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZy
b21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oYmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50
cnk+IGVudHJpZXM7CisgICAgZW50cmllcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGJpbmRHcm91
cExheW91dERlc2NyaXB0b3IuZW50cmllcy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYg
YmFja2luZ0VudHJ5IDogYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5lbnRyaWVzKSB7CisgICAg
ICAgIGF1dG8gZW50cnkgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFja2luZ0VudHJ5KTsKKyAgICAg
ICAgaWYgKCFlbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAg
IGVudHJpZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmVudHJ5KSk7CisgICAgfQorCisgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShlbnRyaWVzKSB9IH07Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggYjRmMGNiNGM2NjJlZjNhZjJkYTU1ODIwOWYyYzcw
OGE1MDljNDU1Yi4uNDdhMmUwMmMzYzY1YWVkNDUzYmZmYzExOTJhOWE2NTViNjdmNWM2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5LmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIK
KyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC01NywzICs2MCw1IEBAIHN0cnVjdCBCaW5kR3JvdXBMYXlv
dXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cExheW91dEVudHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzU3MTI2MTMxOWU1NzdkN2Y5MzEwMWVk
OGIwZTFjMzM5YmI3NmZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmNwcApAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91
cExheW91dEVudHJ5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJX
ZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0
OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRF
bnRyeT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IEJpbmRHcm91cExheW91dEVudHJ5JiBiaW5kR3JvdXBMYXlvdXRFbnRyeSkKK3sKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nTGF5b3V0PiBidWZmZXI7CisgICAg
aWYgKGJpbmRHcm91cExheW91dEVudHJ5LmJ1ZmZlcikgeworICAgICAgICBidWZmZXIgPSBjb252
ZXJ0RnJvbUJhY2tpbmcoKmJpbmRHcm91cExheW91dEVudHJ5LmJ1ZmZlcik7CisgICAgICAgIGlm
ICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTYW1wbGVyQmluZGluZ0xheW91dD4gc2FtcGxl
cjsKKyAgICBpZiAoYmluZEdyb3VwTGF5b3V0RW50cnkuc2FtcGxlcikgeworICAgICAgICBzYW1w
bGVyID0gY29udmVydEZyb21CYWNraW5nKCpiaW5kR3JvdXBMYXlvdXRFbnRyeS5zYW1wbGVyKTsK
KyAgICAgICAgaWYgKCFzYW1wbGVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xh
eW91dD4gdGV4dHVyZTsKKyAgICBpZiAoYmluZEdyb3VwTGF5b3V0RW50cnkudGV4dHVyZSkgewor
ICAgICAgICB0ZXh0dXJlID0gY29udmVydEZyb21CYWNraW5nKCpiaW5kR3JvdXBMYXlvdXRFbnRy
eS50ZXh0dXJlKTsKKyAgICAgICAgaWYgKCF0ZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9y
YWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IHN0b3JhZ2VUZXh0dXJlOworICAgIGlmIChiaW5kR3Jv
dXBMYXlvdXRFbnRyeS5zdG9yYWdlVGV4dHVyZSkgeworICAgICAgICBzdG9yYWdlVGV4dHVyZSA9
IGNvbnZlcnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkuc3RvcmFnZVRleHR1cmUp
OworICAgICAgICBpZiAoIXN0b3JhZ2VUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlcm5h
bFRleHR1cmVCaW5kaW5nTGF5b3V0PiBleHRlcm5hbFRleHR1cmU7CisgICAgaWYgKGJpbmRHcm91
cExheW91dEVudHJ5LmV4dGVybmFsVGV4dHVyZSkgeworICAgICAgICBleHRlcm5hbFRleHR1cmUg
PSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJpbmRHcm91cExheW91dEVudHJ5LmV4dGVybmFsVGV4dHVy
ZSk7CisgICAgICAgIGlmICghZXh0ZXJuYWxUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICByZXR1cm4geyB7IGJpbmRHcm91cExheW91dEVudHJ5
LmJpbmRpbmcsIGJpbmRHcm91cExheW91dEVudHJ5LnZpc2liaWxpdHksIFdURk1vdmUoYnVmZmVy
KSwgV1RGTW92ZShzYW1wbGVyKSwgV1RGTW92ZSh0ZXh0dXJlKSwgV1RGTW92ZShzdG9yYWdlVGV4
dHVyZSksIFdURk1vdmUoZXh0ZXJuYWxUZXh0dXJlKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaApp
bmRleCBiODMwYTU5MTQ4OTZlNWRmNzI1MmZmNGQwYzYzMjA1YzU5N2RkYzFhLi43YjU0YTI3MDJi
ZGU3ZGFmZDg5ZmQwOWVkMWE0NzEwZTU3ZDI3MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCIKICNpbmNsdWRlICJXZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgiCiAjaW5jbHVkZSAiV2ViR1BVU2FtcGxlckJp
bmRpbmdMYXlvdXQuaCIKQEAgLTk5LDMgKzEwMSw1IEBAIHN0cnVjdCBCaW5kR3JvdXBMYXlvdXRF
bnRyeSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCbGVuZENvbXBvbmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U3NmIwYmZkMGU0ZmUyYzM2
MWI1MjA1ZGE4MGZlOWZhN2JhMzU2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5jcHAKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCbGVuZENv
bXBvbmVudC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRDb21wb25lbnQ+IENvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCbGVuZENvbXBvbmVudCYg
YmxlbmRDb21wb25lbnQpCit7CisgICAgcmV0dXJuIHsgeyBibGVuZENvbXBvbmVudC5vcGVyYXRp
b24sIGJsZW5kQ29tcG9uZW50LnNyY0ZhY3RvciwgYmxlbmRDb21wb25lbnQuZHN0RmFjdG9yIH0g
fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxl
bmRDb21wb25lbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENv
bXBvbmVudC5oCmluZGV4IGVlYmY5M2U3NGIyYjcxYzVkNmVkNDZhMDc2ODEwNzk4YWZjZDA4ZmUu
LmQyYmIxOGMwMThiZTllMWI4M2ZhNTVkNGUzOTczOGY3NTBlZTU5ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oCkBAIC0yNSw2
ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
bGVuZEZhY3Rvci5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRP
cGVyYXRpb24uaD4KIApAQCAtNjQsMyArNjcsNSBAQCBzdHJ1Y3QgQmxlbmRDb21wb25lbnQgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVCbGVuZFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVu
ZFN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjRkMmU3OWE0OGUyODdhNjg3NDJlMjMxOTBhZDc2YTY3
MjM5MTdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJsZW5kU3RhdGUuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQmxlbmRTdGF0ZS5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpCbGVuZFN0YXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgQmxlbmRTdGF0ZSYgYmxlbmRTdGF0ZSkKK3sKKyAgICBhdXRvIGNvbG9yID0gY29u
dmVydEZyb21CYWNraW5nKGJsZW5kU3RhdGUuY29sb3IpOworICAgIGlmICghY29sb3IpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIGFscGhhID0gY29udmVydEZyb21C
YWNraW5nKGJsZW5kU3RhdGUuYWxwaGEpOworICAgIGlmICghYWxwaGEpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbG9yKSwgV1RGTW92
ZSgqYWxwaGEpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQmxlbmRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kU3RhdGUuaAppbmRleCA5ZTg0YmFjZTllYTk5YjMwNWEzNjkwNjJlZWJhNjU5ZDYyOWU4
ZmE4Li45NzM2MGUyN2EyYWYyZjk3MDMxYjQwNmZhMmQ3Y2YwMDQwZWY5Njg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKQEAgLTI1LDcgKzI1
LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5j
bHVkZSAiV2ViR1BVQmxlbmRDb21wb25lbnQuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1Y3QgQmxlbmRT
dGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmYmM5ZDk0YThiYmUxMzgxMjdh
NmVjNmU1OWQ1M2FhN2RhMDVhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCdWZmZXJCaW5k
aW5nLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVCdWZmZXJCaW5kaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc+IENvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCdWZmZXJCaW5kaW5nJiBidWZmZXJC
aW5kaW5nKQoreworICAgIGF1dG8qIGJ1ZmZlciA9IGNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhi
dWZmZXJCaW5kaW5nLmJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpidWZmZXIsIGJ1ZmZlckJpbmRpbmcub2Zm
c2V0LCBidWZmZXJCaW5kaW5nLnNpemUgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCmluZGV4IDMxNmI0MTY4YTFkOWM1MTIy
ODRkYTNlZjZhNjIwYTI3Mzc4NThiMGYuLmE1YjBhMWUxNjE5MDk2ZThmMzdkYWJjNmY4ZWE4ZmYx
ZDFjYTEwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
dWZmZXJCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckJpbmRpbmcuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVn
cmFsVHlwZXMuaD4KQEAgLTY2LDMgKzY4LDUgQEAgc3RydWN0IEJ1ZmZlckJpbmRpbmcgewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
dWZmZXJCaW5kaW5nTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjhjMzQ3YTZhOTk0MTAxNmY4
MTVjNjgwNjZiYTkwZjQ4YWFlM2ZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQnVm
ZmVyQmluZGluZ0xheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5n
TGF5b3V0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgQnVmZmVyQmluZGluZ0xheW91dCYgYnVmZmVyQmluZGluZ0xheW91dCkKK3sKKyAgICByZXR1
cm4geyB7IGJ1ZmZlckJpbmRpbmdMYXlvdXQudHlwZSwgYnVmZmVyQmluZGluZ0xheW91dC5oYXNE
eW5hbWljT2Zmc2V0LCBidWZmZXJCaW5kaW5nTGF5b3V0Lm1pbkJpbmRpbmdTaXplIH0gfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmlu
ZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJp
bmRpbmdMYXlvdXQuaAppbmRleCBmOWQxMTBlNGIwYmJlNjViM2VmNWEyNmRkZjFjZTMyZDQ0YmRm
MmU1Li5hMDg4ZjMyMjg4MTBjNzI3MzRiMGFhYWJjMTEyZmNjMDU4ZDAwZmNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5
b3V0LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdUeXBlLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAKQEAgLTY0LDMgKzY3LDUgQEAgc3RydWN0
IEJ1ZmZlckJpbmRpbmdMYXlvdXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDU2NjZhYTk4OWQ2M2JiMTk4Y2ZhYjExOWE4MWI4YmEyOGI4MmU5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
Y3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpC
dWZmZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgYnVmZmVyRGVzY3JpcHRvcikKK3sKKyAgICBh
dXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVz
Y3JpcHRvckJhc2UmPihidWZmZXJEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwg
YnVmZmVyRGVzY3JpcHRvci5zaXplLCBidWZmZXJEZXNjcmlwdG9yLnVzYWdlLCBidWZmZXJEZXNj
cmlwdG9yLm1hcHBlZEF0Q3JlYXRpb24gfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IDljNTM0NGEyNGJm
MGQ4OWQ2MWY0OGQxMWY2ZjU3OTQ1YThmMDFjM2IuLmRjYTU2ZTFlYTcyN2EwOTg3NzZhNGMyZmM5
N2IyY2IyYmQ3ZmQ5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyVXNhZ2UuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KIApAQCAtNzEsMyArNzQsNSBAQCBzdHJ1Y3Qg
QnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZh
c0NvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNh
bnZhc0NvbmZpZ3VyYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NjY3ZGFjNDU2ZGY3MmZlYmQwMmNk
ZWJjMDEzMzExYjZmYTFhZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAKQEAgLTAsMCArMSw1NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDYW52YXND
b25maWd1cmF0aW9uLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJX
ZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRp
b24+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBD
YW52YXNDb25maWd1cmF0aW9uJiBjYW52YXNDb25maWd1cmF0aW9uKQoreworICAgIGF1dG8qIGRl
dmljZSA9IGNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhjYW52YXNDb25maWd1cmF0aW9uLmRldmlj
ZSk7CisgICAgaWYgKCFkZXZpY2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlbnQzRD4gc2l6ZTsKKyAgICBpZiAoY2Fu
dmFzQ29uZmlndXJhdGlvbi5zaXplKSB7CisgICAgICAgIHNpemUgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoKmNhbnZhc0NvbmZpZ3VyYXRpb24uc2l6ZSk7CisgICAgICAgIGlmICghc2l6ZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyAqZGV2
aWNlLCBjYW52YXNDb25maWd1cmF0aW9uLmZvcm1hdCwgY2FudmFzQ29uZmlndXJhdGlvbi51c2Fn
ZSwgY2FudmFzQ29uZmlndXJhdGlvbi5jb2xvclNwYWNlLCBjYW52YXNDb25maWd1cmF0aW9uLmNv
bXBvc2l0aW5nQWxwaGFNb2RlLCBXVEZNb3ZlKHNpemUpIH0gfTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaApp
bmRleCA4NGI0YjA5NzVhOGQ3MTk0OTQ4ODY1YWFlNzE3ZWVjZTE4NjBiNDljLi45NjRhOWI1NDEy
ZWM5Njk1MzIxODk4NjBhZmIzODAzNWNlMmQ4N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKQEAgLTI1LDYg
KzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNp
bmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlIDxjc3RkaW50PgpAQCAtOTUsMyArOTcsNSBAQCBzdHJ1Y3QgQ2FudmFzQ29uZmln
dXJhdGlvbiB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFhNzExOTc4YWNmZTM1MWJkYmMyODQxZDNlODNlZjAz
YjczZmY5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb2xvci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3IuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3JEaWN0PiBD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29sb3JE
aWN0JiBjb2xvckRpY3QpCit7CisgICAgcmV0dXJuIHsgeyBjb2xvckRpY3QuciwgY29sb3JEaWN0
LmcsIGNvbG9yRGljdC5iLCBjb2xvckRpY3QuYSB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNvbG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNv
bG9yLCBbXSAoY29uc3QgVmVjdG9yPGRvdWJsZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6Q29sb3I+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0b3IgfSB9OworICAg
IH0sIFt0aGlzXSAoY29uc3QgQ29sb3JEaWN0JiBjb2xvckRpY3QpIC0+IHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkNvbG9yPiB7CisgICAgICAgIGF1dG8gY29sb3IgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoY29sb3JEaWN0KTsKKyAgICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3IpIH0gfTsK
KyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29sb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCmlu
ZGV4IDRlMGY0MzlkZmY1YmE4YTI0NjE1YjBiMzc4ZDExNDFhODU4YTc5ODEuLjNjNTkzZjBkMzg0
MmFjZWQzZGEwODMxNTJkNDYzYzg3NzEyZjMyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb2xvci5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8
dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC03NCwzICs3Nyw1IEBAIHN0cnVjdCBDb2xvckRpY3QgewogdXNpbmcgQ29s
b3IgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPGRvdWJsZT4sIENvbG9yRGljdD47CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRT
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRT
dGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM5Y2ZiYzFkYjA4ZWY3NzBkODRjZTUyYmVhYzFhMDIzZGEz
ZmY1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvclRhcmdldFN0YXRlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCIKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9y
VGFyZ2V0U3RhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZT4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9yVGFyZ2V0U3RhdGUmIGNvbG9yVGFy
Z2V0U3RhdGUpCit7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRTdGF0ZT4g
YmxlbmQ7CisgICAgaWYgKGNvbG9yVGFyZ2V0U3RhdGUuYmxlbmQpIHsKKyAgICAgICAgYmxlbmQg
PSBjb252ZXJ0RnJvbUJhY2tpbmcoKmNvbG9yVGFyZ2V0U3RhdGUuYmxlbmQpOworICAgICAgICBp
ZiAoIWJsZW5kKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICByZXR1cm4geyB7IGNvbG9yVGFyZ2V0U3RhdGUuZm9ybWF0LCBXVEZNb3ZlKGJsZW5kKSwgY29s
b3JUYXJnZXRTdGF0ZS53cml0ZU1hc2sgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCmluZGV4IDJlMzAzYzQ3ZTA1
MjFhMTI5NDQxNGIwNjljZmUyMzc5MmQzZTZmOTUuLmZiNDRkNmUwZDliY2UwZWZhOGQxZTZiZmQ1
N2U5ZjA0ZWVmZWZiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb2xvclRhcmdldFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUJsZW5kU3Rh
dGUuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUNvbG9yV3JpdGUuaD4KQEAgLTY3LDMgKzY5LDUgQEAgc3RydWN0IENvbG9yVGFyZ2V0
U3RhdGUgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQyYjk5OGVkZGUzZTRhYmNjOThhMGU3MjE0ZWQyY2RlMDFlYzhiNGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2Ny
aXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tbWFuZEJ1ZmZlckRlc2Ny
aXB0b3ImIGNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZl
cnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNv
bW1hbmRCdWZmZXJEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSB9IH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCBhZmI2MDgzYzA1NDUxZjI1M2M3ZDJiNWNiNmE0YmVi
NWVlZjJjM2JhLi5kZjE3M2M0OGZlM2RjYWRkMTRhZTg3YmVhZDI5YmJhODJkZmM3ZGI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlw
dG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgewogCkBAIC00NywzICs1MCw1IEBAIHN0cnVjdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciA6
IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTI0ZDQxN2E1MjExZDI5ODBhZWUyNzUwOWJlNmI1
ZjUyYzg0MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3ImIGNvbW1hbmRFbmNvZGVyRGVzY3Jp
cHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8
Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihjb21tYW5kRW5jb2RlckRlc2NyaXB0b3IpKTsK
KyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4geyB7IFdURk1vdmUoKmJhc2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgKaW5k
ZXggMzNiZWIwOWU2ZDVlMDQ3MTZmZDNiOGRjNmFiNTBjOGU3ODYyYTVmNi4uMThlNGEwZjEwMzM4
MWZkNGVjNjAyYzNmNTk0MzdjNzdhMjA1NzViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaApA
QCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUg
PG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCkBAIC00NywzICs1MCw1
IEBAIHN0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3Jp
cHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY1NDUy
NTVkOTYxN2VjYTRlNTI4MTIwMzEyODUwNGU4YzMxMDBlZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaD4KKworbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworUmVmUHRyPFBBTDo6V2ViR1BVOjpDb21waWxhdGlv
bk1lc3NhZ2U+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBDb21waWxhdGlvbk1lc3NhZ2UmIGNvbXBpbGF0aW9uTWVzc2FnZSkKK3sKKyAgICByZXR1
cm4gUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZTo6Y3JlYXRlKFN0cmluZyhjb21waWxh
dGlvbk1lc3NhZ2UubWVzc2FnZSksIGNvbXBpbGF0aW9uTWVzc2FnZS50eXBlLCBjb21waWxhdGlv
bk1lc3NhZ2UubGluZU51bSwgY29tcGlsYXRpb25NZXNzYWdlLmxpbmVQb3MsIGNvbXBpbGF0aW9u
TWVzc2FnZS5vZmZzZXQsIGNvbXBpbGF0aW9uTWVzc2FnZS5sZW5ndGgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2Uu
aAppbmRleCA0OGVhNGRiNTRhYzIyOGFiODdjM2I5OGY0NWRiMzg3MWVmYTBlOTI2Li4yMzViY2M1
YTUyNjdlZmE1ODIzMGM1MGE4MTRiM2FjNWEwYWRhM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC0yNSw3
ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTg2LDMgKzg5LDUgQEAgc3RydWN0IENvbXBpbGF0
aW9uTWVzc2FnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOTI5ZGI1ZjQ0MTc4MWIwYzhlMjc5ZjhkMjk5NTUxMWZiODMyOTMwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVz
Y3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGFzc0Rlc2NyaXB0b3ImIGNv
bXB1dGVQYXNzRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihjb21wdXRlUGFzc0Rl
c2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBhdXRvIHRpbWVzdGFtcFdyaXRlcyA9IGNvbnZlcnRGcm9tQmFja2luZyhjb21wdXRl
UGFzc0Rlc2NyaXB0b3IudGltZXN0YW1wV3JpdGVzKTsKKyAgICBpZiAoIXRpbWVzdGFtcFdyaXRl
cykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqYmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0
b3IuaAppbmRleCA3YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5Li41Njg5
YmUzY2IxMjExMzZhMDU5NTA2OWU4MWEwOTQwM2E0Yjc0MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5o
CkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiCiAj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25h
bD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1
Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NTIxNTQzM2ZjMTZkNDFhMjUwMDQ3OTc2MTYyODI2YTYwODZiYzQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc1RpbWVzdGFtcFdyaXRlcy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZSYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSkKK3sKKyAgICBhdXRv
KiBxdWVyeVNldCA9IGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKGNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGUucXVlcnlTZXQpOworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpxdWVyeVNldCwgY29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZS5xdWVyeUluZGV4LCBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmxvY2F0aW9u
IH0gfTsKK30KKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZXM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZXMpCit7CisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
PiB0aW1lc3RhbXBXcml0ZXM7CisgICAgdGltZXN0YW1wV3JpdGVzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIGJhY2tpbmdUaW1lc3RhbXBXcml0ZSA6IGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVz
KSB7CisgICAgICAgIGF1dG8gdGltZXN0YW1wV3JpdGUgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFj
a2luZ1RpbWVzdGFtcFdyaXRlKTsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIHJldHVybiB0aW1lc3RhbXBX
cml0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaAppbmRleCA0ZjIyZDlhYWIxZGI2
MjhiZjMxMzYyMmM4NDk4YzZhODRhYzI3ZDNmLi5kZTdkNDAyNjYxNDZkMDA5YzY2MzI1ODU5MjNk
MzNjYzBiNGZhOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaApAQCAtMjUsNyArMjUs
MTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNs
dWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcExvY2F0aW9uLmg+
CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNjksMyArNzIsNSBAQCBzdHJ1Y3QgQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZSB7CiB1c2luZyBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3Rv
cjxDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWRlYWUyNWI1YWZiNTIwZDQwYjA4M2IyZjMwZmE4MmIw
NDBiNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgY29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nh
c3Q8Y29uc3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSY+KGNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBhdXRvIGNvbXB1dGUgPSBjb252ZXJ0RnJvbUJhY2tpbmcoY29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5jb21wdXRlKTsKKyAgICBpZiAoIWNvbXB1dGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKCpjb21wdXRlKSB9IH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggY2RkNjVkMDk1ZjY4ZTVlY2JlYjk4N2QzYWIzM2IyOGEy
Y2I2NDYxNi4uZTFiMTY2ODM3NGUxZDM5NDA0N2Y3Y2NkYjQ5MTUxM2UxZTk4YThiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCkBAIC01Niwz
ICs1OSw1IEBAIHN0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIDogcHVibGljIFBpcGVs
aW5lRGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
CmluZGV4IDU5NTQ1ZDYwNDY5YWJlZTI1MzAyZjdjOTM0N2I4NDAyNTI3Y2NiMTIuLjYwMDVjODhm
ODFhZTI5YWUxZDAyMTNkNGJhOTNiNTRkMWU1YWM2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQuaApAQCAtMjcsNjIgKzI3LDI2NSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisj
aW5jbHVkZSAiV2ViR1BVQ29sb3IuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcy5oIgorI2luY2x1ZGUgIldlYkdQVUVycm9yLmgiCisjaW5jbHVkZSAiV2ViR1BV
RXh0ZW50M0QuaCIKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2Vi
R1BVT3JpZ2luMkQuaCIKKyNpbmNsdWRlICJXZWJHUFVPcmlnaW4zRC5oIgorI2luY2x1ZGUgIldl
YkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbG9yLmg+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oPgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXJyb3IuaD4KKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVudDNELmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVT3JpZ2luM0QuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgUEFMOjpXZWJHUFUgewogCiBjbGFzcyBBZGFwdGVyOwogY2xhc3MgQmluZEdy
b3VwOworc3RydWN0IEJpbmRHcm91cERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwRW50cnk7
CiBjbGFzcyBCaW5kR3JvdXBMYXlvdXQ7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
cjsKK3N0cnVjdCBCaW5kR3JvdXBMYXlvdXRFbnRyeTsKK3N0cnVjdCBCbGVuZENvbXBvbmVudDsK
K3N0cnVjdCBCbGVuZFN0YXRlOwogY2xhc3MgQnVmZmVyOworc3RydWN0IEJ1ZmZlckJpbmRpbmc7
CitzdHJ1Y3QgQnVmZmVyQmluZGluZ0xheW91dDsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOwor
c3RydWN0IENhbnZhc0NvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQ29sb3JUYXJnZXRTdGF0ZTsKIGNs
YXNzIENvbW1hbmRCdWZmZXI7CitzdHJ1Y3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I7CiBjbGFz
cyBDb21tYW5kRW5jb2RlcjsKK3N0cnVjdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I7CitjbGFz
cyBDb21waWxhdGlvbk1lc3NhZ2U7CitzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOwogY2xh
c3MgQ29tcHV0ZVBhc3NFbmNvZGVyOwogY2xhc3MgQ29tcHV0ZVBpcGVsaW5lOworc3RydWN0IENv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3I7CitzdHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGU7CiBjbGFz
cyBEZXZpY2U7CitzdHJ1Y3QgRGV2aWNlRGVzY3JpcHRvcjsKK3N0cnVjdCBFeHRlcm5hbFRleHR1
cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I7CitjbGFz
cyBFeHRlcm5hbFRleHR1cmU7CitzdHJ1Y3QgRnJhZ21lbnRTdGF0ZTsKIGNsYXNzIEdQVTsKK3N0
cnVjdCBJZGVudGlmaWVyOworc3RydWN0IEltYWdlQ29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFnZUNv
cHlFeHRlcm5hbEltYWdlOworc3RydWN0IEltYWdlQ29weVRleHR1cmU7CitzdHJ1Y3QgSW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZDsKK3N0cnVjdCBJbWFnZURhdGFMYXlvdXQ7CitzdHJ1Y3QgTXVsdGlz
YW1wbGVTdGF0ZTsKK3N0cnVjdCBPYmplY3REZXNjcmlwdG9yQmFzZTsKK2NsYXNzIE91dE9mTWVt
b3J5RXJyb3I7CitzdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKIGNsYXNzIFBpcGVsaW5l
TGF5b3V0Oworc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBQcmltaXRp
dmVTdGF0ZTsKK3N0cnVjdCBQcm9ncmFtbWFibGVTdGFnZTsKIGNsYXNzIFF1ZXJ5U2V0Oworc3Ry
dWN0IFF1ZXJ5U2V0RGVzY3JpcHRvcjsKIGNsYXNzIFF1ZXVlOwotY2xhc3MgUmVuZGVyQnVuZGxl
RW5jb2RlcjsKIGNsYXNzIFJlbmRlckJ1bmRsZTsKK3N0cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yOworY2xhc3MgUmVuZGVyQnVuZGxlRW5jb2RlcjsKK3N0cnVjdCBSZW5kZXJCdW5kbGVFbmNv
ZGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50Oworc3RydWN0
IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Oworc3RydWN0IFJlbmRlclBhc3NEZXNj
cmlwdG9yOwogY2xhc3MgUmVuZGVyUGFzc0VuY29kZXI7CitzdHJ1Y3QgUmVuZGVyUGFzc0xheW91
dDsKIGNsYXNzIFJlbmRlclBpcGVsaW5lOworc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRv
cjsKK3N0cnVjdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnM7CiBjbGFzcyBTYW1wbGVyOworc3RydWN0
IFNhbXBsZXJCaW5kaW5nTGF5b3V0Oworc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yOwogY2xhc3Mg
U2hhZGVyTW9kdWxlOworc3RydWN0IFNoYWRlck1vZHVsZURlc2NyaXB0b3I7CitzdHJ1Y3QgU3Rl
bmNpbEZhY2VTdGF0ZTsKK3N0cnVjdCBTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitjbGFz
cyBTdXBwb3J0ZWRGZWF0dXJlczsKK2NsYXNzIFN1cHBvcnRlZExpbWl0czsKIGNsYXNzIFRleHR1
cmU7CitzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0
b3I7CiBjbGFzcyBUZXh0dXJlVmlldzsKK3N0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3I7Citj
bGFzcyBWYWxpZGF0aW9uRXJyb3I7CitzdHJ1Y3QgVmVydGV4QXR0cmlidXRlOworc3RydWN0IFZl
cnRleEJ1ZmZlckxheW91dDsKK3N0cnVjdCBWZXJ0ZXhTdGF0ZTsKIAogfSAvLyBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUKIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAorc3RydWN0IEJpbmRH
cm91cERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwRW50cnk7CitzdHJ1Y3QgQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBCaW5kR3JvdXBMYXlvdXRFbnRyeTsKK3N0cnVjdCBC
bGVuZENvbXBvbmVudDsKK3N0cnVjdCBCbGVuZFN0YXRlOworc3RydWN0IEJ1ZmZlckJpbmRpbmc7
CitzdHJ1Y3QgQnVmZmVyQmluZGluZ0xheW91dDsKK3N0cnVjdCBCdWZmZXJEZXNjcmlwdG9yOwor
c3RydWN0IENhbnZhc0NvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQ29sb3JUYXJnZXRTdGF0ZTsKK3N0
cnVjdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDb21tYW5kRW5jb2RlckRlc2Ny
aXB0b3I7CitzdHJ1Y3QgQ29tcGlsYXRpb25NZXNzYWdlOworc3RydWN0IENvbXB1dGVQYXNzRGVz
Y3JpcHRvcjsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IERlcHRo
U3RlbmNpbFN0YXRlOworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitzdHJ1Y3QgRXh0ZXJuYWxU
ZXh0dXJlQmluZGluZ0xheW91dDsKK3N0cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOwor
c3RydWN0IEZyYWdtZW50U3RhdGU7CitzdHJ1Y3QgSWRlbnRpZmllcjsKK3N0cnVjdCBJbWFnZUNv
cHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNv
cHlUZXh0dXJlOworc3RydWN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VE
YXRhTGF5b3V0Oworc3RydWN0IE11bHRpc2FtcGxlU3RhdGU7CitzdHJ1Y3QgT2JqZWN0RGVzY3Jp
cHRvckJhc2U7CitzdHJ1Y3QgT3V0T2ZNZW1vcnlFcnJvcjsKK3N0cnVjdCBQaXBlbGluZURlc2Ny
aXB0b3JCYXNlOworc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcjsKK3N0cnVjdCBQcmlt
aXRpdmVTdGF0ZTsKK3N0cnVjdCBQcm9ncmFtbWFibGVTdGFnZTsKK3N0cnVjdCBRdWVyeVNldERl
c2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvcjsKK3N0cnVjdCBSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
Oworc3RydWN0IFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Oworc3RydWN0IFJlbmRl
clBhc3NEZXNjcmlwdG9yOworc3RydWN0IFJlbmRlclBhc3NMYXlvdXQ7CitzdHJ1Y3QgUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9uczsKK3N0cnVj
dCBTYW1wbGVyQmluZGluZ0xheW91dDsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKK3N0cnVj
dCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yOworc3RydWN0IFN0ZW5jaWxGYWNlU3RhdGU7CitzdHJ1
Y3QgU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVz
Oworc3RydWN0IFN1cHBvcnRlZExpbWl0czsKK3N0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dDsK
K3N0cnVjdCBUZXh0dXJlRGVzY3JpcHRvcjsKK3N0cnVjdCBUZXh0dXJlVmlld0Rlc2NyaXB0b3I7
CitzdHJ1Y3QgVmFsaWRhdGlvbkVycm9yOworc3RydWN0IFZlcnRleEF0dHJpYnV0ZTsKK3N0cnVj
dCBWZXJ0ZXhCdWZmZXJMYXlvdXQ7CitzdHJ1Y3QgVmVydGV4U3RhdGU7CisKIGNsYXNzIENvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0
ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAg
IHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogY29udmVydEJpbmRHcm91cEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwot
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRDb21t
YW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwg
Y29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29kZXJG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6
OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpX
ZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpE
ZXZpY2UqIGNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0g
ICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIGNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0
dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlciog
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0
UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmly
dHVhbCBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
U2hhZGVyTW9kdWxlKiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZl
cnRUZXh0dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwg
Y29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6QmluZEdyb3VwRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91
cERlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBF
bnRyeT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91cEVudHJ5Jik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3ImKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRFbnRyeT4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IEJpbmRHcm91cExheW91dEVudHJ5Jik7CisgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6QmxlbmRDb21wb25lbnQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCbGVu
ZENvbXBvbmVudCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kU3RhdGU+
IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCbGVuZFN0YXRlJik7CisgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZz4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1
ZmZlckJpbmRpbmcmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5k
aW5nTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQnVmZmVyQmluZGluZ0xheW91dCYp
OworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I+IGNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBCdWZmZXJEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6Q2FudmFzQ29uZmlndXJhdGlvbj4gY29udmVydEZyb21CYWNraW5nKGNv
bnN0IENhbnZhc0NvbmZpZ3VyYXRpb24mKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDb2xvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9yJik7CisgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6Q29sb3JEaWN0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29s
b3JEaWN0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0
ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9yVGFyZ2V0U3RhdGUmKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gY29udmVydEZy
b21CYWNraW5nKGNvbnN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yJik7CisgICAgUmVmUHRyPFBBTDo6
V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21w
aWxhdGlvbk1lc3NhZ2UmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRl
UGFzc0Rlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGFzc0Rlc2Ny
aXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkRlcHRoU3RlbmNpbFN0YXRl
PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRGVwdGhTdGVuY2lsU3RhdGUmKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkVycm9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXJyb3ImKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlbnQzRD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEV4
dGVudDNEJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZW50M0REaWN0PiBj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZW50M0REaWN0Jik7CisgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dD4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQmKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkZyYWdtZW50U3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBGcmFnbWVudFN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SWRlbnRp
Zmllcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IElkZW50aWZpZXImKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlCdWZmZXI+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBJbWFnZUNvcHlCdWZmZXImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJ
bWFnZUNvcHlFeHRlcm5hbEltYWdlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29w
eVRleHR1cmU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlJik7Cisg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQmKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBJbWFnZURhdGFMYXlvdXQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpNdWx0aXNhbXBsZVN0YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgTXVsdGlzYW1wbGVT
dGF0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JC
YXNlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4yRD4gY29udmVydEZyb21CYWNraW5n
KGNvbnN0IE9yaWdpbjJEJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T3JpZ2lu
MkREaWN0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luMkREaWN0Jik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T3JpZ2luM0Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBPcmlnaW4zRCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNERGlj
dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE9yaWdpbjNERGljdCYpOworICAgIFJlZlB0cjxQ
QUw6OldlYkdQVTo6T3V0T2ZNZW1vcnlFcnJvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE91
dE9mTWVtb3J5RXJyb3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByaW1pdGl2ZVN0YXRlPiBj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUHJpbWl0aXZlU3RhdGUmKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpQcm9ncmFtbWFibGVTdGFnZT4gY29udmVydEZyb21CYWNraW5nKGNv
bnN0IFByb2dyYW1tYWJsZVN0YWdlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
UXVlcnlTZXREZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUXVlcnlTZXREZXNj
cmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVz
Y3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3Im
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NDb2xvckF0dGFj
aG1lbnQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVu
ZGVyUGFzc0Rlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzRGVz
Y3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NMYXlv
dXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzTGF5b3V0Jik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiBjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcz4gY29udmVydEZy
b21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMmKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnM+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpTYW1wbGVyQmluZGluZ0xheW91dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFNh
bXBsZXJCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2Ft
cGxlckRlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTYW1wbGVyRGVzY3JpcHRv
ciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0
b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJik7Cisg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RlbmNpbEZhY2VTdGF0ZT4gY29udmVydEZy
b21CYWNraW5nKGNvbnN0IFN0ZW5jaWxGYWNlU3RhdGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQmKTsKKyAgICBSZWZQdHI8UEFMOjpX
ZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3VwcG9y
dGVkRmVhdHVyZXMmKTsKKyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cz4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN1cHBvcnRlZExpbWl0cyYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVCaW5kaW5nTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1
cmVEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZVZp
ZXdEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVGV4dHVyZVZpZXdEZXNjcmlw
dG9yJik7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBWYWxpZGF0aW9uRXJyb3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpWZXJ0ZXhBdHRyaWJ1dGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBWZXJ0
ZXhBdHRyaWJ1dGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhCdWZm
ZXJMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBWZXJ0ZXhCdWZmZXJMYXlvdXQmKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhTdGF0ZT4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IFZlcnRleFN0YXRlJik7CisKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpB
ZGFwdGVyKiBjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
KyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6
QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkJ1ZmZlciogY29udmVy
dEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBB
TDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpDb21tYW5k
RW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29u
dmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
KyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRl
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZSogY29u
dmVydEV4dGVybmFsVGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQq
IGNvbnZlcnRQaXBlbGluZUxheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
KyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpRdWVyeVNldCogY29udmVydFF1ZXJ5U2V0RnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlF1
ZXVlKiBjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAg
dmlydHVhbCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogY29udmVydFJlbmRlckJ1
bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVh
bCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NFbmNvZGVyKiBjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUq
IGNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
KyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBjb252ZXJ0U2FtcGxlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpTaGFk
ZXJNb2R1bGUqIGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6VGV4dHVyZSogY29udmVydFRleHR1cmVG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQ
VTo6VGV4dHVyZVZpZXcqIGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYmNiYjA2ZWEyNDA3NDVjMDliNGM2MmJjMDA4ZWFiODlkNDNjNGUz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURl
cHRoU3RlbmNpbFN0YXRlLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0ZT4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IERlcHRoU3RlbmNpbFN0YXRlJiBkZXB0aFN0
ZW5jaWxTdGF0ZSkKK3sKKyAgICBhdXRvIHN0ZW5jaWxGcm9udCA9IGNvbnZlcnRGcm9tQmFja2lu
ZyhkZXB0aFN0ZW5jaWxTdGF0ZS5zdGVuY2lsRnJvbnQpOworICAgIGlmICghc3RlbmNpbEZyb250
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBzdGVuY2lsQmFjayA9
IGNvbnZlcnRGcm9tQmFja2luZyhkZXB0aFN0ZW5jaWxTdGF0ZS5zdGVuY2lsQmFjayk7CisgICAg
aWYgKCFzdGVuY2lsQmFjaykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJl
dHVybiB7IHsgZGVwdGhTdGVuY2lsU3RhdGUuZm9ybWF0LCBkZXB0aFN0ZW5jaWxTdGF0ZS5kZXB0
aFdyaXRlRW5hYmxlZCwgZGVwdGhTdGVuY2lsU3RhdGUuZGVwdGhDb21wYXJlLCBXVEZNb3ZlKCpz
dGVuY2lsRnJvbnQpLCBXVEZNb3ZlKCpzdGVuY2lsQmFjayksIGRlcHRoU3RlbmNpbFN0YXRlLnN0
ZW5jaWxSZWFkTWFzaywgZGVwdGhTdGVuY2lsU3RhdGUuc3RlbmNpbFdyaXRlTWFzaywgZGVwdGhT
dGVuY2lsU3RhdGUuZGVwdGhCaWFzLCBkZXB0aFN0ZW5jaWxTdGF0ZS5kZXB0aEJpYXNTbG9wZVNj
YWxlLCBkZXB0aFN0ZW5jaWxTdGF0ZS5kZXB0aEJpYXNDbGFtcCB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaApp
bmRleCBhNTk3ZGYwOTYxMzZkYjM0MjhjMmM2N2Q1MmVjOTYxZmZiY2Y2M2FhLi5mNjUyNDI5NDM0
YjlmNmYxMGU0ODJhNTIzOWQyMGI3MmMxODU2NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaApAQCAtMjUsNiArMjUs
OCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1
ZGUgIldlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oPgpAQCAtMTIw
LDMgKzEyMiw1IEBAIHN0cnVjdCBEZXB0aFN0ZW5jaWxTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMwYTRkNmQ4NmVhYWZlZjczODE4YTgxNWU0Yzk1MmRiNDRhZTBl
MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
RGV2aWNlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2VE
ZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiBkZXZpY2VEZXNj
cmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2Fz
dDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGRldmljZURlc2NyaXB0b3IpKTsKKyAgICBp
ZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7
IFdURk1vdmUoKmJhc2UpLCBkZXZpY2VEZXNjcmlwdG9yLnJlcXVpcmVkRmVhdHVyZXMgfSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVz
Y3JpcHRvci5oCmluZGV4IDZhMjUyMzZkYzg5YzY2OTg5MDQ3N2VkZGQxZDIzM2E0YjJiNDI0YzQu
LjYwNmJkZmI3M2Y2MzQ4NzhjZmRhM2Y5YmRhMWFlM2VlMTRkNTlmZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaApAQCAt
MjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVGZWF0dXJlTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0tleVZhbHVlUGFpci5oPgpAQCAtNjEsMyArNjQsNSBAQCBzdHJ1Y3QgRGV2aWNlRGVz
Y3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI4
NjkwN2FkOWZmMTdlZjRiNTA1NWMzYjQ4Y2RiYzJmMWFiYTM5ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVF
cnJvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVRXJyb3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6RXJyb3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBFcnJvciYgZXJyb3IpCit7CisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24oZXJyb3IsIFtdIChjb25zdCBPdXRPZk1lbW9yeUVycm9yJiBvdXRPZk1lbW9yeUVycm9y
KSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4geworICAgICAgICByZXR1cm4g
eyBQQUw6OldlYkdQVTo6T3V0T2ZNZW1vcnlFcnJvcjo6Y3JlYXRlKCkgfTsKKyAgICB9LCBbXSAo
Y29uc3QgVmFsaWRhdGlvbkVycm9yJiB2YWxpZGF0aW9uRXJyb3IpIC0+IHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkVycm9yPiB7CisgICAgICAgIHJldHVybiB7IFBBTDo6V2ViR1BVOjpWYWxp
ZGF0aW9uRXJyb3I6OmNyZWF0ZShTdHJpbmcodmFsaWRhdGlvbkVycm9yLm1lc3NhZ2UpKSB9Owor
ICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKaW5k
ZXggNzJlZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4Zi4uYWNmMDFhMTQ0OTk0
N2Q4OTkwM2M3OGM4MTIzYzMwZjEzMmM3NTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUVycm9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPdXRPZk1lbW9yeUVycm9y
LmgiCiAjaW5jbHVkZSAiV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSA8dmFyaWFu
dD4KQEAgLTM0LDMgKzM2LDUgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHVzaW5nIEVy
cm9yID0gc3RkOjp2YXJpYW50PE91dE9mTWVtb3J5RXJyb3IsIFZhbGlkYXRpb25FcnJvcj47CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0
ZW50M0QuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MDM0ODIwNDE5NTM5NDM5M2VmN2Y0MDlhNTNkNjhkODUwNzkzMTdhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVu
dDNELmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlbnQzRERpY3Q+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRl
bnQzRERpY3QmIGV4dGVudDNERGljdCkKK3sKKyAgICByZXR1cm4geyB7IGV4dGVudDNERGljdC53
aWR0aCwgZXh0ZW50M0REaWN0LmhlaWdodCwgZXh0ZW50M0REaWN0LmRlcHRoT3JBcnJheUxheWVy
cyB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZW50M0QmIGV4
dGVudDNEKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGV4dGVudDNELCBbXSAoY29uc3Qg
VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZW50M0Q+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0
b3IgfSB9OworICAgIH0sIFt0aGlzXSAoY29uc3QgRXh0ZW50M0REaWN0JiBleHRlbnQzRERpY3Qp
IC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiB7CisgICAgICAgIGF1dG8g
ZXh0ZW50M0QgPSBjb252ZXJ0RnJvbUJhY2tpbmcoZXh0ZW50M0REaWN0KTsKKyAgICAgICAgaWYg
KCFleHRlbnQzRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqZXh0ZW50M0QpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oCmluZGV4IDE5MzgzNDIwOTQyYjhm
MDRmNjRkYjY2ZjhhYjY1ZmFjNWY1N2I4ODUuLjI4NTI5OWM3MDkxMzI5YWIxZjZmYjhiMzVkOTU3
YmM2YWQwNWY0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlbnQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
bnQzRC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02NywzICs3MCw1IEBAIHN0cnVjdCBFeHRlbnQzRERpY3Qg
ewogdXNpbmcgRXh0ZW50M0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4sIEV4dGVudDNERGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M1YjkxYTVhYTZjYzk1ZDc0ZjI3ZWQ5Y2Yx
MzcxMzZlMmU5ZGI5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQmIGV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyB9IH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVy
bmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggMmQ1YzJmZmRkYTg0YTZh
NDYyYThkN2NkNWRkOGE3ZGFjNjcyZjcxMy4uNWFhZDRhZWVkYTU4NGYzYzE0YzlhYzdhYTgzOGU0
NmQ2MjcxMjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0yNSw2ICsy
NSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgPG9wdGlvbmFsPgorCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3Qg
RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCB7CkBAIC0zOSwzICs0Myw1IEBAIHN0cnVjdCBF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlMWM2YmRkNTMzNDkyMWM4ODFiZThmM2E4ZmY5
N2Y0MjVlMTQ3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVybmFs
VGV4dHVyZURlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaD4KKworbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZXJu
YWxUZXh0dXJlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImIGV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRp
Y19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oZXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3Iu
Y29sb3JTcGFjZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXggOTNjNzQ1
MTJlNDJlODRmYjVmMjA2YzY3MWM2ODM2N2VlNDNkZGNmZS4uZjgwNGJkNWE5ZWExYmZmMjhlN2E2
Mjg0YjdlN2MyNDk1MjFhMmY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC0yNSw3
ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JT
cGFjZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTYsMyArNTksNSBAQCBz
dHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUZyYWdtZW50U3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDZiNDEyMjI3MDRkZDBjMWE0
MDlkMmUxMWZmMTdkZjc3YWE0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVGcmFnbWVudFN0
YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVGcmFnbWVudFN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkZyYWdtZW50U3RhdGU+IENvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBGcmFnbWVudFN0YXRlJiBmcmFnbWVu
dFN0YXRlKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2Fz
dDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+KGZyYWdtZW50U3RhdGUpKTsKKyAgICBpZiAoIWJh
c2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8UEFMOjpXZWJH
UFU6OkNvbG9yVGFyZ2V0U3RhdGU+IHRhcmdldHM7CisgICAgdGFyZ2V0cy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGZyYWdtZW50U3RhdGUudGFyZ2V0cy5zaXplKCkpOworICAgIGZvciAoY29uc3Qg
YXV0byYgYmFja2luZ1RhcmdldCA6IGZyYWdtZW50U3RhdGUudGFyZ2V0cykgeworICAgICAgICBh
dXRvIHRhcmdldCA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nVGFyZ2V0KTsKKyAgICAgICAg
aWYgKCF0YXJnZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICB0
YXJnZXRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCp0YXJnZXQpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKHRhcmdldHMpIH0gfTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAppbmRl
eCA5Zjk2ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0Li4yODdiY2M0N2Q5NGI0
ZGVmNTFjY2Y2YjEwYmFjNjk3OWY4ZDI1MzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BV
Q29sb3JUYXJnZXRTdGF0ZS5oIgogI2luY2x1ZGUgIldlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgi
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBAQCBzdHJ1Y3QgRnJhZ21lbnRTdGF0
ZSA6IHB1YmxpYyBQcm9ncmFtbWFibGVTdGFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDQ3MDA1NTE4YTgzNDQxNGE5ODUwMjI5YzEyMWFmZDFkZTEyZTU1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1
ZmZlci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlCdWZmZXIuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIK
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpJbWFnZUNvcHlCdWZmZXI+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBJbWFnZUNvcHlCdWZmZXImIGltYWdlQ29weUJ1ZmZlcikKK3sKKyAgICBh
dXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VEYXRh
TGF5b3V0Jj4oaW1hZ2VDb3B5QnVmZmVyKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBidWZmZXIgPSBjb252ZXJ0QnVmZmVyRnJvbUJh
Y2tpbmcoaW1hZ2VDb3B5QnVmZmVyLmJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCAq
YnVmZmVyIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5QnVmZmVyLmgKaW5kZXggMTE4NjYwZTc3ZDY5NTY1OGI4NzIyYjNlNDdlMmZh
MmZmNWNlZTQwYy4uOGZkMjc4NTljMjM1MmJjODlmYzVkMzJjNzJlMDc3MGFmYzkzMjQyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZm
ZXIuaApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBAQCBz
dHJ1Y3QgSW1hZ2VDb3B5QnVmZmVyIDogcHVibGljIEltYWdlRGF0YUxheW91dCB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUV4dGVybmFsSW1hZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwY2EzYmYzNTljOWViNjA5
MTI4ZWZhZWYyMjZjNjM2ZThkZTdlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJH
UFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklt
YWdlQ29weUV4dGVybmFsSW1hZ2U+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBpbWFnZUNvcHlFeHRlcm5h
bEltYWdlKQoreworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiBvcmln
aW47CisgICAgaWYgKGltYWdlQ29weUV4dGVybmFsSW1hZ2Uub3JpZ2luKSB7CisgICAgICAgIGF1
dG8gb3JpZ2luID0gY29udmVydEZyb21CYWNraW5nKCppbWFnZUNvcHlFeHRlcm5hbEltYWdlLm9y
aWdpbik7CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUob3JpZ2luKSB9IH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4
dGVybmFsSW1hZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlFeHRlcm5hbEltYWdlLmgKaW5kZXggMWU1NTI4YjljNTRjYzFkOTdkZWZmZGMxOTMyZjJlYTEx
MDlhOWNjYi4uNWYyOTY2YzI2ZWNmMmVmYmU1OGRiYjM5NDMxZmEzYmFiNWE4ZjA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFs
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT3JpZ2luMkQuaCIKICNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx2YXJpYW50PgpAQCAtNTIsMyArNTQsNSBAQCBzdHJ1
Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZjZGRkOTg5YWEwNGVkMTU3MTJlZjA1MWQzMTMwYzY5YTI1MTFhZjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmgi
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkltYWdlQ29weVRleHR1cmU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlJiBpbWFnZUNvcHlUZXh0dXJlKQorewor
ICAgIGF1dG8gdGV4dHVyZSA9IGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoaW1hZ2VDb3B5VGV4
dHVyZS50ZXh0dXJlKTsKKyAgICBpZiAoIXRleHR1cmUpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4gb3JpZ2lu
OworICAgIGlmIChpbWFnZUNvcHlUZXh0dXJlLm9yaWdpbikgeworICAgICAgICBhdXRvIG9yaWdp
biA9IGNvbnZlcnRGcm9tQmFja2luZygqaW1hZ2VDb3B5VGV4dHVyZS5vcmlnaW4pOworICAgICAg
ICBpZiAoIW9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQor
CisgICAgcmV0dXJuIHsgeyAqdGV4dHVyZSwgaW1hZ2VDb3B5VGV4dHVyZS5taXBMZXZlbCwgV1RG
TW92ZShvcmlnaW4pLCBpbWFnZUNvcHlUZXh0dXJlLmFzcGVjdCB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKaW5k
ZXggOGEyMzA2YTg0NDMxZmNkNTgwMTFmNWVjODhmYTdhYTBjNDg5OTczZi4uYTI5YzM1MjFkNGU5
NTIyMzdmMDBiZmVmNzA5MzVmOTllZmQxNzM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCkBAIC0yNSw2ICsyNSw4IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9yaWdpbjNELmgiCiAjaW5jbHVk
ZSA8b3B0aW9uYWw+CkBAIC03NSwzICs3Nyw1IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU3ZTNmY2Ni
NDMyNWUwMzUzMzI0YmMzODUyMWUzMTdlZWE4ZGYzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQmIGltYWdlQ29w
eVRleHR1cmVUYWdnZWQpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0
YXRpY19jYXN0PGNvbnN0IEltYWdlQ29weVRleHR1cmUmPihpbWFnZUNvcHlUZXh0dXJlVGFnZ2Vk
KSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgaW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jb2xvclNw
YWNlLCBpbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLnByZW11bHRpcGxpZWRBbHBoYSB9IH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRl
eHR1cmVUYWdnZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlUZXh0dXJlVGFnZ2VkLmgKaW5kZXggODQ5YmM0ZTg2MWMzMzYzYTY5MDkzZWNmZjkxYjBmNWQ1
MjBlNDY1Ny4uMDE4YjY4YWE0ZmRmYTVjYmQ3ZGRmMDczZjJmZjRkNGJjZDBmNzRjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVU
YWdnZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5
VGV4dHVyZVRhZ2dlZC5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUltYWdlQ29weVRleHR1cmUu
aCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVByZWRlZmluZWRDb2xvclNwYWNlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CkBAIC02MywzICs2Niw1IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGlj
IEltYWdlQ29weVRleHR1cmUgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIy
MTBiOWIxYjM3NDdjMmI0NTAzZDMxNTI4MzFmNmY3NTQzYmU1NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaD4KKworbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VEYXRh
TGF5b3V0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgSW1hZ2VEYXRhTGF5b3V0JiBpbWFnZURhdGFMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyBp
bWFnZURhdGFMYXlvdXQub2Zmc2V0LCBpbWFnZURhdGFMYXlvdXQuYnl0ZXNQZXJSb3csIGltYWdl
RGF0YUxheW91dC5yb3dzUGVySW1hZ2UgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaAppbmRleCBjZTRjZTM5MTQ3MzAz
ZmU3MGUyN2Y2OWFhYmUwY2U1YzFhMTU3YjM5Li4wNDcwN2I2YzBkOTMwNjM5YTU2Nzk3MGY1ZGZh
NWVmYzk3MzVkNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlRGF0YUxheW91dC5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAKQEAgLTY0LDMg
KzY2LDUgQEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0NmU3OTBmODliZGMzOWVhMTUzZjA2YjE4MmM0NzFmOThhNjFiY2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0
YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBNdWx0aXNhbXBsZVN0YXRlJiBtdWx0aXNhbXBsZVN0YXRl
KQoreworICAgIHJldHVybiB7IHsgbXVsdGlzYW1wbGVTdGF0ZS5jb3VudCwgbXVsdGlzYW1wbGVT
dGF0ZS5tYXNrLCBtdWx0aXNhbXBsZVN0YXRlLmFscGhhVG9Db3ZlcmFnZUVuYWJsZWQgfSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNh
bXBsZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1w
bGVTdGF0ZS5oCmluZGV4IDhkZTVkNThkOTgzMTlmOGQ5MTg4ODg2YzQ0MTAwOTYwMWMzZjk3MTgu
LmYxNjI4NWNlNjBjYTYwODk3YjA4OGE3ZmFlZDAyODE5ZjcwYTUyM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaApAQCAt
MjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNjMs
MyArNjYsNSBAQCBzdHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlw
dG9yQmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDExNTRlYmQ4NmNkNzMyNThmYTFjNThmZDBiMDhiNjIw
NjJiNzY0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSYgb2JqZWN0RGVzY3JpcHRvckJhc2UpCit7CisgICAgcmV0dXJuIHsgeyBv
YmplY3REZXNjcmlwdG9yQmFzZS5sYWJlbCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCA0
ZmNiOWY1NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0ZTQ5MzBhMzZhLi42MTEzYzUyYWU2Zjk0Mjhl
NjBjNjEwOWVlM2I3OTNkNTc3MWUyMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMjUsNiArMjUs
OSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNDksMyArNTIsNSBAQCBzdHJ1Y3QgT2JqZWN0RGVzY3Jp
cHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3JpZ2luMkQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MDg4ZTMyYmNjOGMwMDAxYWJjYzIyNTNj
ZTRiMTM2YzY0ZTZlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT3JpZ2luMkQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luMkQuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6Ok9yaWdpbjJERGljdD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IE9yaWdpbjJERGljdCYgb3JpZ2luMkREaWN0KQoreworICAgIHJldHVybiB7
IHsgb3JpZ2luMkREaWN0LngsIG9yaWdpbjJERGljdC55IH0gfTsKK30KKworc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6T3JpZ2luMkQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4yRCYgb3JpZ2luMkQpCit7CisgICAgcmV0dXJuIFdU
Rjo6c3dpdGNoT24ob3JpZ2luMkQsIFtdIChjb25zdCBWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVn
ZXJDb29yZGluYXRlPiYgdmVjdG9yKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmln
aW4yRD4geworICAgICAgICByZXR1cm4geyB7IHZlY3RvciB9IH07CisgICAgfSwgW3RoaXNdIChj
b25zdCBPcmlnaW4yRERpY3QmIG9yaWdpbjJERGljdCkgLT4gc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6T3JpZ2luMkQ+IHsKKyAgICAgICAgYXV0byBvcmlnaW4yRCA9IGNvbnZlcnRGcm9tQmFj
a2luZyhvcmlnaW4yRERpY3QpOworICAgICAgICBpZiAoIW9yaWdpbjJEKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvcmlnaW4y
RCkgfSB9OworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVPcmlnaW4yRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9yaWdpbjJELmgKaW5kZXggZGYxZmZmZDU3ODQzOTUyM2JkYzcyMTE0MzMyN2IwYzZmZTNhNzc3
ZC4uNzMxZmU5YjQ1NjA0MTRiOGVhMTg1YjNjNjA4YjYxZGJjMmE0YmIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKQEAgLTI1LDYgKzI1LDkgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxv
cHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTYw
LDMgKzYzLDUgQEAgc3RydWN0IE9yaWdpbjJERGljdCB7CiB1c2luZyBPcmlnaW4yRCA9IHN0ZDo6
dmFyaWFudDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luMkRE
aWN0PjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPcmlnaW4zRC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3Jp
Z2luM0QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3YmExYjY1YmIyMWZmNDhjNTRiYTYzMTJmMmRhOTM4M2M1
NDM5ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT3JpZ2luM0QuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luM0QuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIK
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdp
bjNERGljdD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IE9yaWdpbjNERGljdCYgb3JpZ2luM0REaWN0KQoreworICAgIHJldHVybiB7IHsgb3JpZ2lu
M0REaWN0LngsIG9yaWdpbjNERGljdC55LCBvcmlnaW4zRERpY3QueiB9IH07Cit9CisKK3N0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luM0QmIG9yaWdpbjNEKQoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG9yaWdpbjNELCBbXSAoY29uc3QgVmVjdG9yPFBBTDo6V2ViR1BV
OjpJbnRlZ2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6T3JpZ2luM0Q+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0b3IgfSB9OworICAgIH0sIFt0
aGlzXSAoY29uc3QgT3JpZ2luM0REaWN0JiBvcmlnaW4zRERpY3QpIC0+IHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiB7CisgICAgICAgIGF1dG8gb3JpZ2luM0QgPSBjb252ZXJ0
RnJvbUJhY2tpbmcob3JpZ2luM0REaWN0KTsKKyAgICAgICAgaWYgKCFvcmlnaW4zRCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
b3JpZ2luM0QpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPcmlnaW4zRC5oCmluZGV4IGNmNzQ1YTQyMDc0YWNiMjBmZTc1MTQ2YzBlOTQ1MzBl
Njc0YzhlODQuLjM3NmFlMjUyZDlkYWZhYzk5Yjk2ZjhhY2M1YjM3ODI0YWExYTZhYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oCkBAIC0yNSw2ICsy
NSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRl
Z3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CkBAIC02NywzICs3MCw1IEBAIHN0cnVjdCBPcmlnaW4zRERpY3QgewogdXNpbmcgT3JpZ2luM0Qg
PSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIE9y
aWdpbjNERGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNjNDk1ZjhjODQz
NTczMDI5N2EyZGNkNWI2YzE3YmM0ZjVhZWI2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQ
VU91dE9mTWVtb3J5RXJyb3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworUmVmUHRyPFBBTDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVycm9yPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3V0T2ZNZW1v
cnlFcnJvciYgb3V0T2ZNZW1vcnlFcnJvcikKK3sKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6
T3V0T2ZNZW1vcnlFcnJvcjo6Y3JlYXRlKCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaAppbmRleCA2YzY5MzU3NTcx
YWYxN2VmOWU3Zjc2NDIzODc3ZmYzNDg0YWE2NjVhLi43NTQ1Mzc2YjgxZmI5MzY4M2U0NTBlNDQz
ZGM4NTM0YzRiZjkzMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgKQEAgLTI1LDYgKzI1LDEwIEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisK
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBPdXRPZk1lbW9yeUVycm9yIHsK
QEAgLTM5LDMgKzQzLDUgQEAgc3RydWN0IE91dE9mTWVtb3J5RXJyb3IgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmI4YThjOTQ2ZmJjMDNkYTQxMWQy
NDkzZjBjYzk0MmE3MGMwYzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCkBAIC0wLDAgKzEsNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlw
ZWxpbmVEZXNjcmlwdG9yQmFzZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSYgcGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZSkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29u
c3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihwaXBlbGluZURlc2NyaXB0b3JCYXNlKSk7CisgICAg
aWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpXZWJH
UFU6OlBpcGVsaW5lTGF5b3V0KiBsYXlvdXQgPSBudWxscHRyOworICAgIGlmIChwaXBlbGluZURl
c2NyaXB0b3JCYXNlLmxheW91dCkgeworICAgICAgICBsYXlvdXQgPSBjb252ZXJ0UGlwZWxpbmVM
YXlvdXRGcm9tQmFja2luZyhwaXBlbGluZURlc2NyaXB0b3JCYXNlLmxheW91dCk7CisgICAgICAg
IGlmICghbGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBsYXlvdXQgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JC
YXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5oCmluZGV4IDVjNGI3MDc5MDA1MWNmYzFmN2M1NTk1MTY2OGI5ZjQ1YjA1NWUyMmIu
LjRkMDcxZjFjZDYzZWVhMTJjOWFlMDRiNjE5NmIyNTM5OGIwNzliYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRv
ckJhc2UuaApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1Y3QgUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2EyODIxMGY4MTQ5
MWY4NDFhNWYwMjAwZjBiNmQ1MmNmMzI3NjUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIHBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihwaXBlbGluZUxh
eW91dERlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6
QmluZEdyb3VwTGF5b3V0Pj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICBiaW5kR3JvdXBMYXlvdXRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmJpbmRHcm91
cExheW91dHMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdCaW5kR3JvdXBM
YXlvdXQgOiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykgeworICAg
ICAgICBhdXRvKiBlbnRyeSA9IGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhiYWNr
aW5nQmluZEdyb3VwTGF5b3V0KTsKKyAgICAgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGJpbmRHcm91cExheW91dHMudW5jaGVja2VkQXBw
ZW5kKCplbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RG
TW92ZShiaW5kR3JvdXBMYXlvdXRzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCmlu
ZGV4IDgwYTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2EuLjVlNDMwMjgxYWYy
YjUxODQ1Yjg5YjlkMmQwZWRmMTVkMGI3ODcxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgK
QEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9i
amVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBA
QCBzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0
b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjVhOTNkYjE3Y2Q5MWZj
MmNkNDM1OTAzNTMxYjkwZjMwMDFiZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVByaW1p
dGl2ZVN0YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJH
UFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZT4gQ29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFByaW1pdGl2ZVN0YXRl
JiBwcmltaXRpdmVTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IHByaW1pdGl2ZVN0YXRlLnRvcG9s
b2d5LCBwcmltaXRpdmVTdGF0ZS5zdHJpcEluZGV4Rm9ybWF0LCBwcmltaXRpdmVTdGF0ZS5mcm9u
dEZhY2UsIHByaW1pdGl2ZVN0YXRlLmN1bGxNb2RlLCBwcmltaXRpdmVTdGF0ZS51bmNsaXBwZWRE
ZXB0aCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVByaW1pdGl2ZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UHJpbWl0aXZlU3RhdGUuaAppbmRleCBkMTgyMzMyMjNkOTcwYThmMDk5MDYyNTg3ODExNWFhNDc1
NGI0ODk3Li5lZjY0ZGVkN2E5NWVjMzliODI4YjQzMDQ0N2I4NWQwM2I2OThhYzQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApA
QCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKwogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ3VsbE1vZGUuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZy
b250RmFjZS5oPgpAQCAtODQsMyArODYsNSBAQCBzdHJ1Y3QgUHJpbWl0aXZlU3RhdGUgewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQ
cm9ncmFtbWFibGVTdGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiYzMzNWZmMWQ4NDIxNmVlMDcxNDNh
OGU1ZDVlN2EyMjQwMjFmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1h
YmxlU3RhZ2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUHJvZ3JhbW1h
YmxlU3RhZ2UmIHByb2dyYW1tYWJsZVN0YWdlKQoreworICAgIGF1dG8gbW9kdWxlID0gY29udmVy
dFNoYWRlck1vZHVsZUZyb21CYWNraW5nKHByb2dyYW1tYWJsZVN0YWdlLm1vZHVsZSk7CisgICAg
aWYgKCFtb2R1bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
eyB7ICptb2R1bGUsIHByb2dyYW1tYWJsZVN0YWdlLmVudHJ5UG9pbnQsIHByb2dyYW1tYWJsZVN0
YWdlLmNvbnN0YW50cyB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCBlMWYwYWUwZDY5ZjI5YmI5ZmY3
ODJlZWQ2MmQzNmQzODU3YzE5ZmVjLi5jOGJjMmNkNzcxNmI0MDdkYzVkN2E1OTZkNmY0NDM3NmUx
YTVkZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UHJvZ3JhbW1hYmxlU3RhZ2UuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0tleVZhbHVlUGFpci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02OCwzICs3MSw1
IEBAIHN0cnVjdCBQcm9ncmFtbWFibGVTdGFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYThlMzcxYzU1ZjY4ZTcyYjU1YWQ1ZDM2YjdjMGVjYzdjMmIzNmZiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0
RGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBRdWVyeVNldERlc2NyaXB0b3ImIHF1ZXJ5
U2V0RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihxdWVyeVNldERlc2NyaXB0b3Ip
KTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBxdWVyeVNldERlc2NyaXB0b3IudHlwZSwgcXVlcnlT
ZXREZXNjcmlwdG9yLmNvdW50LCBxdWVyeVNldERlc2NyaXB0b3IucGlwZWxpbmVTdGF0aXN0aWNz
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UXVlcnlTZXREZXNjcmlwdG9yLmgKaW5kZXggYmUxMTJkOTI1NjY1ZGJhNGEwMjNhZjQ3ZWVkOWY4
MjRhYjkzYjljZS4uZTlkMTM3NWM4ZGUyYWM2NjExMWE0MGNkZDZlYzZjYWYwOGUwMzcyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERl
c2NyaXB0b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5o
IgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVTdGF0aXN0aWNOYW1lLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVRdWVyeVR5cGUuaD4KQEAgLTczLDMgKzc2LDUgQEAgc3RydWN0IFF1ZXJ5U2V0RGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3ZGU5MmVjMTZlNDEwMjdlZWEzZDFiNmI2NDY5
NzNlZWY0YjhhNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJCdW5k
bGVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJX
ZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURl
c2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yJiByZW5kZXJCdW5kbGVEZXNjcmlwdG9yKQorewor
ICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlckJ1bmRsZURlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJh
c2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1v
dmUoKmJhc2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaAppbmRleCBjMDk2MjgwNzY0MWJm
OWNhNDAxZDgxMmJhMjAwMzFiMmVhOTAwYTZlLi43M2EyZjA4MTIwYzczYjQ2OTYyM2UwYjQ4YTZm
ZDEyZDUwMGM5OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNDcsMyArNTAsNSBAQCBzdHJ1Y3QgUmVuZGVyQnVu
ZGxlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1
bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY3NDFl
MmIxZmYzYmJiMzM3M2M0OTdlMDg1ZWExYzIyMzUwYzhhYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3Jp
cHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0
b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBS
ZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciYgcmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0
b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclBhc3NMYXlvdXQmPihyZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcikpOwor
ICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVy
biB7IHsgV1RGTW92ZSgqYmFzZSksIHJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmRlcHRo
UmVhZE9ubHksIHJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLnN0ZW5jaWxSZWFkT25seSB9
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaAppbmRleCBlMjljZDU0Yjk1
Y2E0MGFjMGFkOGJlNTllNzQ4MzJkMmRlOGRiNDFhLi5jOWQwNzExZTNiYTdkMTVhNTk0YzA1YzAx
MTI0ZjYyYzM0ZGZlYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaApAQCAt
MjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgiCisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTYyLDMgKzY1LDUgQEAgc3Ry
dWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIFJlbmRlclBhc3NMYXlv
dXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODg3MzhiNTA5YWE0YjcxNzU3MDg4N2QwOTUyOThjYjZkZjQyOWIyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudCYgcmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCkKK3sKKyAgICBhdXRv
IHZpZXcgPSBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhyZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50LnZpZXcpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogcmVzb2x2ZVRhcmdldCA9IG51bGxw
dHI7CisgICAgaWYgKHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQucmVzb2x2ZVRhcmdldCkgewor
ICAgICAgICByZXNvbHZlVGFyZ2V0ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcocmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudC5yZXNvbHZlVGFyZ2V0KTsKKyAgICAgICAgaWYgKCFyZXNv
bHZlVGFyZ2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICBhdXRvIGxvYWRWYWx1ZSA9IFdURjo6c3dpdGNoT24ocmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dC5sb2FkVmFsdWUsIFtdIChQQUw6OldlYkdQVTo6TG9hZE9wIGxvYWRPcCkgLT4gc3RkOjpvcHRp
b25hbDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIFBB
TDo6V2ViR1BVOjpDb2xvckRpY3Q+PiB7CisgICAgICAgIHJldHVybiB7IHsgbG9hZE9wIH0gfTsK
KyAgICB9LCBbXSAoY29uc3QgVmVjdG9yPGRvdWJsZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIFBBTDo6
V2ViR1BVOjpDb2xvckRpY3Q+PiB7CisgICAgICAgIHJldHVybiB7IHsgdmVjdG9yIH0gfTsKKyAg
ICB9LCBbdGhpc10gKGNvbnN0IENvbG9yRGljdCYgb3JpZ2luQ29sb3JEaWN0KSAtPiBzdGQ6Om9w
dGlvbmFsPHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwg
UEFMOjpXZWJHUFU6OkNvbG9yRGljdD4+IHsKKyAgICAgICAgYXV0byBjb2xvckRpY3QgPSBjb252
ZXJ0RnJvbUJhY2tpbmcob3JpZ2luQ29sb3JEaWN0KTsKKyAgICAgICAgaWYgKCFjb2xvckRpY3Qp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKmNvbG9yRGljdCkgfSB9OworICAgIH0pOworICAgIGlmICghbG9hZFZhbHVlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqdmlldywgcmVzb2x2
ZVRhcmdldCwgV1RGTW92ZSgqbG9hZFZhbHVlKSwgcmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5z
dG9yZU9wIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAppbmRleCBiMGQ4OTI3ZWYy
YmE4YTMwYjllYTZiNmQ1ZGY0N2UxNDg2NGVjN2RhLi5hOGM2ZDZhZWYzMjJjNjBiODBlNjY1NmI5
MDZhYmVhNzJkZmI1YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKQEAgLTI1LDggKzI1
LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5j
bHVkZSAiV2ViR1BVQ29sb3IuaCIKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2Fk
T3AuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4KICNp
bmNsdWRlIDx2YXJpYW50PgpAQCAtNzcsMyArODAsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0
YWNobWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhjYTQyZjJkMzc2MjI4NWYyMmZmNjIwMWNiYWM0NGY4
OWUxMDM5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5k
ZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFj
aG1lbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IENvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudCYgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCit7Cisg
ICAgYXV0byB2aWV3ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcocmVuZGVyUGFzc0Rl
cHRoU3RlbmNpbEF0dGFjaG1lbnQudmlldyk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqdmlldywgcmVuZGVyUGFzc0RlcHRo
U3RlbmNpbEF0dGFjaG1lbnQuZGVwdGhMb2FkVmFsdWUsIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxB
dHRhY2htZW50LmRlcHRoU3RvcmVPcCwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
ZGVwdGhSZWFkT25seSwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuc3RlbmNpbExv
YWRWYWx1ZSwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuc3RlbmNpbFN0b3JlT3As
IHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LnN0ZW5jaWxSZWFkT25seSB9IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCBlODJlZDZjODFl
OGFjYTc4NWM4MDU4YzAzMjQyNmVlNWYwYzJiYjQyLi5iMWM1NWJhY2UwMDVkNjE4ZmVjMzgwOGI1
YjM5MDE4ODA0NTg3MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
aApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+
CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4KQEAgLTk4LDMgKzEwMSw1IEBA
IHN0cnVjdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NE
ZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRiZGZjYTA1NzgzOWM1YWUzOTljYjNiMDlj
YjU3NmJiOWJiNjgwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2Vi
R1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2NyaXB0
b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBS
ZW5kZXJQYXNzRGVzY3JpcHRvciYgcmVuZGVyUGFzc0Rlc2NyaXB0b3IpCit7CisgICAgYXV0byBi
YXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0
b3JCYXNlJj4ocmVuZGVyUGFzc0Rlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnQ+IGNvbG9yQXR0YWNobWVudHM7CisgICAgY29sb3JBdHRhY2htZW50
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlbmRlclBhc3NEZXNjcmlwdG9yLmNvbG9yQXR0YWNo
bWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdDb2xvckF0dGFjaG1l
bnQgOiByZW5kZXJQYXNzRGVzY3JpcHRvci5jb2xvckF0dGFjaG1lbnRzKSB7CisgICAgICAgIGF1
dG8gY29sb3JBdHRhY2htZW50ID0gY29udmVydEZyb21CYWNraW5nKGJhY2tpbmdDb2xvckF0dGFj
aG1lbnQpOworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGNvbG9yQXR0YWNobWVudHMudW5jaGVja2VkQXBwZW5k
KFdURk1vdmUoKmNvbG9yQXR0YWNobWVudCkpOworICAgIH0KKworICAgIGF1dG8gZGVwdGhTdGVu
Y2lsQXR0YWNobWVudCA9IChbJl0gKCkgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IHsKKyAgICAgICAgaWYgKHJlbmRlclBhc3NE
ZXNjcmlwdG9yLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAgICByZXR1cm4gY29u
dmVydEZyb21CYWNraW5nKCpyZW5kZXJQYXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50KTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9KSgpOworICAgIGlmIChy
ZW5kZXJQYXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2htZW50ICYmICFkZXB0aFN0ZW5j
aWxBdHRhY2htZW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpX
ZWJHUFU6OlF1ZXJ5U2V0KiBvY2NsdXNpb25RdWVyeVNldCA9IG51bGxwdHI7CisgICAgaWYgKHJl
bmRlclBhc3NEZXNjcmlwdG9yLm9jY2x1c2lvblF1ZXJ5U2V0KSB7CisgICAgICAgIG9jY2x1c2lv
blF1ZXJ5U2V0ID0gY29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcocmVuZGVyUGFzc0Rlc2NyaXB0
b3Iub2NjbHVzaW9uUXVlcnlTZXQpOworICAgICAgICBpZiAoIW9jY2x1c2lvblF1ZXJ5U2V0KQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIHRpbWVz
dGFtcFdyaXRlcyA9IGNvbnZlcnRGcm9tQmFja2luZyhyZW5kZXJQYXNzRGVzY3JpcHRvci50aW1l
c3RhbXBXcml0ZXMpOworICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShj
b2xvckF0dGFjaG1lbnRzKSwgV1RGTW92ZShkZXB0aFN0ZW5jaWxBdHRhY2htZW50KSwgb2NjbHVz
aW9uUXVlcnlTZXQsIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmgKaW5kZXggYmE0Y2VlMjEwY2EwMGJlYjllOGI4NzdmZjc5NzI2YzQ1ZmJkODExYi4uYjdl
OGY1ZDg0YTE2MDlkMmRiOTUwMmY3NmEzZTQ4ZTZlYjBmNjU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgK
QEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50LmgiCkBAIC04MiwzICs4NCw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvciA6
IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiNDg3MWYwYjU5ODk0YTBlOGU2NjdhZThiOTQ2YmM3Mzc5MjYxNjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c0xheW91dC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzTGF5b3V0JiByZW5kZXJQYXNzTGF5b3V0KQor
eworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBhc3NMYXlvdXQpKTsKKyAgICBpZiAoIWJhc2Up
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUo
KmJhc2UpLCByZW5kZXJQYXNzTGF5b3V0LmNvbG9yRm9ybWF0cywgcmVuZGVyUGFzc0xheW91dC5k
ZXB0aFN0ZW5jaWxGb3JtYXQsIHJlbmRlclBhc3NMYXlvdXQuc2FtcGxlQ291bnQgfSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
TGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xh
eW91dC5oCmluZGV4IDRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUuLjMx
MDQyOGRmNmJlNzZjM2I0OTA2OGJkMzhmZTE3MjQxNWQzMTExMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+
CkBAIC03MywzICs3NSw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIE9iamVj
dERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzAxOTAzYjQ2ZWE2YzA3MTgwMTY3NjRlZWI1Mzk2MDE4YTdkMTA3ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBX
cml0ZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFt
cFdyaXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlJiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUpCit7
CisgICAgYXV0byogcXVlcnlTZXQgPSBjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhyZW5kZXJQ
YXNzVGltZXN0YW1wV3JpdGUucXVlcnlTZXQpOworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpxdWVyeVNldCwgcmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlLnF1ZXJ5SW5kZXgsIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5s
b2NhdGlvbiB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzJiByZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzKQoreworICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgdGltZXN0YW1wV3JpdGVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOworICAgIGZvciAoY29u
c3QgYXV0byYgYmFja2luZ1RpbWVzdGFtcFdyaXRlIDogcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cykgeworICAgICAgICBhdXRvIHRpbWVzdGFtcFdyaXRlID0gY29udmVydEZyb21CYWNraW5nKGJh
Y2tpbmdUaW1lc3RhbXBXcml0ZSk7CisgICAgICAgIGlmICghdGltZXN0YW1wV3JpdGUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICByZXR1cm4gdGltZXN0YW1w
V3JpdGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oCmluZGV4IDhiOTI2M2E3YzQ4MGQw
ODMxZjU0NDk5NmZlZTExYjI3MDRlNGVhZWQuLjlkNDkzMmNlODQzMjNhNTU3NzM5ODM3ZTllZThj
ODYxYTJkMWQ3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaApAQCAtMjUsNyArMjUsMTAg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
ICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CkBAIC02OSwzICs3Miw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGUgewogdXNpbmcgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGU+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMzFjNDZmMDVmYTE4NmI3MmRjZGM3MDViODE2ODI2NDBmOTcyZjQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcikKK3sKKyAg
ICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcikpOworICAgIGlmICgh
YmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gdmVydGV4ID0g
Y29udmVydEZyb21CYWNraW5nKHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci52ZXJ0ZXgpOworICAg
IGlmICghdmVydGV4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UHJpbWl0aXZlU3RhdGU+IHByaW1pdGl2ZTsKKyAgICBpZiAo
cmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLnByaW1pdGl2ZSkgeworICAgICAgICBwcmltaXRpdmUg
PSBjb252ZXJ0RnJvbUJhY2tpbmcoKnJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5wcmltaXRpdmUp
OworICAgICAgICBpZiAoIXByaW1pdGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQorCisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGVwdGhTdGVuY2ls
U3RhdGU+IGRlcHRoU3RlbmNpbDsKKyAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmRl
cHRoU3RlbmNpbCkgeworICAgICAgICBkZXB0aFN0ZW5jaWwgPSBjb252ZXJ0RnJvbUJhY2tpbmco
KnJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWwpOworICAgICAgICBpZiAoIWRl
cHRoU3RlbmNpbCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZT4gbXVsdGlzYW1w
bGU7CisgICAgaWYgKHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5tdWx0aXNhbXBsZSkgeworICAg
ICAgICBtdWx0aXNhbXBsZSA9IGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLm11bHRpc2FtcGxlKTsKKyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgYXV0byBmcmFnbWVudCA9IChb
Jl0gKCkgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RnJhZ21lbnRTdGF0ZT4geworICAg
ICAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmZyYWdtZW50KQorICAgICAgICAgICAg
cmV0dXJuIGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmZyYWdt
ZW50KTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9KSgpOworICAgIGlmIChy
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuZnJhZ21lbnQgJiYgIWZyYWdtZW50KQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RG
TW92ZSgqdmVydGV4KSwgV1RGTW92ZShwcmltaXRpdmUpLCBXVEZNb3ZlKGRlcHRoU3RlbmNpbCks
IFdURk1vdmUobXVsdGlzYW1wbGUpLCBXVEZNb3ZlKGZyYWdtZW50KSB9IH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVs
aW5lRGVzY3JpcHRvci5oCmluZGV4IDZjMmVmNzMwOTJhYTI0Y2FmM2Q1OTQxN2I0Y2IwNjFhOTky
ZWYxMDYuLjRiYzA1ODg2YzJlYTRmYjYwMGVmNGI4Yzk1MmQ2M2YwZjI2ZjViMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5oIgogI2luY2x1ZGUgIldlYkdQVUZyYWdtZW50U3RhdGUuaCIKICNpbmNsdWRlICJXZWJHUFVN
dWx0aXNhbXBsZVN0YXRlLmgiCkBAIC04OSwzICs5MSw1IEBAIHN0cnVjdCBSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RB
ZGFwdGVyT3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVx
dWVzdEFkYXB0ZXJPcHRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjE0ZTc5ODJjNDQzYjFjNDBlMmUw
YzA5NzhiNzFhZDc0MTdlNzY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZXF1
ZXN0QWRhcHRlck9wdGlvbnMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRh
cHRlck9wdGlvbnM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIHJlcXVlc3RBZGFwdGVyT3B0aW9ucykKK3sK
KyAgICByZXR1cm4geyB7IHJlcXVlc3RBZGFwdGVyT3B0aW9ucy5wb3dlclByZWZlcmVuY2UsIHJl
cXVlc3RBZGFwdGVyT3B0aW9ucy5mb3JjZUZhbGxiYWNrQWRhcHRlciB9IH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVy
T3B0aW9ucy5oCmluZGV4IDA2YjAzMWM3MTJlZGU4N2Y1ODU5YTNkNTNiM2I0NmVkNTkxMTIzMzcu
LmRlNjIxNDU5ODc0ZjE0ZDBlMTE4YzY5YWE4OGNhNGFmYThlODRkYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVBvd2VyUHJlZmVyZW5jZS5oPgogCkBAIC01NywzICs1OSw1IEBAIHN0cnVj
dCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM5ODQyNzQ5NGI0NTU4ODFiMzQ1Yjc0MDM2MTBkODcwMmYyN2NmNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCIKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nTGF5b3V0PiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2FtcGxlckJpbmRpbmdMYXlv
dXQmIHNhbXBsZXJCaW5kaW5nTGF5b3V0KQoreworICAgIHJldHVybiB7IHsgc2FtcGxlckJpbmRp
bmdMYXlvdXQudHlwZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaAppbmRleCA5NTkyMWVhNTg3NDU1
M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAwNmUzMmYyLi42ZjBkZGMxNDkxYTg3MDYwNzg0NDQ2YTIyZjgx
NzdiZjkwNzk1MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFs
PgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC00OSwzICs1Miw1IEBAIHN0cnVj
dCBTYW1wbGVyQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2Y2NGFhZDBmZjNjYjFlMDI1MGM3MWY0NDIyYmM3MGE2MmI1NmEzNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6U2FtcGxlckRlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBTYW1wbGVyRGVzY3JpcHRvciYgc2FtcGxlckRlc2NyaXB0b3Ip
Cit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0
IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oc2FtcGxlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJh
c2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1v
dmUoKmJhc2UpLCBzYW1wbGVyRGVzY3JpcHRvci5hZGRyZXNzTW9kZVUsIHNhbXBsZXJEZXNjcmlw
dG9yLmFkZHJlc3NNb2RlViwgc2FtcGxlckRlc2NyaXB0b3IuYWRkcmVzc01vZGVXLCBzYW1wbGVy
RGVzY3JpcHRvci5tYWdGaWx0ZXIsIHNhbXBsZXJEZXNjcmlwdG9yLm1pbkZpbHRlciwgc2FtcGxl
ckRlc2NyaXB0b3IubWlwbWFwRmlsdGVyLCBzYW1wbGVyRGVzY3JpcHRvci5sb2RNaW5DbGFtcCwg
c2FtcGxlckRlc2NyaXB0b3IubG9kTWF4Q2xhbXAsIHNhbXBsZXJEZXNjcmlwdG9yLmNvbXBhcmUs
IHNhbXBsZXJEZXNjcmlwdG9yLm1heEFuaXNvdHJvcHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgKaW5kZXgg
YjhkODU5NDg3MTQyYmNjZmFjNTExNWY5YmZhZDllMzljYjBjNTNhZi4uN2E0NTFlMTk2MTZmM2M2
ZDYyZTgwNzZjOWQ3YzBmZGIyMGRkNzJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJX
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVk
ZSA8b3B0aW9uYWw+CkBAIC0xMjMsMyArMTI1LDUgQEAgc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9y
IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0YWM3ZGQ0ZmNiZWFlMTUwOGJhODc0YWMyZmM5OWQx
ZWNjNjdhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3Jp
cHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IFNoYWRlck1vZHVsZURlc2NyaXB0b3ImIHNoYWRlck1vZHVsZURlc2NyaXB0b3IpCit7CisgICAg
YXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERl
c2NyaXB0b3JCYXNlJj4oc2hhZGVyTW9kdWxlRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
YmFzZSksIHNoYWRlck1vZHVsZURlc2NyaXB0b3IuY29kZSB9IH07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yLmgKaW5kZXggZGQ3Nzg2Y2U4Yjk2NjExNmQyNjlhMjUxMGE1ZjJmODIyOWMxNzA0Yy4uYjIx
ZWExYmIyM2QzZDMxMGI4NDhmYjRlZTIxZDQwOGFlZmJhMmE4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRv
ci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC01NywzICs2MCw1IEBAIHN0cnVjdCBTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZh
Y2VTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZh
Y2VTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiZDg1N2M2OGVjZTAxMDRiOWE2YzIyZWU1ZjI3NWFi
YmQ1NDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0
ZW5jaWxGYWNlU3RhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U3RlbmNpbEZhY2VTdGF0ZT4gQ29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN0ZW5jaWxGYWNlU3RhdGUmIHN0ZW5j
aWxGYWNlU3RhdGUpCit7CisgICAgcmV0dXJuIHsgeyBzdGVuY2lsRmFjZVN0YXRlLmNvbXBhcmUs
IHN0ZW5jaWxGYWNlU3RhdGUuZmFpbE9wLCBzdGVuY2lsRmFjZVN0YXRlLmRlcHRoRmFpbE9wLCBz
dGVuY2lsRmFjZVN0YXRlLnBhc3NPcCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgKaW5kZXggZTQwMWI2NGNkMzUy
ZmZhZDBmNmE1NDg3NTcxMzI1OTcyZDM4MjQ4My4uMGExNDEwOGVjMmVmODk4ZTlkZDI0Y2Q5MDg2
NWNiMjMxOTg4YzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4KIApAQCAt
NzEsMyArNzQsNSBAQCBzdHJ1Y3QgU3RlbmNpbEZhY2VTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJl
QmluZGluZ0xheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3Rv
cmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2E2ZjAyOWNiODM1NjM4
ZjVhMTJmZTQ5NzE3YmMyNjc3MDk2NjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIK
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGlu
Z0xheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTdG9yYWdlVGV4dHVyZUJpbmRp
bmdMYXlvdXQmIHN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCkKK3sKKyAgICByZXR1cm4geyB7
IHN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5hY2Nlc3MsIHN0b3JhZ2VUZXh0dXJlQmluZGlu
Z0xheW91dC5mb3JtYXQsIHN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC52aWV3RGltZW5zaW9u
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggYzI1YjFhZjM0MWFh
YTA3MDE1OTYwMDU1OGUzY2I2NjcwMDE4M2E5Zi4uNjc0OTYxMmE2MzVjNjAzNTI2ZTFjMjI5NGQ5
OGQ5OTZmOTNmZWU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjUsNiAr
MjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3Rv
cmFnZVRleHR1cmVBY2Nlc3MuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVRleHR1cmVGb3JtYXQuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRl
eHR1cmVWaWV3RGltZW5zaW9uLmg+CkBAIC02NSwzICs2OCw1IEBAIHN0cnVjdCBTdG9yYWdlVGV4
dHVyZUJpbmRpbmdMYXlvdXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgxYWE1OGNmODEwNzA0MmJiYzJkMzdkOGNiOGJhN2I5YzQ2NDgyYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQVTo6U3VwcG9y
dGVkRmVhdHVyZXM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYgc3VwcG9ydGVkRmVhdHVyZXMpCit7CisgICAgcmV0
dXJuIHsgUEFMOjpXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUoVmVjdG9yPFN0cmlu
Zz4oc3VwcG9ydGVkRmVhdHVyZXMuZmVhdHVyZXMpKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKaW5kZXggMTBm
Mzg5MDNlMDcyNDMyMzkxODM2YzI2NjMzM2ZjNTk1YmRjNzYyMC4uYTY1YjcyMjkxMTQ3ODI0YzFi
OTM5NWU5NWYwNTFjMzE5ZjQ0ODllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRp
b25hbD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTUwLDMgKzUzLDUgQEAgc3RydWN0IFN1cHBvcnRlZEZlYXR1cmVzIHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U3VwcG9ydGVkTGltaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dXBwb3J0ZWRMaW1pdHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMmMwNDFmOWMwNjNiMTNlMDlhMzc1ZTA2
NWZlOWZmMWI2MDg2NWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0
cy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkTGltaXRzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1Jl
ZlB0cjxQQUw6OldlYkdQVTo6U3VwcG9ydGVkTGltaXRzPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3VwcG9ydGVkTGltaXRzJiBzdXBwb3J0ZWRM
aW1pdHMpCit7CisgICAgcmV0dXJuIHsgUEFMOjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0czo6Y3Jl
YXRlKAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjFELAorICAg
ICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjJELAorICAgICAgICBzdXBw
b3J0ZWRMaW1pdHMubWF4VGV4dHVyZURpbWVuc2lvbjNELAorICAgICAgICBzdXBwb3J0ZWRMaW1p
dHMubWF4VGV4dHVyZUFycmF5TGF5ZXJzLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Qmlu
ZEdyb3VwcywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heER5bmFtaWNVbmlmb3JtQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4RHluYW1pY1N0
b3JhZ2VCdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5t
YXhTYW1wbGVkVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRz
Lm1heFNhbXBsZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhT
dG9yYWdlQnVmZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4
U3RvcmFnZVRleHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5t
YXhVbmlmb3JtQnVmZmVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMu
bWF4VW5pZm9ybUJ1ZmZlckJpbmRpbmdTaXplLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4
U3RvcmFnZUJ1ZmZlckJpbmRpbmdTaXplLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWluVW5p
Zm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1pblN0
b3JhZ2VCdWZmZXJPZmZzZXRBbGlnbm1lbnQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhW
ZXJ0ZXhCdWZmZXJzLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VmVydGV4QXR0cmlidXRl
cywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFZlcnRleEJ1ZmZlckFycmF5U3RyaWRlLAor
ICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4SW50ZXJTdGFnZVNoYWRlckNvbXBvbmVudHMsCisg
ICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU3RvcmFnZVNpemUsCisg
ICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhDb21wdXRlSW52b2NhdGlvbnNQZXJXb3JrZ3JvdXAs
CisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVgsCisgICAg
ICAgIHN1cHBvcnRlZExpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVksCisgICAgICAgIHN1
cHBvcnRlZExpbWl0cy5tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVosCisgICAgICAgIHN1cHBvcnRl
ZExpbWl0cy5tYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbikgfTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKaW5k
ZXggZmFjYTAzZWQ0ZmVlMzUxNjY4NTkzN2JjZTFkNmRmZDJhMmM5NmQ1MC4uMTRkOTVmZGUwMjZh
YWZlYWJmYjZkNDg2MmFiNTliNjlhNWU3NmQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaApAQCAtMjUsNyArMjUsMTAgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewogCkBAIC0yNTEsMyArMjU0LDUgQEAgc3RydWN0IFN1cHBvcnRlZExpbWl0cyB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVCaW5kaW5nTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlQmluZGluZ0xheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkNDUxMzBmNTM1ZDFkNGVhOTAw
N2IyZGMxNjFiYWE3MzdiMDk1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVUZXh0
dXJlQmluZGluZ0xheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUJpbmRp
bmdMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBUZXh0dXJlQmluZGluZ0xheW91dCYgdGV4dHVyZUJpbmRpbmdMYXlvdXQpCit7CisgICAg
cmV0dXJuIHsgeyB0ZXh0dXJlQmluZGluZ0xheW91dC5zYW1wbGVUeXBlLCB0ZXh0dXJlQmluZGlu
Z0xheW91dC52aWV3RGltZW5zaW9uLCB0ZXh0dXJlQmluZGluZ0xheW91dC5tdWx0aXNhbXBsZWQg
fSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlQmluZGluZ0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggYTI5YjljZjJkNzhlOTI1ZDBiYTAzZGM2MjM4
YWU3NDlmMzA4MGZmZi4uMjU2NmJkZDcwMDFkOWFjZjk1Y2QzN2MzOWVjOTUzNTIzMDlhZmE2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5k
aW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVCaW5kaW5nTGF5b3V0LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVTYW1wbGVUeXBlLmg+CiAjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0RpbWVuc2lvbi5oPgogCkBAIC02
NCwzICs2Nyw1IEBAIHN0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNj
cmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRmMzE2N2I5YTZkMjJiMjJkYTZhODRkOGY0ZGMzNDQ5
MTQ5YjBhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZy
b21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
VGV4dHVyZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYg
dGV4dHVyZURlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5n
KHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4odGV4dHVyZURlc2NyaXB0
b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBhdXRvIHNpemUgPSBjb252ZXJ0RnJvbUJhY2tpbmcodGV4dHVyZURlc2NyaXB0b3Iuc2l6ZSk7
CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSgqc2l6ZSksIHRleHR1cmVEZXNjcmlwdG9y
Lm1pcExldmVsQ291bnQsIHRleHR1cmVEZXNjcmlwdG9yLnNhbXBsZUNvdW50LCB0ZXh0dXJlRGVz
Y3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVEZXNjcmlwdG9yLmZvcm1hdCwgdGV4dHVyZURlc2Ny
aXB0b3IudXNhZ2UgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXggMzMyMjE3YmE2MTI1MmMxNDgwN2Jl
NjQ4ODAyOWUzNWQ4ZWM1MjUyMy4uMGJlMGRmZmEwOGZjZWE5ZDE5ZTVlODBkZDQ1OGExOWEwMmE2
MTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRl
eHR1cmVEZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVRXh0ZW50M0QuaCIKICNp
bmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFs
PgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgog
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZURpbWVuc2lvbi5oPgog
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oPgpAQCAt
OTUsMyArOTgsNSBAQCBzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDFjYzU1MWNiNzcwNTE2OTZmZTc5ZGIwNGViNDlhNDk0ODRiNDYwNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rl
c2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yJiB0
ZXh0dXJlVmlld0Rlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNr
aW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4odGV4dHVyZVZpZXdE
ZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgdGV4dHVyZVZpZXdEZXNjcmlwdG9y
LmZvcm1hdCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmRpbWVuc2lvbiwgdGV4dHVyZVZpZXdEZXNj
cmlwdG9yLmFzcGVjdCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmJhc2VNaXBMZXZlbCwgdGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLm1pcExldmVsQ291bnQsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5iYXNl
QXJyYXlMYXllciwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmFycmF5TGF5ZXJDb3VudCB9IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVW
aWV3RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVWaWV3RGVzY3JpcHRvci5oCmluZGV4IGE4MTc0MzU1ZTFkNjlmMzM2ODI5ZjY0MjNmMDMxMjJl
OTlmZTg5YzUuLjc5NTRkN2E4NWI4NzdmYjRkMjM4MDcxYmRmNTgzOGMyMmE5YjAzNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVSW50ZWdyYWxUeXBlcy5oPgpAQCAtMTAyLDMgKzEwNCw1IEBAIHN0cnVjdCBUZXh0dXJl
Vmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0
aW9uRXJyb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRp
b25FcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ3N2IwZjQ0MTY3M2U4ZDYzOGY5MTBmYWFmYzE3NjEw
MmMzMjQyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxp
ZGF0aW9uRXJyb3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworUmVmUHRyPFBB
TDo6V2ViR1BVOjpWYWxpZGF0aW9uRXJyb3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBWYWxpZGF0aW9uRXJyb3ImIHZhbGlkYXRpb25FcnJvcikK
K3sKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yOjpjcmVhdGUoU3Ry
aW5nKHZhbGlkYXRpb25FcnJvci5tZXNzYWdlKSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKaW5kZXggNDI0ODEwMmRm
NmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYxNi4uMjY4ZWU1MTU4NzAwZDdhNDIyYmE4ZWRl
OWEzZGZiNGExNjg2NTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewpAQCAtNDksMyArNTIsNSBAQCBzdHJ1Y3QgVmFsaWRhdGlvbkVycm9yIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0
cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRy
aWJ1dGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZWQ1ZGI2OTNlMDM1ZGVjMDAwNzA4YTU4NDhkMDUzYzA2
ZjM5ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4QXR0cmlidXRlLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4
QXR0cmlidXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFZlcnRleEF0dHJpYnV0ZSYgdmVydGV4QXR0cmli
dXRlKQoreworICAgIHJldHVybiB7IHsgdmVydGV4QXR0cmlidXRlLmZvcm1hdCwgdmVydGV4QXR0
cmlidXRlLm9mZnNldCwgdmVydGV4QXR0cmlidXRlLnNoYWRlckxvY2F0aW9uIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmli
dXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRl
LmgKaW5kZXggZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2MDZkZDBkZDM1MS4uYjEzZjhj
NmI0YzVjOWExY2I3NTc5ZGJlMjc0ZDg1M2YwOTdlNzM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaApAQCAtMjUsNiArMjUs
OSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4Rm9y
bWF0Lmg+CiAKQEAgLTY1LDMgKzY4LDUgQEAgc3RydWN0IFZlcnRleEF0dHJpYnV0ZSB7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleEJ1ZmZlckxheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4QnVmZmVyTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTQ4MmQwNjVhZWE1ZjhiNjcyZTc0
NjE3OGY2ZDhjZGYyMWM3MDcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAKQEAgLTAsMCArMSw1MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVWZXJ0ZXhC
dWZmZXJMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBWZXJ0
ZXhCdWZmZXJMYXlvdXQmIHZlcnRleEJ1ZmZlckxheW91dCkKK3sKKyAgICBWZWN0b3I8UEFMOjpX
ZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gYXR0cmlidXRlczsKKyAgICBhdHRyaWJ1dGVzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkodmVydGV4QnVmZmVyTGF5b3V0LmF0dHJpYnV0ZXMuc2l6ZSgpKTsK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdBdHRyaWJ1dGUgOiB2ZXJ0ZXhCdWZmZXJMYXlv
dXQuYXR0cmlidXRlcykgeworICAgICAgICBhdXRvIGF0dHJpYnV0ZSA9IGNvbnZlcnRGcm9tQmFj
a2luZyhiYWNraW5nQXR0cmlidXRlKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdHRyaWJ1dGVzLnVuY2hlY2tlZEFw
cGVuZChXVEZNb3ZlKCphdHRyaWJ1dGUpKTsKKyAgICB9CisKKyAgICByZXR1cm4geyB7IHZlcnRl
eEJ1ZmZlckxheW91dC5hcnJheVN0cmlkZSwgdmVydGV4QnVmZmVyTGF5b3V0LnN0ZXBNb2RlLCBX
VEZNb3ZlKGF0dHJpYnV0ZXMpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKaW5kZXggMjMxMDJkY2RiMzQ0
MjRiN2E4MWI1ZGYyMjJmZGNkMDVkMDIzNThlMS4uNGEyOGZlMTNjMjZlMjI1ZTBjOGVlYTVmNjMw
MTViYzQ5NTg1YzBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVZlcnRleEJ1ZmZlckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVWZXJ0
ZXhBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtNjYsMyArNjksNSBAQCBzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5b3V0IHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3Rh
dGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMjJhZmQyZGEwYmQ5ZTQ3YWIyYTdiY2ZjZGVmOWYwY2QyNGZhMTRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRl
eFN0YXRlLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleFN0YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0
ZXhTdGF0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IFZlcnRleFN0YXRlJiB2ZXJ0ZXhTdGF0ZSkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0
RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2UmPih2ZXJ0ZXhT
dGF0ZSkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJMYXlvdXQ+
PiBidWZmZXJzOworICAgIGJ1ZmZlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2ZXJ0ZXhTdGF0
ZS5idWZmZXJzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5nQnVmZmVyIDog
dmVydGV4U3RhdGUuYnVmZmVycykgeworICAgICAgICBpZiAoYmFja2luZ0J1ZmZlcikgeworICAg
ICAgICAgICAgYXV0byBidWZmZXIgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJhY2tpbmdCdWZmZXIp
OworICAgICAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidWZmZXJzLnVuY2hlY2tlZEFw
cGVuZChzdGQ6Om51bGxvcHQpOworICAgIH0KKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFz
ZSksIFdURk1vdmUoYnVmZmVycykgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmgKaW5kZXggNDZmZjhjNzU0M2VjMDJhYTIxZDZkZWQ3
YWQ5ZTFmMTQ4MjAxMWU2ZC4uMzcwZDI0MDNiMGM2OGIyMjBlYzAwNDdhM2M4ZWYyMjdjNWYzNWE2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRl
LmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oIgogI2luY2x1ZGUg
IldlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgpAQCAtNTgs
MyArNjAsNSBAQCBzdHJ1Y3QgVmVydGV4U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2Ug
ewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDkxZDFlYWI4OTA1MTg0ZjhlMDIxM2QzOWFl
OGRkYjU0MmMzYzhiY2EuLjhlM2FkMTljOWY1N2E1ZGY0ODYwN2IwZjNmNjMzNDY5MDAyNTIwYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMzE1LDYgKzMxNSw3MCBAQCBTaGFyZWQvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJSZXN1bHQuY3BwCiAKIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAog
CitTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZl
ckJpbmRpbmcuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3Bw
CitTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BV
L1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9y
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcAorU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
aWxhdGlvbk1lc3NhZ2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
Y3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCitT
aGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5jcHAK
K1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVy
bmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3Rh
dGUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHAKK1NoYXJlZC9X
ZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZVRhZ2dlZC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcAor
U2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2lu
MkQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
UXVlcnlTZXREZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcAorU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFw
dGVyT3B0aW9ucy5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQu
Y3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dl
YkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdGVuY2lsRmFjZVN0YXRlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVz
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwCitTaGFyZWQvV2Vi
R1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNj
cmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4QnVmZmVyTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5j
cHAKKwogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCiBTaGFyZWQvWFIvWFJE
ZXZpY2VJbmZvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggYmQ5NzJhMmJlYzI1YmUyNjdmOTU4MWJkMGFlYzIwZmFlZGY2YjY1MC4u
YjU4YjljNTY0NTA4NjcxMGJmYmMyOTBhYjg5NDJkNjI5ODNlYWQyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03LDggKzcsMTYgQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3Vy
Y2VzL1VuaWZpZWRTb3VyY2UxMDAuY3AKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAxLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1Vu
aWZpZWRTb3VyY2UxMDIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMy5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTA0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDUuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTEwNi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA3LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDgu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwOS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEtbW0ubW0K
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTEuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTExLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTMtbW0ubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlZmVjYmNlZTQ2NTky
ZTc1OGUwZTg4Y2Y2ZTkxODFjZTkyOTk5OGIuLmU1NDc5NTg1MmVlYzRmZjJhYmNjMjMzODA3ZDEz
YzUyMmQyYTM1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzg5LDggKzM4OSw3OSBAQAogCQkxQzhFMjkzOTEyNzYxRTVCMDBCQzdC
RDAgLyogV0tJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDOEUyOTM3MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDOEUyQTM1MTI3
Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJBMzExMjc3ODUyNDAw
QkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDOEUy
QTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJBMzIxMjc3ODUyNDAwQkM3
QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggKi87IH07CisJCTFDOThDMDk3Mjc0NjIxMEUw
MDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDk2Mjc0NjIxMEUwMDJDQ0I3OCAv
KiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwRDkyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5ODI3NDYyNjc4MDAyQ0NCNzggLyog
V2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwREEyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOTkyNzQ2MjY3ODAwMkNDQjc4IC8q
IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBEQjI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5QTI3NDYyNjc4MDAyQ0NC
NzggLyogV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAgKi87IH07CisJCTFDOThDMERDMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5QjI3NDYyNjc4MDAyQ0NCNzgg
LyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwICovOyB9OworCQkxQzk4QzBERDI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOUMyNzQ2MjY3ODAwMkNDQjc4IC8qIFdl
YkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcCAqLzsgfTsKKwkJMUM5OEMwREUyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOUQyNzQ2MjY3ODAwMkNDQjc4IC8q
IFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwICovOyB9OworCQkxQzk4QzBERjI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5RTI3NDYyNjc5
MDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi87IH07CisJ
CTFDOThDMEUwMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThD
MDlGMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcCAq
LzsgfTsKKwkJMUM5OEMwRTEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEEwMjc0
NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4zRC5jcHAgKi87IH07CisJCTFDOThDMEUyMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTEyNzQ2MjY3OTAwMkND
Qjc4IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEUzMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBMjI3NDYyNjc5
MDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwICovOyB9OworCQkx
Qzk4QzBFNDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEEzMjc0NjI2
N0EwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzBF
NjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBNTI3NDYyNjdB
MDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAgKi87IH07CisJCTFDOThD
MEU3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEE2Mjc0NjI2N0EwMDJDQ0I3
OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMwRTgyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEE3Mjc0NjI2N0EwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEU5Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBODI3NDYyNjdB
MDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwICovOyB9
OworCQkxQzk4QzBFQTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBB
OTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAgKi87IH07CisJ
CTFDOThDMEVCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQUEyNzQ2
MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAgKi87IH07CisJCTFDOThD
MEVDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEFCMjc0NjI2N0IwMDJD
Q0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nLmNwcCAqLzsgfTsKKwkJMUM5OEMwRUQyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBQzI3NDYyNjdCMDAyQ0NCNzgg
LyogV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwRUUyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBRDI3NDYyNjdCMDAyQ0NCNzggLyog
V2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcCAqLzsgfTsKKwkJMUM5OEMwRUYyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEFFMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJH
UFVUZXh0dXJlRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEYxMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCMDI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVQmlu
ZEdyb3VwRW50cnkuY3BwICovOyB9OworCQkxQzk4QzBGMjI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCMTI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEYzMjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCMjI3NDYyNjdDMDAyQ0NCNzgg
LyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzBGNDI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCMzI3NDYyNjdDMDAyQ0NCNzgg
LyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAgKi87IH07CisJCTFDOThDMEY1Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEI0Mjc0NjI2N0MwMDJDQ0I3
OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwRjYy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCNTI3NDYy
NjdEMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLzsgfTsK
KwkJMUM5OEMwRjcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGlu
Z0xheW91dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzk4QzBCNjI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwRjgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVNh
bXBsZXJCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDOThDMEI3Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyQmlu
ZGluZ0xheW91dC5jcHAgKi87IH07CisJCTFDOThDMEY5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzk4QzBCODI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRGVwdGhTdGVu
Y2lsU3RhdGUuY3BwICovOyB9OworCQkxQzk4QzBGQTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BV
RXh0ZW50M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUM5OEMwQjkyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVUV4dGVudDNELmNwcCAqLzsgfTsK
KwkJMUM5OEMwRkIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2Ny
aXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQkEyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0
b3IuY3BwICovOyB9OworCQkxQzk4QzBGQzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
UGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQkIyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVVJl
bmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCAqLzsgfTsKKwkJMUM5OEMwRkQyNzQ2
MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQkMyNzQ2MjY3RTAwMkNDQjc4IC8q
IFdlYkdQVUZyYWdtZW50U3RhdGUuY3BwICovOyB9OworCQkxQzk4QzBGRTI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEJEMjc0NjI2N0UwMDJDQ0I3OCAv
KiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBGRjI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQkUyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQ
VUNvbG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMxMDAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVU9y
aWdpbjJELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDOThDMEJGMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4yRC5jcHAgKi87IH07CisJ
CTFDOThDMTAxMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDMDI3NDYyNjdFMDAyQ0NC
NzggLyogV2ViR1BVRXJyb3IuY3BwICovOyB9OworCQkxQzk4QzEwMjI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDMTI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVT3V0
T2ZNZW1vcnlFcnJvci5jcHAgKi87IH07CisJCTFDOThDMTAzMjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDMjI3NDYyNjdGMDAyQ0NCNzggLyogV2Vi
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwICovOyB9OworCQkxQzk4QzEwNDI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDMzI3NDYyNjdGMDAyQ0NCNzgg
LyogV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAgKi87IH07CisJCTFDOThDMTA1Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEM0Mjc0NjI2N0Yw
MDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLzsgfTsK
KwkJMUM5OEMxMDYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEM1Mjc0
NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5jcHAgKi87IH07CisJCTFDOThD
MTA3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEM2Mjc0
NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCAqLzsgfTsK
KwkJMUM5OEMxMDgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQzcyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IuY3BwICovOyB9OworCQkxQzk4QzEwOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcGls
YXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDOThDMEM4Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21waWxhdGlvbk1lc3Nh
Z2UuY3BwICovOyB9OworCQkxQzk4QzEwQTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzk4QzBDOTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5j
cHAgKi87IH07CisJCTFDOThDMTBCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdGVuY2lsRmFj
ZVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDOThDMENBMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcCAq
LzsgfTsKKwkJMUM5OEMxMEMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVz
Y3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzk4QzBDQjI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKKwkJMUM5OEMxMEQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDOThDMENDMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5j
cHAgKi87IH07CisJCTFDOThDMTBFMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4
QzBDRDI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4U3RhdGUuY3BwICovOyB9OworCQkx
Qzk4QzEwRjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDRTI3NDYy
NjgxMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHAgKi87IH07CisJCTFDOThD
MTEwMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDRjI3NDYy
NjgxMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwICovOyB9OworCQkx
Qzk4QzExMTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQwMjc0NjI2
ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwICovOyB9OworCQkxQzk4QzEx
MjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQxMjc0NjI2
ODEwMDJDQ0I3OCAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwICovOyB9OworCQkx
Qzk4QzExMzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQy
Mjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwICovOyB9
OworCQkxQzk4QzExNDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMw
RDMyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcCAqLzsgfTsK
KwkJMUM5OEMxMTYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Qzk4QzBENTI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKKwkJMUM5OEMxMTcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM5OEMwRDYyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3ND
b2xvckF0dGFjaG1lbnQuY3BwICovOyB9OworCQkxQzk4QzExODI3NDYyNjgzMDAyQ0NCNzggLyog
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBENzI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMTE5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJH
UFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBEODI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuY3BwICovOyB9OwogCQkxQ0E4Qjk0NTEyN0M4ODJBMDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQThCOTQ2
MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEw
MDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMUNBRUNC
NjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwICovOyB9OworCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMS5jcHAgKi87IH07CisJCTFDQUVDQjY3Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTA4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQUVDQjVGMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA4LmNwcCAqLzsgfTsK
KwkJMUNBRUNCNjgyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjAyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovOyB9OworCQkxQ0FFQ0I2OTI3NDY1
QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwNC5jcHAgKi87IH07CisJCTFDQUVDQjZBMjc0NjVBRTQwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTA1LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQUVDQjYyMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA1LmNw
cCAqLzsgfTsKKwkJMUNBRUNCNkIyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDYu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNC
NjMyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDYuY3BwICovOyB9OworCQkxQ0FF
Q0I2QzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2NDI3NDY1QUU0MDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgKi87IH07CiAJCTFDQjc0NjREMjc0MzgwQzgwMEYx
OTg3NCAvKiBXZWJHUFVEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0I3NDY0QjI3NDM4MEM4MDBG
MTk4NzQgLyogV2ViR1BVRG93bmNhc3RDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovOyB9Owog
CQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNC
QkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
QkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi87IH07
CkBAIC0yOTc1LDEwICszMDQ2LDgxIEBACiAJCTFDOThDMDkzMjc0NEJEOUIwMDJDQ0I3OCAvKiBS
ZW1vdGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ29tcHV0ZVBh
c3NFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzk4
QzA5NDI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlR1BVLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZUdQVS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5OEMwOTUy
NzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUNvbW1hbmRFbmNvZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzA5NjI3NDYyMTBFMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwRGVzY3Jp
cHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTgyNzQ2MjY3ODAwMkNDQjc4
IC8qIFdlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzA5OTI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVU2hhZGVyTW9kdWxl
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwOUEyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDlCMjc0
NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDlDMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVQ
cm9ncmFtbWFibGVTdGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMDlEMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUltYWdl
Q29weVRleHR1cmVUYWdnZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzA5RTI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
OUYyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEEwMjc0NjI2
NzkwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4zRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVPcmlnaW4zRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMEExMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVRdWVyeVNldERlc2NyaXB0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUXVlcnlT
ZXREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTIy
NzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNj
cmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTMyNzQ2MjY3
QTAwMkNDQjc4IC8qIFdlYkdQVUltYWdlRGF0YUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBNTI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVQnVm
ZmVyQmluZGluZ0xheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQTYyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmxlbmRTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEE3Mjc0NjI2N0EwMDJDQ0I3OCAv
KiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEE4Mjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEE5Mjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJH
UFVCdWZmZXJEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBBQTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN1cHBvcnRlZExp
bWl0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEFCMjc0NjI2N0Iw
MDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzBBQzI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QnVm
ZmVyTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VVZlcnRleEJ1ZmZlckxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
OThDMEFEMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQUUyNzQ2MjY3QjAwMkNDQjc4
IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjAyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91
cEVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJp
bmRHcm91cEVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjEy
NzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEIyMjc0
NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEIzMjc0NjI2N0MwMDJDQ0I3
OCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzBCNDI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVu
ZGxlRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQjUyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVz
Y3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzBCNjI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN0
b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEI3Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTYW1wbGVy
QmluZGluZ0xheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEI4
Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEI5Mjc0NjI2N0QwMDJDQ0I3OCAv
KiBXZWJHUFVFeHRlbnQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVFeHRlbnQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MEJBMjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUV4dGVybmFsVGV4
dHVyZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBC
QjI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVy
UGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBCQzI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVGcmFnbWVudFN0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkQyNzQ2MjY3RTAwMkND
Qjc4IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCRTI3NDYyNjdFMDAyQ0NCNzgg
LyogV2ViR1BVQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCRjI3
NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVT3JpZ2luMkQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVT3JpZ2luMkQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzBDMDI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRXJyb3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDMTI3NDYyNjdGMDAyQ0NCNzggLyogV2Vi
R1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQzIyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQzMyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGFz
c0xheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEM0Mjc0NjI2
N0YwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDNTI3
NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDNjI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BV
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzcyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQ
aXBlbGluZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMEM4Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21waWxhdGlv
bk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
Q29tcGlsYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwQzkyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMENBMjc0NjI2ODAwMDJDQ0I3
OCAvKiBXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzBDQjI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMENDMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTYW1wbGVyRGVz
Y3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMENEMjc0NjI2
ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHUFVWZXJ0ZXhTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMENFMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUlt
YWdlQ29weVRleHR1cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBD
RjI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBEMDI3NDYyNjgxMDAy
Q0NCNzggLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMEQxMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwRDIyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzBEMzI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBENTI3NDYyNjgyMDAyQ0NC
NzggLyogV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQ2Mjc0NjI2ODIwMDJDQ0I3OCAv
KiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBENzI3NDYyNjgyMDAyQ0NCNzggLyog
V2ViR1BVRGV2aWNlRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwRDgyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9i
amVjdERlc2NyaXB0b3JCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5
RUJBNUIyMDg3RTc0RTAwMDU0NDI5IC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOYXRpdmVXZWJNb3VzZUV2ZW50SU9T
Lm1tOyBwYXRoID0gaW9zL05hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDQThCOTM1MTI3Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JV
SVByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
SW5zcGVjdG9yVUlQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNB
OEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9y
VUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5z
cGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwOS5jcHA7IHBhdGgg
PSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEw
OS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I1RTI3
NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVbmlmaWVkU291cmNlMTExLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTExLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjVGMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTA4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDguY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MDguY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNjAy
NzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVW5pZmllZFNvdXJjZTExMC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA0LmNwcDsgcGF0
aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTA0LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjYy
Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA1LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVuaWZpZWRTb3VyY2UxMDUuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDUuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNjMyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMDYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwNi5jcHA7IHBh
dGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTEwNi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I2
NDI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMTA3LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQy
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA3LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQjc0NjFBMjc0MzZFRTQwMEYxOTg3NCAvKiBSZW1vdGVU
ZXh0dXJlVmlld1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVRleHR1cmVWaWV3UHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCNzQ2MUIyNzQzNkVFNDAwRjE5ODc0
IC8qIFJlbW90ZUJpbmRHcm91cExheW91dFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUJp
bmRHcm91cExheW91dFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjc0
NjFDMjc0MzZFRTUwMEYxOTg3NCAvKiBSZW1vdGVDb21tYW5kQnVmZmVyUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZEJ1ZmZlclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTczOTYsNzEgKzc1MzgsMTM0IEBACiAJCTFDQjc0NjQ1Mjc0Mzc5
RjEwMEYxOTg3NCAvKiBXZWJHUFUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTFDOThDMDk2Mjc0NjIxMEUwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4QjI3NDM5Q0I3MDBGMTk4NzQgLyogV2ViR1BV
QmluZEdyb3VwRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEIwMjc0NjI2N0MwMDJDQ0I3OCAv
KiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAgKi8sCiAJCQkJMUNCNzQ2OEEyNzQzOUNCNjAwRjE5
ODc0IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5LmggKi8sCisJCQkJMUM5OEMwQjEyNzQ2MjY3QzAw
MkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwICovLAogCQkJCTFD
Qjc0NjZBMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmggKi8sCisJCQkJMUM5OEMwQ0YyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExh
eW91dEVudHJ5LmNwcCAqLywKIAkJCQkxQ0I3NDY5NTI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BV
QmluZEdyb3VwTGF5b3V0RW50cnkuaCAqLywKKwkJCQkxQzk4QzBDNTI3NDYyNjdGMDAyQ0NCNzgg
LyogV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwICovLAogCQkJCTFDQjc0Njc4Mjc0MzlDQjIwMEYx
OTg3NCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5oICovLAorCQkJCTFDOThDMEE2Mjc0NjI2N0Ew
MDJDQ0I3OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY3QzI3NDM5Q0Iz
MDBGMTk4NzQgLyogV2ViR1BVQmxlbmRTdGF0ZS5oICovLAorCQkJCTFDOThDMEFCMjc0NjI2N0Iw
MDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nLmNwcCAqLywKIAkJCQkxQ0I3NDY5MDI3NDM5
Q0I4MDBGMTk4NzQgLyogV2ViR1BVQnVmZmVyQmluZGluZy5oICovLAorCQkJCTFDOThDMEE1Mjc0
NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcCAqLywKIAkJCQkx
Q0I3NDY5MzI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oICov
LAorCQkJCTFDOThDMEE5Mjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9y
LmNwcCAqLywKIAkJCQkxQ0I3NDY2NjI3NDM5Q0FFMDBGMTk4NzQgLyogV2ViR1BVQnVmZmVyRGVz
Y3JpcHRvci5oICovLAorCQkJCTFDOThDMDlBMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVDYW52
YXNDb25maWd1cmF0aW9uLmNwcCAqLywKIAkJCQkxQ0I3NDY3RjI3NDM5Q0I0MDBGMTk4NzQgLyog
V2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oICovLAorCQkJCTFDOThDMEJFMjc0NjI2N0UwMDJD
Q0I3OCAvKiBXZWJHUFVDb2xvci5jcHAgKi8sCiAJCQkJMUNCNzQ2NzcyNzQzOUNCMjAwRjE5ODc0
IC8qIFdlYkdQVUNvbG9yLmggKi8sCisJCQkJMUM5OEMwQjMyNzQ2MjY3QzAwMkNDQjc4IC8qIFdl
YkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwICovLAogCQkJCTFDQjc0Njc5Mjc0MzlDQjIwMEYxOTg3
NCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmggKi8sCisJCQkJMUM5OEMwQTIyNzQ2MjY3OTAw
MkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3
NDY4MzI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCAq
LywKKwkJCQkxQzk4QzBCRDI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEVuY29kZXJE
ZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY5MjI3NDM5Q0I5MDBGMTk4NzQgLyogV2ViR1BV
Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQzgyNzQ2MjY4MDAwMkND
Qjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgKi8sCiAJCQkJMUM5OEMwN0IyNzQ0
QjQxNjAwMkNDQjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oICovLAorCQkJCTFDOThD
MEQyMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwICov
LAogCQkJCTFDQjc0Njk3Mjc0MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2Ny
aXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDMjI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwICovLAogCQkJCTFDQjc0Njg5Mjc0MzlDQjYwMEYxOTg3
NCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oICovLAorCQkJCTFDOThDMEM3
Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCAq
LywKIAkJCQkxQ0I3NDY3NjI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvci5oICovLAogCQkJCTFDQjc0NkE0Mjc0M0FEQkEwMEYxOTg3NCAvKiBXZWJHUFVD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmggKi8sCiAJCQkJMUNCNzQ2NDcyNzQzN0E3RjAwRjE5
ODc0IC8qIFdlYkdQVUNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmggKi8sCisJCQkJMUM5OEMwQjgy
NzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcCAqLywKIAkJCQkx
Q0I3NDY3MTI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaCAqLywK
KwkJCQkxQzk4QzBENzI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5j
cHAgKi8sCiAJCQkJMUNCNzQ2ODUyNzQzOUNCNTAwRjE5ODc0IC8qIFdlYkdQVURldmljZURlc2Ny
aXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDMDI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVRXJyb3Iu
Y3BwICovLAogCQkJCTFDOThDMDdFMjc0NEI5REIwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5oICov
LAorCQkJCTFDOThDMEI5Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlbnQzRC5jcHAgKi8s
CiAJCQkJMUNCNzQ2ODcyNzQzOUNCNjAwRjE5ODc0IC8qIFdlYkdQVUV4dGVudDNELmggKi8sCisJ
CQkJMUM5OEMwQzQyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRp
bmdMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0NjZGMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJCQkJMUM5OEMwQkEyNzQ2MjY3RDAw
MkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwICovLAogCQkJCTFD
Qjc0Njg2Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
LmggKi8sCisJCQkJMUM5OEMwQkMyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUZyYWdtZW50U3Rh
dGUuY3BwICovLAogCQkJCTFDQjc0NjdBMjc0MzlDQjIwMEYxOTg3NCAvKiBXZWJHUFVGcmFnbWVu
dFN0YXRlLmggKi8sCiAJCQkJMUNCNzQ2NDkyNzQzN0ZDNTAwRjE5ODc0IC8qIFdlYkdQVUlkZW50
aWZpZXIuaCAqLywKKwkJCQkxQzk4QzBBRDI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VD
b3B5QnVmZmVyLmNwcCAqLywKIAkJCQkxQ0I3NDY3RDI3NDM5Q0IzMDBGMTk4NzQgLyogV2ViR1BV
SW1hZ2VDb3B5QnVmZmVyLmggKi8sCisJCQkJMUM5OEMwQzYyNzQ2MjY3RjAwMkNDQjc4IC8qIFdl
YkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwICovLAogCQkJCTFDQjc0NjY4Mjc0MzlDQUUw
MEYxOTg3NCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggKi8sCisJCQkJMUM5OEMw
Q0UyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwICovLAogCQkJ
CTFDQjc0NjlCMjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmggKi8s
CisJCQkJMUM5OEMwOUQyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmVU
YWdnZWQuY3BwICovLAogCQkJCTFDQjc0Njc0Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlVGFnZ2VkLmggKi8sCisJCQkJMUM5OEMwQTMyNzQ2MjY3QTAwMkNDQjc4IC8q
IFdlYkdQVUltYWdlRGF0YUxheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2OUYyNzQzOUNCQzAwRjE5
ODc0IC8qIFdlYkdQVUltYWdlRGF0YUxheW91dC5oICovLAorCQkJCTFDOThDMEM5Mjc0NjI2ODAw
MDJDQ0I3OCAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY2OTI3
NDM5Q0FFMDBGMTk4NzQgLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oICovLAorCQkJCTFDOThD
MEQ4Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgKi8s
CiAJCQkJMUNCNzQ2NkMyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmggKi8sCisJCQkJMUM5OEMwQkYyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjJE
LmNwcCAqLywKIAkJCQkxQ0I3NDY3MDI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luMkQu
aCAqLywKKwkJCQkxQzk4QzBBMDI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVT3JpZ2luM0QuY3Bw
ICovLAogCQkJCTFDQjc0NkEwMjc0MzlDQkQwMEYxOTg3NCAvKiBXZWJHUFVPcmlnaW4zRC5oICov
LAorCQkJCTFDOThDMEMxMjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVPdXRPZk1lbW9yeUVycm9y
LmNwcCAqLywKIAkJCQkxQzk4QzA3QzI3NDRCOTkxMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1v
cnlFcnJvci5oICovLAorCQkJCTFDOThDMDlGMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmNwcCAqLywKIAkJCQkxQ0I3NDY5NDI3NDM5Q0I5MDBGMTk4NzQg
LyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oICovLAorCQkJCTFDOThDMEI1Mjc0NjI2
N0QwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwICovLAogCQkJ
CTFDQjc0Njk4Mjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IuaCAqLywKKwkJCQkxQzk4QzA5QjI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJpbWl0aXZl
U3RhdGUuY3BwICovLAogCQkJCTFDQjc0NjZEMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVQcmlt
aXRpdmVTdGF0ZS5oICovLAorCQkJCTFDOThDMDlDMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVQ
cm9ncmFtbWFibGVTdGFnZS5jcHAgKi8sCiAJCQkJMUNCNzQ2ODgyNzQzOUNCNjAwRjE5ODc0IC8q
IFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmggKi8sCisJCQkJMUM5OEMwQTEyNzQ2MjY3OTAwMkND
Qjc4IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2OUUyNzQz
OUNCQzAwRjE5ODc0IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThD
MEI0Mjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCAq
LywKIAkJCQkxQ0I3NDY4MjI3NDM5Q0I0MDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyQnVuZGxlRGVz
Y3JpcHRvci5oICovLAorCQkJCTFDOThDMEE4Mjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVSZW5k
ZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2N0IyNzQzOUNCMzAw
RjE5ODc0IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJ
MUM5OEMwRDYyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1l
bnQuY3BwICovLAogCQkJCTFDQjc0NjlEMjc0MzlDQkMwMEYxOTg3NCAvKiBXZWJHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50LmggKi8sCisJCQkJMUM5OEMwQkIyNzQ2MjY3RTAwMkNDQjc4IC8q
IFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCAqLywKIAkJCQkxQ0I3
NDY3RTI3NDM5Q0IzMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFj
aG1lbnQuaCAqLywKKwkJCQkxQzk4QzBBNzI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjZFMjc0MzlDQjAwMEYxOTg3NCAvKiBX
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEMzMjc0NjI2N0YwMDJD
Q0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY5MTI3NDM5
Q0I4MDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oICovLAorCQkJCTFDOThDMDlF
Mjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCAq
LywKIAkJCQkxQ0I3NDY5OTI3NDM5Q0JCMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlcy5oICovLAorCQkJCTFDOThDMEQ1Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjhFMjc0MzlDQjgwMEYx
OTg3NCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBE
MTI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCAqLywK
IAkJCQkxQ0I3NDY4QzI3NDM5Q0I3MDBGMTk4NzQgLyogV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmggKi8sCisJCQkJMUM5OEMwQjcyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY2NzI3NDM5Q0FFMDBGMTk4NzQgLyogV2Vi
R1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBDQzI3NDYyNjgwMDAyQ0NC
NzggLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjhEMjc0MzlD
QjcwMEYxOTg3NCAvKiBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDk5
Mjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCAqLywK
IAkJCQkxQ0I3NDY2QjI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvci5oICovLAorCQkJCTFDOThDMENBMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY3MzI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BV
U3RlbmNpbEZhY2VTdGF0ZS5oICovLAorCQkJCTFDOThDMEI2Mjc0NjI2N0QwMDJDQ0I3OCAvKiBX
ZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0Njk2Mjc0
MzlDQkEwMEYxOTg3NCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywK
KwkJCQkxQzk4QzBEMzI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
Y3BwICovLAogCQkJCTFDOThDMDc5Mjc0NEExQ0MwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5oICovLAorCQkJCTFDOThDMEFBMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuY3BwICovLAogCQkJCTFDOThDMDdBMjc0NEEyMDUwMDJDQ0I3OCAvKiBXZWJH
UFVTdXBwb3J0ZWRMaW1pdHMuaCAqLywKKwkJCQkxQzk4QzBCMjI3NDYyNjdDMDAyQ0NCNzggLyog
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0Njc1Mjc0MzlDQjEw
MEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oICovLAorCQkJCTFDOThDMEFF
Mjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJ
MUNCNzQ2ODEyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi8s
CisJCQkJMUM5OEMwQ0IyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2ODAyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVRleHR1
cmVWaWV3RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDk4Mjc0NjI2NzgwMDJDQ0I3OCAvKiBX
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwICovLAogCQkJCTFDOThDMDdEMjc0NEI5QjcwMDJDQ0I3
OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCAqLywKKwkJCQkxQzk4QzBEMDI3NDYyNjgxMDAy
Q0NCNzggLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY3MjI3NDM5
Q0IwMDBGMTk4NzQgLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmggKi8sCisJCQkJMUM5OEMwQUMy
NzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAgKi8sCiAJCQkJ
MUNCNzQ2OEYyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oICov
LAorCQkJCTFDOThDMENEMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5jcHAg
Ki8sCiAJCQkJMUNCNzQ2OUEyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleFN0YXRlLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkdQVTsKQEAgLTc4NTAsNiArODA1NSwxNCBAQAogCQkJ
CTFDNTY1NTdDMjc0NUM1QTAwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAxLmNwcCAqLywKIAkJ
CQkxQzU2NTU3RDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMi5jcHAgKi8sCiAJ
CQkJMUM1NjU1N0UyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwICovLAor
CQkJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLywK
KwkJCQkxQ0FFQ0I2MjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgKi8s
CisJCQkJMUNBRUNCNjMyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDYuY3BwICov
LAorCQkJCTFDQUVDQjY0Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA3LmNwcCAq
LywKKwkJCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAg
Ki8sCisJCQkJMUNBRUNCNUQyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3Bw
ICovLAorCQkJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNw
cCAqLywKKwkJCQkxQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5j
cHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcyI7CkBAIC0xNDg4MCw2ICsxNTA5
MywxNCBAQAogCQkJCTFDNTY1NTdGMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAx
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNTY1NTgwMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlm
aWVkU291cmNlMTAyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNTY1NTgxMjc0NUM1QTEwMDYz
MDBBRiAvKiBVbmlmaWVkU291cmNlMTAzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDQUVDQjY5
Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFDQUVDQjZBMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA1LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDQUVDQjZCMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTA2LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDQUVDQjZDMjc0NjVBRTQwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTA3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDQUVDQjY3Mjc0NjVBRTQw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDQUVD
QjY1Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTExLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAv
KiBVc2VySW50ZXJmYWNlSWRpb20ubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMy
RTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0xNDkxNCw2ICsxNTEzNSw2OSBAQAogCQkJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMEU2MDYxMTJENkJBOTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYxODIxMkQ2Q0IxRDAw
MTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMDk3Mjc0NjIxMEUwMDJDQ0I3OCAvKiBXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEYxMjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
Qzk4QzBGMjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzExMDI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDYy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFDOThDMEU3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMEVDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCdWZm
ZXJCaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEU2Mjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFD
OThDMEVBMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMERCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDYW52YXND
b25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEZGMjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVDb2xvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGNDI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQzk4QzBFMzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2Ny
aXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkUyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
Qzk4QzEwOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMTEzMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDMyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDOThDMTA4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEY5Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzk4QzExODI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwMTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRXJy
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdl
YkdQVUV4dGVudDNELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTA1Mjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFDOThDMEZCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEZEMjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVGcmFnbWVudFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MEVFMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUM5OEMxMDcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUV4
dGVybmFsSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMEYyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMwREUyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRTQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUlt
YWdlRGF0YUxheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwQTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
Qzk4QzExOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVU9y
aWdpbjJELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEUxMjc0NjI2ODMwMDJDQ0I3OCAv
KiBXZWJHUFVPcmlnaW4zRC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwMjI3NDYyNjgz
MDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzk4QzBFMDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGNjI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MERDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxQzk4QzBERDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUHJvZ3JhbW1hYmxl
U3RhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRTIyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBG
NTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzBFOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMTcy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRl
clBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MEU4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzEwNDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
UGFzc0xheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBERjI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQzk4QzExNjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTEyMjc0NjI2ODMwMDJDQ0I3OCAv
KiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMwRjgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMTBEMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTYW1w
bGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBEQTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQzk4QzEwQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGNzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BV
U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MTE0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQzk4QzBFQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVk
TGltaXRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEYzMjc0NjI2ODMwMDJDQ0I3OCAv
KiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4
QzBFRjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUM5OEMxMEMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVW
aWV3RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBEOTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFD
OThDMTExMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUM5OEMwRUQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEJ1
ZmZlckxheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwRTI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVVmVydGV4U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwNTIzNzUx
QzczRDM4RjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzNFODM1QjIzQTFCNzUwMDBERUYyODkgLyogV2Vi
SURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFREJEQ0Q2
MUU2OEQyMDAwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>
<flag name="review"
          id="469740"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="469746"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444730</attachid>
            <date>2021-11-18 13:34:34 -0800</date>
            <delta_ts>2021-11-18 16:08:06 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233310-20211118133433.patch</filename>
            <type>text/plain</type>
            <size>347841</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBlOTYzZTNjM2YxNTZjMTMx
ZTQ5MDZiOTBiYWNkMjY1OGQ1MWEzY2YuLmVjMGJlYWQ2ZGE4NDE5YjkyN2FiMDA4NmZjODM0MzQ1
M2FkMjViZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMyIEBACisyMDIxLTExLTE4ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQWRk
IGNvbnZlcnRlcnMgZnJvbSBzZXJpYWxpemFibGUgZGVzY3JpcHRvcnMgdG8gaW50ZXJmYWNlIGRl
c2NyaXB0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAg
VGhlIFdlYkdQVSBhYnN0cmFjdCBpbnRlcmZhY2UgKGluIFBBTC9ncmFwaGljcy9XZWJHUFUpIGhh
cyBhIHNldCBvZiBzdHJ1Y3RzIGZvciBkZXNjcmlwdG9ycy4gVGhlc2UgZGVzY3JpcHRvcnMgaG9s
ZCByZWZlcmVuY2VzIHRvCisgICAgICAgIG9iamVjdHMsIHNvIHRoZXNlIGludGVyZmFjZXMgY2Fu
J3QgYmUgc2VyaWFsaXplZCBkaXJlY3RseS4gSW5zdGVhZCwgd2UgaGF2ZSBhIHBhcmFsbGVsIHNl
dCBvZiBzdHJ1Y3RzIChpbiBXZWJLaXQvU2hhcmVkL1dlYkdQVSkKKyAgICAgICAgd2hpY2ggcmVw
bGFjZSB0aGUgb2JqZWN0IHJlZmVyZW5jZXMgd2l0aCBXZWJHUFVJZGVudGlmaWVycy4gVGhlIHdl
YiBwcm9jZXNzIHNpZGUgd2lsbCBjb252ZXJ0IHRoZSBhYnN0cmFjdCBpbnRlcmZhY2Ugc3RydWN0
cworICAgICAgICB0byB0aGUgc2VyaWFsaXphYmxlIG9uZXMsIGFuZCB0aGUgR1BVIHByb2Nlc3Mg
c2lkZSB3aWxsIGNvbnZlcnQgYmFjay4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb252ZXJ0
ZXJzIGJhY2ssIGZyb20gdGhlIHNlcmlhbGl6YWJsZQorICAgICAgICBzdHJ1Y3RzIHRvIHRoZSBh
YnN0cmFjdCBpbnRlcmZhY2Ugc3RydWN0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlv
dXRGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29u
dmVydEJ1ZmZlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RI
ZWFwOjpjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5j
b2RlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpj
b252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEV4dGVybmFsVGV4dHVyZUZyb21CYWNraW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRQaXBl
bGluZUxheW91dEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RI
ZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJC
dW5kbGVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNr
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVy
TW9kdWxlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9i
amVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cEVudHJ5Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kQ29tcG9uZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5n
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvclRhcmdldFN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kQnVmZmVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3Rh
dGUuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
cHV0ZVBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZXMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3Jp
cHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXJy
b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVRXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Lmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2Ny
aXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlF
eHRlcm5hbEltYWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlVGFnZ2VkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlv
dXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBs
ZVN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPcmlnaW4yRC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRl
LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVs
aW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZl
U3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdl
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmg6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2Ny
aXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJp
bmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0xheW91dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJv
bUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xh
eW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dXBwb3J0ZWRGZWF0dXJlcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9y
dGVkTGltaXRzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUu
aC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVy
ZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3
RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleEF0dHJpYnV0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVm
ZmVyTGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg6
CisKIDIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgY2Ft
ZXJhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3Jv
dXBEZXNjcmlwdG9yLmgKaW5kZXggNTM1ZTM1NzQ2MTkxZmRmMjE1N2I3OWE1M2NjMjY2ZmFiMjI3
YzQ1OC4uYTBjZDI5YzU1ZTQ3MTlkNTQ5YjRhMDAxOGIyZmFmNTFkYjkzYmM5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cERlc2NyaXB0
b3IuaApAQCAtNDAsMTMgKzQwLDkgQEAgc3RydWN0IEdQVUJpbmRHcm91cERlc2NyaXB0b3IgOiBw
dWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgICAgICByZXR1cm4gewogICAgICAg
ICAgICAgeyBsYWJlbCB9LAogICAgICAgICAgICAgbGF5b3V0LT5iYWNraW5nKCksCi0gICAgICAg
ICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJp
bmRHcm91cEVudHJ5PiBlbnRyaWVzOwotICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9y
IChhdXRvJiBiaW5kR3JvdXBFbnRyeSA6IHRoaXMtPmVudHJpZXMpCi0gICAgICAgICAgICAgICAg
ICAgIGVudHJpZXMudW5jaGVja2VkQXBwZW5kKGJpbmRHcm91cEVudHJ5LmNvbnZlcnRUb0JhY2tp
bmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJpZXM7Ci0gICAgICAgICAgICB9KSgp
LAorICAgICAgICAgICAgZW50cmllcy5tYXAoW10gKGF1dG8mIGJpbmRHcm91cEVudHJ5KSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGJpbmRHcm91cEVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKTsK
KyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCmluZGV4IDNkY2I1NDA3MDE0YmI5YjIzMmE4NzQ5NWI2ZWVkOTFmNzI1ZmE1NzUuLjZiMTQx
NTFhOTQ5MTEzYmRmMTZjZGIxMGQ4ODM1ZWZmZGI2YmQ0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yLmgKQEAgLTM3LDEzICszNyw5IEBAIHN0cnVjdCBHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yIDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICB7CiAgICAgICAgIHJl
dHVybiB7CiAgICAgICAgICAgICB7IGxhYmVsIH0sCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsK
LSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVudHJ5
PiBlbnRyaWVzOwotICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChhdXRvJiBlbnRy
eSA6IHRoaXMtPmVudHJpZXMpCi0gICAgICAgICAgICAgICAgICAgIGVudHJpZXMudW5jaGVja2Vk
QXBwZW5kKGVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IGVudHJpZXM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgZW50cmllcy5tYXAoW10g
KGF1dG8mIGVudHJ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmNvbnZlcnRUb0Jh
Y2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uSW5mby5jcHAKaW5k
ZXggMGI3YmIxYzU5MjI5ZDVlZDA3YmQ3Njk1Njc5ZDg2ZmU2YjhmNmQ0ZC4uZDJkZjMwYTM2Nzg2
ZDVkZDFkZjQzZDQ3ZWNiZGY3MzQ5NGIyY2VhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwCkBAIC0zMCwxMiArMzAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZlY3RvcjxSZWY8R1BVQ29tcGlsYXRpb25NZXNzYWdl
Pj4gR1BVQ29tcGlsYXRpb25JbmZvOjptZXNzYWdlcygpIGNvbnN0CiB7Ci0gICAgYXV0byBtZXNz
YWdlcyA9IG1fYmFja2luZy0+bWVzc2FnZXMoKTsKLSAgICBWZWN0b3I8UmVmPEdQVUNvbXBpbGF0
aW9uTWVzc2FnZT4+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSht
ZXNzYWdlcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgbWVzc2FnZSA6IG1lc3NhZ2VzKQotICAg
ICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEdQVUNvbXBpbGF0aW9uTWVzc2FnZTo6Y3JlYXRl
KFdURk1vdmUobWVzc2FnZSkpKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBtX2Jh
Y2tpbmctPm1lc3NhZ2VzKCkubWFwKFtdIChjb25zdCBhdXRvJiBtZXNzYWdlKSB7CisgICAgICAg
IHJldHVybiBHUFVDb21waWxhdGlvbk1lc3NhZ2U6OmNyZWF0ZShtZXNzYWdlKTsKKyAgICB9KTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29t
cGlsYXRpb25NZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
aWxhdGlvbk1lc3NhZ2UuaAppbmRleCBiYTk0YmYyODE1OGYxYTFiMTA5OTM4OTdhNmFhNzdiMTg2
NGUyYmRjLi5kZDU3OTRiMDYyMjljOGMzZGI4NGM0YmNhNjBiN2Y2YTc5MTY5NTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3Nh
Z2UuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdQVUNv
bXBpbGF0aW9uTWVzc2FnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbXBpbGF0aW9uTWVzc2Fn
ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcGlsYXRpb25NZXNzYWdlPiBjcmVh
dGUoUmVmPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYgYmFja2luZykKKyAgICBz
dGF0aWMgUmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4gY3JlYXRlKFBBTDo6V2ViR1BVOjpDb21w
aWxhdGlvbk1lc3NhZ2UmIGJhY2tpbmcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBHUFVDb21waWxhdGlvbk1lc3NhZ2UoV1RGTW92ZShiYWNraW5nKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21waWxhdGlvbk1lc3NhZ2UoYmFja2luZykpOwogICAg
IH0KIAogICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0OwpAQCAtNTIsOCArNTIsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSYgYmFj
a2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiBwcml2YXRlOgotICAgIEdQVUNv
bXBpbGF0aW9uTWVzc2FnZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJiBi
YWNraW5nKQotICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tpbmcpKQorICAgIEdQVUNv
bXBpbGF0aW9uTWVzc2FnZShQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlJiBiYWNraW5n
KQorICAgICAgICA6IG1fYmFja2luZyhiYWNraW5nKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGUuaAppbmRleCAyYzk0NTY4ODEzNmFkN2Q5ZGJmNTFiNTQ5M2M1Y2JmYjQ1ZTkw
MjA0Li4zYTVmMWFhODk2MmEyOWYzOTgwODVjOGZmM2Q4YzIzMzEzMzkyNWUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdy
aXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZS5oCkBAIC01NCwxMSArNTQsOSBAQCB1c2luZyBHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPjsKIAog
aW5saW5lIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyBjb252ZXJ0VG9C
YWNraW5nKGNvbnN0IEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJiBjb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcykKIHsKLSAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBX
cml0ZXMgcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBjb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlIDogY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMpCi0gICAgICAgIHJlc3Vs
dC51bmNoZWNrZWRBcHBlbmQoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5jb252ZXJ0VG9CYWNr
aW5nKCkpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzLm1hcChbXSAoYXV0byYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSkgeworICAg
ICAgICByZXR1cm4gY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5jb252ZXJ0VG9CYWNraW5nKCk7
CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVURldmljZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVURldmljZURlc2NyaXB0b3IuaAppbmRleCAyZmY1MmI5ZDlmMWJkMWU5NTE2OWZiODlmMTU1
MTliNDE0MDRkZmQzLi41NmZkZGNhNjcyNTI5NjI3MWU1YzY2MmU0MDJlNTM0NDM4NzMwMDUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VEZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlRGVzY3Jp
cHRvci5oCkBAIC00MSwxMyArNDEsOSBAQCBzdHJ1Y3QgR1BVRGV2aWNlRGVzY3JpcHRvciA6IHB1
YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgewogICAgICAgICByZXR1cm4gewog
ICAgICAgICAgICAgeyBsYWJlbCB9LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAg
ICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZT4gcmVxdWlyZWRGZWF0dXJl
czsKLSAgICAgICAgICAgICAgICByZXF1aXJlZEZlYXR1cmVzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkodGhpcy0+cmVxdWlyZWRGZWF0dXJlcy5zaXplKCkpOwotICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgcmVxdWlyZWRGZWF0dXJlIDogdGhpcy0+cmVxdWlyZWRGZWF0dXJlcykKLSAg
ICAgICAgICAgICAgICAgICAgcmVxdWlyZWRGZWF0dXJlcy51bmNoZWNrZWRBcHBlbmQoV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyhyZXF1aXJlZEZlYXR1cmUpKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWlyZWRGZWF0dXJlczsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBy
ZXF1aXJlZEZlYXR1cmVzLm1hcChbXSAoY29uc3QgYXV0byYgcmVxdWlyZWRGZWF0dXJlKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocmVxdWlyZWRG
ZWF0dXJlKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21lbnRTdGF0ZS5oCmluZGV4IDliMjBl
MmVmODhiNTA1YzVlNDI4ODdkZTg5YzgwMzBhYjIyMzU5ZGEuLmU5YjY5YWNiNWFjYjA2Y2E2OWI4
NzE3MmU5OTNlNTE4ZWY5NWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVUZyYWdtZW50U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVGcmFnbWVudFN0YXRlLmgKQEAgLTQwLDIxICs0MCwxMSBAQCBzdHJ1Y3QgR1BVRnJh
Z21lbnRTdGF0ZSA6IHB1YmxpYyBHUFVQcm9ncmFtbWFibGVTdGFnZSB7CiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCiAgICAgICAgICAgICAgICAgZW50
cnlQb2ludCwKLSAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICAg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0
YW50VmFsdWU+PiBjb25zdGFudHM7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOwotICAgICAgICAgICAg
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogdGhpcy0+Y29uc3RhbnRzKQotICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlS2V5VmFs
dWVQYWlyKGNvbnN0YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbnN0YW50czsKLSAgICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAg
ICAgIGNvbnN0YW50cywKICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsK
LSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGU+IHRh
cmdldHM7Ci0gICAgICAgICAgICAgICAgdGFyZ2V0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRo
aXMtPnRhcmdldHMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRhcmdldCA6
IHRoaXMtPnRhcmdldHMpCi0gICAgICAgICAgICAgICAgICAgIHRhcmdldHMudW5jaGVja2VkQXBw
ZW5kKHRhcmdldC5jb252ZXJ0VG9CYWNraW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB0
YXJnZXRzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIHRhcmdldHMubWFwKFtdIChh
dXRvJiB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmNvbnZlcnRUb0Jh
Y2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaAppbmRleCBhMjRiOTdkNzM5NTA2YzFjYjkzYjRiYTA4NGFlZWRjOWQzZjgxYzk0
Li41YmZiNTU4OWRkNWU2NjRhOThhYTE5M2NhOWFjNzNhYWQyNWZmZTNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaApAQCAtMzcsMTUgKzM3LDEwIEBAIHN0cnVjdCBHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHsKICAgICAg
ICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAgICAgICAgIChbdGhpc10g
KCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PiBiaW5kR3JvdXBMYXlvdXRzOwotICAgICAgICAgICAg
ICAgIGJpbmRHcm91cExheW91dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5iaW5kR3Jv
dXBMYXlvdXRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBiaW5k
R3JvdXBMYXlvdXQgOiB0aGlzLT5iaW5kR3JvdXBMYXlvdXRzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIEFTU0VSVChiaW5kR3JvdXBMYXlvdXQpOwotICAgICAgICAgICAgICAgICAgICBiaW5kR3Jv
dXBMYXlvdXRzLnVuY2hlY2tlZEFwcGVuZChiaW5kR3JvdXBMYXlvdXQtPmJhY2tpbmcoKSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBiaW5kR3JvdXBMYXlvdXRz
OwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIGJpbmRHcm91cExheW91dHMubWFwKFtd
IChjb25zdCBhdXRvJiBiaW5kR3JvdXBMYXlvdXQpIC0+IHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4geworICAgICAgICAgICAgICAgIEFTU0VSVChi
aW5kR3JvdXBMYXlvdXQpOworICAgICAgICAgICAgICAgIHJldHVybiBiaW5kR3JvdXBMYXlvdXQt
PmJhY2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByb2dyYW1tYWJsZVN0YWdlLmgK
aW5kZXggYTExNWE2YzA5OGQxZTkzNGNiNzFiNDUyNzdhYmU0OGI1NmQ3YTI1My4uODRjMWQwODYz
MDQ1N2M5YmI1OGVmYmU3OWRhYzk3NWMyOWQwMDI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcm9ncmFtbWFibGVTdGFnZS5oCkBAIC00MiwxMyArNDIs
NyBAQCBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgICAgICByZXR1cm4gewogICAg
ICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCiAgICAgICAgICAgICBlbnRyeVBvaW50LAotICAg
ICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7
Ci0gICAgICAgICAgICAgICAgY29uc3RhbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+
Y29uc3RhbnRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb25z
dGFudCA6IHRoaXMtPmNvbnN0YW50cykKLSAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnVu
Y2hlY2tlZEFwcGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0YW50LmtleSwgY29uc3RhbnQudmFs
dWUpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RhbnRzOwotICAgICAgICAgICAgfSko
KSwKKyAgICAgICAgICAgIGNvbnN0YW50cywKICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5U2V0RGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgK
aW5kZXggMDI4ZGE1Y2JkMTM3ZTMwZGE5NDE0MDU0NGE4MTZiZTExZjFmYzUwMS4uMGRhOTA0Mzhj
ZGMwNDAyM2Y1MDcwY2IwNmIzZGQ1MWNkODRlZGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKQEAgLTQyLDEzICs0
Miw5IEBAIHN0cnVjdCBHUFVRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogICAgICAgICAgICAgeyBsYWJlbCB9LAogICAgICAgICAgICAgV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyh0eXBlKSwKICAgICAgICAgICAgIGNvdW50LAotICAgICAgICAg
ICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpQaXBl
bGluZVN0YXRpc3RpY05hbWU+IHBpcGVsaW5lU3RhdGlzdGljczsKLSAgICAgICAgICAgICAgICBw
aXBlbGluZVN0YXRpc3RpY3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5waXBlbGluZVN0
YXRpc3RpY3Muc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBpcGVs
aW5lU3RhdGlzdGljIDogdGhpcy0+cGlwZWxpbmVTdGF0aXN0aWNzKQotICAgICAgICAgICAgICAg
ICAgICBwaXBlbGluZVN0YXRpc3RpY3MudW5jaGVja2VkQXBwZW5kKFdlYkNvcmU6OmNvbnZlcnRU
b0JhY2tpbmcocGlwZWxpbmVTdGF0aXN0aWMpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcGlw
ZWxpbmVTdGF0aXN0aWNzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIHBpcGVsaW5l
U3RhdGlzdGljcy5tYXAoW10gKGNvbnN0IGF1dG8mIHBpcGVsaW5lU3RhdGlzdGljKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocGlwZWxpbmVTdGF0
aXN0aWMpOworICAgICAgICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxl
RW5jb2RlckRlc2NyaXB0b3IuaAppbmRleCA2OTU3ZWE1OTMyMzFlNzFkZmU2MTQyN2NkM2UwZmZh
M2RlZGViMjZhLi4yMzg5YWQyNDdiNDM2YmQ0MDM1ZGRiNWM4OGQyZGQ3ZGRmMmI0NjE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNv
ZGVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTM2LDEzICszNiw5IEBAIHN0cnVjdCBH
UFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVSZW5kZXJQYXNzTGF5
b3V0IHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB7
IGxhYmVsIH0sCi0gICAgICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gY29sb3JGb3JtYXRzOwotICAg
ICAgICAgICAgICAgICAgICBjb2xvckZvcm1hdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlz
LT5jb2xvckZvcm1hdHMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBjb2xvckZvcm1hdCA6IHRoaXMtPmNvbG9yRm9ybWF0cykKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbG9yRm9ybWF0cy51bmNoZWNrZWRBcHBlbmQoV2ViQ29yZTo6Y29udmVydFRvQmFj
a2luZyhjb2xvckZvcm1hdCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sb3JGb3Jt
YXRzOwotICAgICAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICAgICAgY29sb3JGb3JtYXRz
Lm1hcChbXSAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29sb3JGb3JtYXQpOworICAgICAgICAg
ICAgICAgIH0pLAogICAgICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/IHN0ZDo6b3B0
aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxGb3JtYXQpIH0g
OiBzdGQ6Om51bGxvcHQsCiAgICAgICAgICAgICAgICAgc2FtcGxlQ291bnQsCiAgICAgICAgICAg
ICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBhc3NEZXNjcmlwdG9yLmgKaW5kZXggYTVmYzgzMDAyMzA0ZmZiMGQ2MGNmYWI5ZjVjMjQ2MGNl
Y2Q1ZTJhNC4uNjNhZDYyNjgwOTk5MzFkZGQ4Njg5NTVmNGRlZjYxMjkzYzBiMmVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvci5oCkBAIC00MiwxMyArNDIsOSBAQCBzdHJ1Y3QgR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHsKICAgICAgICAgcmV0
dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAgICAgICAgIChbdGhpc10gKCkgewot
ICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudD4gY29sb3JBdHRhY2htZW50czsKLSAgICAgICAgICAgICAgICBjb2xvckF0dGFjaG1lbnRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+Y29sb3JBdHRhY2htZW50cy5zaXplKCkpOwot
ICAgICAgICAgICAgICAgIGZvciAoYXV0byYgY29sb3JBdHRhY2htZW50IDogdGhpcy0+Y29sb3JB
dHRhY2htZW50cykKLSAgICAgICAgICAgICAgICAgICAgY29sb3JBdHRhY2htZW50cy51bmNoZWNr
ZWRBcHBlbmQoY29sb3JBdHRhY2htZW50LmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIGNvbG9yQXR0YWNobWVudHM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAg
ICAgICAgY29sb3JBdHRhY2htZW50cy5tYXAoW10gKGF1dG8mIGNvbG9yQXR0YWNobWVudCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBjb2xvckF0dGFjaG1lbnQuY29udmVydFRvQmFja2luZygp
OworICAgICAgICAgICAgfSksCiAgICAgICAgICAgICBkZXB0aFN0ZW5jaWxBdHRhY2htZW50ID8g
c3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQtPmNvbnZlcnRUb0JhY2tpbmco
KSB9IDogc3RkOjpudWxsb3B0LAogICAgICAgICAgICAgb2NjbHVzaW9uUXVlcnlTZXQgPyAmb2Nj
bHVzaW9uUXVlcnlTZXQtPmJhY2tpbmcoKSA6IG51bGxwdHIsCiAgICAgICAgICAgICBXZWJDb3Jl
Ojpjb252ZXJ0VG9CYWNraW5nKHRpbWVzdGFtcFdyaXRlcyksCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmgKaW5kZXggNjE0NDdmM2U2
NzA5MzE0ZGRhOTI3YmE5ZmI4MjFhYzg5MWUxY2Q2My4uYWYzNWRmZjhjYzI4MGNjYzg1NTgwYmRm
ZDU3YTk0ZGE5OGRkZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJH
UFUvR1BVUmVuZGVyUGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NMYXlvdXQuaApAQCAtMzksMTMgKzM5LDkgQEAgc3RydWN0IEdQVVJl
bmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHsK
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAgICAgICAgIChb
dGhpc10gKCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZv
cm1hdD4gY29sb3JGb3JtYXRzOwotICAgICAgICAgICAgICAgIGNvbG9yRm9ybWF0cy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbG9yRm9ybWF0cy5zaXplKCkpOwotICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQgOiB0aGlzLT5jb2xvckZvcm1hdHMpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbG9yRm9ybWF0cy51bmNoZWNrZWRBcHBlbmQoV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBj
b2xvckZvcm1hdHM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgY29sb3JGb3JtYXRz
Lm1hcChbXSAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCk7CisgICAgICAgICAgICB9
KSwKICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJD
b3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxGb3JtYXQpIH0gOiBzdGQ6Om51bGxv
cHQsCiAgICAgICAgICAgICBzYW1wbGVDb3VudCwKICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlLmgKaW5kZXggZmMxMmMxNGY5NWRiZDVjZWJmMmQxOWIyMTg3ZDZmYWNhMGZmMGY3Yi4uY2E1
OTI5NTRjZDNmMjE3Y2NkZTNjNDVmMmVjZTcyYzZhZmYwYzExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlLmgKQEAgLTU0LDExICs1NCw5IEBAIHVzaW5nIEdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMgPSBWZWN0b3I8R1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPjsKIAogaW5saW5lIFBBTDo6
V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIGNvbnZlcnRUb0JhY2tpbmcoY29uc3Qg
R1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykK
IHsKLSAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlIDogcmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChy
ZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygpKTsKLSAgICByZXR1cm4g
cmVzdWx0OworICAgIHJldHVybiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLm1hcChbXSAoYXV0
byYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlKSB7CisgICAgICAgIHJldHVybiByZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygpOworICAgIH0pOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhCdWZmZXJMYXlv
dXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91
dC5oCmluZGV4IGMzOGVhNjMxN2E4OTVmMTg3ZDljNGU3YjVmMTA4YTg0Njk1Zjc0MDIuLjgyMGJl
NWU5OGY4ZWRhNDQ5ZjZjZWMwYmU5OTIzYzJjY2EzNGNlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oCkBAIC0zOSwx
MyArMzksOSBAQCBzdHJ1Y3QgR1BVVmVydGV4QnVmZmVyTGF5b3V0IHsKICAgICAgICAgcmV0dXJu
IHsKICAgICAgICAgICAgIGFycmF5U3RyaWRlLAogICAgICAgICAgICAgV2ViQ29yZTo6Y29udmVy
dFRvQmFja2luZyhzdGVwTW9kZSksCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAg
ICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gYXR0cmlidXRlczsK
LSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+
YXR0cmlidXRlcy5zaXplKCkpOwotICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXR0cmlidXRl
IDogdGhpcy0+YXR0cmlidXRlcykKLSAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy51bmNo
ZWNrZWRBcHBlbmQoYXR0cmlidXRlLmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGF0dHJpYnV0ZXM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgYXR0
cmlidXRlcy5tYXAoW10gKGF1dG8mIGF0dHJpYnV0ZSkgeworICAgICAgICAgICAgICAgIHJldHVy
biBhdHRyaWJ1dGUuY29udmVydFRvQmFja2luZygpOworICAgICAgICAgICAgfSksCiAgICAgICAg
IH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVWZXJ0ZXhTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4
U3RhdGUuaAppbmRleCA5Mzg1MjEwZGU4YmVkNmMzNmVjYjA0ODFhODk5NDJlNjgzYzNlMDMwLi41
ODU1OWQ4MTM0NzgxOWE0ZWY4ZmZmMmUzNjdjMDFmMDkwMmZiYmExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmgKQEAgLTQxLDIxICs0MSwxMyBA
QCBzdHJ1Y3QgR1BVVmVydGV4U3RhdGUgOiBwdWJsaWMgR1BVUHJvZ3JhbW1hYmxlU3RhZ2Ugewog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG1vZHVsZS0+YmFja2luZygpLAogICAgICAg
ICAgICAgICAgIGVudHJ5UG9pbnQsCi0gICAgICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBQQUw6OldlYkdQVTo6
UGlwZWxpbmVDb25zdGFudFZhbHVlPj4gY29uc3RhbnRzOwotICAgICAgICAgICAgICAgICAgICBj
b25zdGFudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb25zdGFudHMuc2l6ZSgpKTsK
LSAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjb25zdGFudCA6IHRoaXMtPmNvbnN0YW50
cykKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy51bmNoZWNrZWRBcHBlbmQobWFr
ZUtleVZhbHVlUGFpcihjb25zdGFudC5rZXksIGNvbnN0YW50LnZhbHVlKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBjb25zdGFudHM7Ci0gICAgICAgICAgICAgICAgfSkoKSwKKyAgICAg
ICAgICAgICAgICBjb25zdGFudHMsCiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgKFt0aGlz
XSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7Ci0gICAgICAgICAgICAgICAgYnVmZmVycy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmJ1ZmZlcnMuc2l6ZSgpKTsKLSAgICAgICAgICAg
ICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IHRoaXMtPmJ1ZmZlcnMpCi0gICAgICAgICAgICAgICAg
ICAgIGJ1ZmZlcnMuYXBwZW5kKGJ1ZmZlciA/IHN0ZDo6b3B0aW9uYWwgeyBidWZmZXItPmNvbnZl
cnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
YnVmZmVyczsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBidWZmZXJzLm1hcChbXSAo
YXV0byYgYnVmZmVyKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhCdWZmZXJM
YXlvdXQ+IHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmZmVyKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYnVmZmVyLT5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVBZGFwdGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcAppbmRleCAyM2Y1YzlhY2YwOTFkZDg3ZDMz
NTA5MDFmNDVlYTA1NmYyZmNhMWIzLi43ZDViMTY1NGVlZDA3NmMxNzYwMjY4ZGYwMDI2ZGI3MjIw
NjU3YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcApAQCAtMTYwLDEwICsx
NjAsOSBAQCB2b2lkIEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3RpbwogICAgICAgICBsYWJlbC5kYXRhKCkKICAg
ICB9OwogCi0gICAgVmVjdG9yPFdHUFVGZWF0dXJlTmFtZT4gZmVhdHVyZXM7Ci0gICAgZmVhdHVy
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLnJlcXVpcmVkRmVhdHVyZXMuc2l6
ZSgpKTsKLSAgICBmb3IgKGF1dG8gZmVhdHVyZU5hbWUgOiBkZXNjcmlwdG9yLnJlcXVpcmVkRmVh
dHVyZXMpCi0gICAgICAgIGZlYXR1cmVzLnVuY2hlY2tlZEFwcGVuZChtX2NvbnZlcnRUb0JhY2tp
bmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGZlYXR1cmVOYW1lKSk7CisgICAgYXV0byBmZWF0
dXJlcyA9IGRlc2NyaXB0b3IucmVxdWlyZWRGZWF0dXJlcy5tYXAoW3RoaXNdIChhdXRvIGZlYXR1
cmVOYW1lKSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252
ZXJ0VG9CYWNraW5nKGZlYXR1cmVOYW1lKTsKKyAgICB9KTsKIAogICAgIFdHUFVSZXF1aXJlZExp
bWl0cyBsaW1pdHMgewogICAgICAgICBudWxscHRyLCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJ
bXBsLmgKaW5kZXggZTg0ZWQ0YTg1YjZiYzNlNDIxM2Q4MzdkOTE4YTdjMTZkZjk4MmE4OS4uODE0
YTI1NzBiMjhlYWU3YmJkY2E5ZmY2YTI4Yzc4NzdiNWVkMzljNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BV
QWRhcHRlckltcGwuaApAQCAtNTgsOSArNTgsOSBAQCBwcml2YXRlOgogICAgIFdHUFVBZGFwdGVy
IGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIAogICAgIHZvaWQgcmVxdWVz
dERldmljZUNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzLCBXR1BVRGV2aWNlLCBjb25z
dCBjaGFyKiBtZXNzYWdlKTsKLSAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVz
Y3JpcHRvciYsIFdURjo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJikgZmluYWw7Cisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpmdW5j
dGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9jYWxsYmFja3M7CisgICAgRGVxdWU8V1RGOjpG
dW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9jYWxsYmFja3M7CiAKICAgICBXR1BVQWRh
cHRlciBtX2JhY2tpbmcgeyBudWxscHRyIH07CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250
ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1w
bC5jcHAKaW5kZXggYWU4MmUwNDUzNzY2MzE4MDM4ZDNhMGM0ZGMzZTdkNTJjOTE5YjZhMi4uYjNm
NTU1ZGIzMTc4NWUyZGI2ZDY0MTZjMmY5Mjk2ZWY0MjQwZDgzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VURldmljZUltcGwuY3BwCkBAIC0xNDQsMTAgKzE0NCw4IEBAIFJlZjxCaW5kR3JvdXBMYXlvdXQ+
IERldmljZUltcGw6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBCaW5kR3JvdXBMYXlvdXRE
ZXNjCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwogCi0gICAg
VmVjdG9yPFdHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeT4gYmFja2luZ0VudHJpZXM7Ci0gICAgYmFj
a2luZ0VudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmVudHJpZXMuc2l6
ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogZGVzY3JpcHRvci5lbnRyaWVzKSB7
Ci0gICAgICAgIGJhY2tpbmdFbnRyaWVzLnVuY2hlY2tlZEFwcGVuZChXR1BVQmluZEdyb3VwTGF5
b3V0RW50cnkgeworICAgIGF1dG8gYmFja2luZ0VudHJpZXMgPSBkZXNjcmlwdG9yLmVudHJpZXMu
bWFwKFt0aGlzXSAoY29uc3QgYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIFdHUFVCaW5k
R3JvdXBMYXlvdXRFbnRyeSB7CiAgICAgICAgICAgICBudWxscHRyLAogICAgICAgICAgICAgZW50
cnkuYmluZGluZywKICAgICAgICAgICAgIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZl
cnRTaGFkZXJTdGFnZUZsYWdzVG9CYWNraW5nKGVudHJ5LnZpc2liaWxpdHkpLCB7CkBAIC0xNjks
OCArMTY3LDggQEAgUmVmPEJpbmRHcm91cExheW91dD4gRGV2aWNlSW1wbDo6Y3JlYXRlQmluZEdy
b3VwTGF5b3V0KGNvbnN0IEJpbmRHcm91cExheW91dERlc2MKICAgICAgICAgICAgICAgICBlbnRy
eS5zdG9yYWdlVGV4dHVyZSA/IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0Jh
Y2tpbmcoZW50cnkuc3RvcmFnZVRleHR1cmUtPmZvcm1hdCkgOiBXR1BVVGV4dHVyZUZvcm1hdF9V
bmRlZmluZWQsCiAgICAgICAgICAgICAgICAgZW50cnkuc3RvcmFnZVRleHR1cmUgPyBtX2NvbnZl
cnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGVudHJ5LnN0b3JhZ2VUZXh0dXJl
LT52aWV3RGltZW5zaW9uKSA6IFdHUFVUZXh0dXJlVmlld0RpbWVuc2lvbl9VbmRlZmluZWQsCiAg
ICAgICAgICAgICB9LAotICAgICAgICB9KTsKLSAgICB9CisgICAgICAgIH07CisgICAgfSk7CiAK
ICAgICBXR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBiYWNraW5nRGVzY3JpcHRvciB7CiAg
ICAgICAgIG51bGxwdHIsCkBAIC0xODYsMTAgKzE4NCw5IEBAIFJlZjxQaXBlbGluZUxheW91dD4g
RGV2aWNlSW1wbDo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgUGlwZWxpbmVMYXlvdXREZXNj
cmlwCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwogCi0gICAg
VmVjdG9yPFdHUFVCaW5kR3JvdXBMYXlvdXQ+IGJhY2tpbmdCaW5kR3JvdXBMYXlvdXRzOwotICAg
IGJhY2tpbmdCaW5kR3JvdXBMYXlvdXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGVzY3JpcHRv
ci5iaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvIGJpbmRHcm91cExheW91
dCA6IGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykKLSAgICAgICAgYmFja2luZ0JpbmRHcm91
cExheW91dHMudW5jaGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZl
cnRUb0JhY2tpbmcoYmluZEdyb3VwTGF5b3V0LmdldCgpKSk7CisgICAgYXV0byBiYWNraW5nQmlu
ZEdyb3VwTGF5b3V0cyA9IGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cy5tYXAoW3RoaXNdIChh
dXRvIGJpbmRHcm91cExheW91dCkgeworICAgICAgICByZXR1cm4gbV9jb252ZXJ0VG9CYWNraW5n
Q29udGV4dC0+Y29udmVydFRvQmFja2luZyhiaW5kR3JvdXBMYXlvdXQuZ2V0KCkpOworICAgIH0p
OwogCiAgICAgV0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBiYWNraW5nRGVzY3JpcHRvciB7
CiAgICAgICAgIG51bGxwdHIsCkBAIC0yMDUsMTAgKzIwMiw4IEBAIFJlZjxCaW5kR3JvdXA+IERl
dmljZUltcGw6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBCaW5kR3JvdXBEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwogCi0g
ICAgVmVjdG9yPFdHUFVCaW5kR3JvdXBFbnRyeT4gYmFja2luZ0VudHJpZXM7Ci0gICAgYmFja2lu
Z0VudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmVudHJpZXMuc2l6ZSgp
KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRHcm91cEVudHJ5IDogZGVzY3JpcHRvci5lbnRy
aWVzKSB7Ci0gICAgICAgIGJhY2tpbmdFbnRyaWVzLnVuY2hlY2tlZEFwcGVuZChXR1BVQmluZEdy
b3VwRW50cnkgeworICAgIGF1dG8gYmFja2luZ0VudHJpZXMgPSBkZXNjcmlwdG9yLmVudHJpZXMu
bWFwKFt0aGlzXSAoY29uc3QgYXV0byYgYmluZEdyb3VwRW50cnkpIHsKKyAgICAgICAgcmV0dXJu
IFdHUFVCaW5kR3JvdXBFbnRyeSB7CiAgICAgICAgICAgICBudWxscHRyLAogICAgICAgICAgICAg
YmluZEdyb3VwRW50cnkuYmluZGluZywKICAgICAgICAgICAgIHN0ZDo6aG9sZHNfYWx0ZXJuYXRp
dmU8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVzb3VyY2UpID8gbV9jb252ZXJ0VG9C
YWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhzdGQ6OmdldDxCdWZmZXJCaW5kaW5nPihi
aW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkuYnVmZmVyKSA6IG51bGxwdHIsCkBAIC0yMTYsOCArMjEx
LDggQEAgUmVmPEJpbmRHcm91cD4gRGV2aWNlSW1wbDo6Y3JlYXRlQmluZEdyb3VwKGNvbnN0IEJp
bmRHcm91cERlc2NyaXB0b3ImIGRlc2NyaXB0b3IKICAgICAgICAgICAgIHN0ZDo6aG9sZHNfYWx0
ZXJuYXRpdmU8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVzb3VyY2UpID8gc3RkOjpn
ZXQ8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVzb3VyY2UpLnNpemUudmFsdWVfb3Io
V0dQVV9XSE9MRV9TSVpFKSA6IDAsCiAgICAgICAgICAgICBzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8U2FtcGxlcj4+KGJpbmRHcm91cEVudHJ5LnJlc291cmNl
KSA/IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoc3RkOjpnZXQ8
c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxTYW1wbGVyPj4oYmluZEdyb3VwRW50cnkucmVzb3VyY2Up
LmdldCgpKSA6IG51bGxwdHIsCiAgICAgICAgICAgICBzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+PihiaW5kR3JvdXBFbnRyeS5yZXNvdXJj
ZSkgPyBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKHN0ZDo6Z2V0
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+PihiaW5kR3JvdXBFbnRyeS5yZXNv
dXJjZSkuZ2V0KCkpIDogbnVsbHB0ciwKLSAgICAgICAgfSk7Ci0gICAgfQorICAgICAgICB9Owor
ICAgIH0pOwogCiAgICAgV0dQVUJpbmRHcm91cERlc2NyaXB0b3IgYmFja2luZ0Rlc2NyaXB0b3Ig
ewogICAgICAgICBudWxscHRyLApAQCAtMjU5LDEwICsyNTQsOSBAQCBhdXRvIGNvbnZlcnRUb0Jh
Y2tpbmcoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29udmVy
dFRvQmFjawogCiAgICAgYXV0byBlbnRyeVBvaW50ID0gZGVzY3JpcHRvci5jb21wdXRlLmVudHJ5
UG9pbnQudXRmOCgpOwogCi0gICAgVmVjdG9yPENTdHJpbmc+IGNvbnN0YW50TmFtZXM7Ci0gICAg
Y29uc3RhbnROYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IuY29tcHV0ZS5j
b25zdGFudHMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogZGVzY3Jp
cHRvci5jb21wdXRlLmNvbnN0YW50cykKLSAgICAgICAgY29uc3RhbnROYW1lcy51bmNoZWNrZWRB
cHBlbmQoY29uc3RhbnQua2V5LnV0ZjgoKSk7CisgICAgYXV0byBjb25zdGFudE5hbWVzID0gZGVz
Y3JpcHRvci5jb21wdXRlLmNvbnN0YW50cy5tYXAoW10gKGNvbnN0IGF1dG8mIGNvbnN0YW50KSB7
CisgICAgICAgIHJldHVybiBjb25zdGFudC5rZXkudXRmOCgpOworICAgIH0pOwogCiAgICAgVmVj
dG9yPFdHUFVDb25zdGFudEVudHJ5PiBiYWNraW5nQ29uc3RhbnRFbnRyaWVzOwogICAgIGJhY2tp
bmdDb25zdGFudEVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmNvbXB1
dGUuY29uc3RhbnRzLnNpemUoKSk7CkBAIC0zMDQsMTAgKzI5OCw5IEBAIGF1dG8gY29udmVydFRv
QmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbnZl
cnRUb0JhY2tpCiAKICAgICBhdXRvIHZlcnRleEVudHJ5UG9pbnQgPSBkZXNjcmlwdG9yLnZlcnRl
eC5lbnRyeVBvaW50LnV0ZjgoKTsKIAotICAgIFZlY3RvcjxDU3RyaW5nPiB2ZXJ0ZXhDb25zdGFu
dE5hbWVzOwotICAgIHZlcnRleENvbnN0YW50TmFtZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShk
ZXNjcmlwdG9yLnZlcnRleC5jb25zdGFudHMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8m
IGNvbnN0YW50IDogZGVzY3JpcHRvci52ZXJ0ZXguY29uc3RhbnRzKQotICAgICAgICB2ZXJ0ZXhD
b25zdGFudE5hbWVzLnVuY2hlY2tlZEFwcGVuZChjb25zdGFudC5rZXkudXRmOCgpKTsKKyAgICBh
dXRvIHZlcnRleENvbnN0YW50TmFtZXMgPSBkZXNjcmlwdG9yLnZlcnRleC5jb25zdGFudHMubWFw
KFtdIChjb25zdCBhdXRvJiBjb25zdGFudCkgeworICAgICAgICByZXR1cm4gY29uc3RhbnQua2V5
LnV0ZjgoKTsKKyAgICB9KTsKIAogICAgIFZlY3RvcjxXR1BVQ29uc3RhbnRFbnRyeT4gdmVydGV4
Q29uc3RhbnRFbnRyaWVzOwogICAgIHZlcnRleENvbnN0YW50RW50cmllcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGRlc2NyaXB0b3IudmVydGV4LmNvbnN0YW50cy5zaXplKCkpOwpAQCAtMzIwLDIz
ICszMTMsMTggQEAgYXV0byBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYgZGVzY3JpcHRvciwgQ29udmVydFRvQmFja2kKICAgICAgICAgfSk7CiAgICAgfQog
Ci0gICAgVmVjdG9yPFZlY3RvcjxXR1BVVmVydGV4QXR0cmlidXRlPj4gYmFja2luZ0F0dHJpYnV0
ZXM7Ci0gICAgYmFja2luZ0F0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlw
dG9yLnZlcnRleC5idWZmZXJzLnNpemUoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBidWZmZXIg
OiBkZXNjcmlwdG9yLnZlcnRleC5idWZmZXJzKSB7CisgICAgYXV0byBiYWNraW5nQXR0cmlidXRl
cyA9IGRlc2NyaXB0b3IudmVydGV4LmJ1ZmZlcnMubWFwKFsmY29udmVydFRvQmFja2luZ0NvbnRl
eHRdIChjb25zdCBhdXRvJiBidWZmZXIpIC0+IFZlY3RvcjxXR1BVVmVydGV4QXR0cmlidXRlPiB7
CiAgICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIFZlY3RvcjxXR1BVVmVydGV4QXR0
cmlidXRlPiBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgYXR0cmlidXRlcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGJ1ZmZlci0+YXR0cmlidXRlcy5zaXplKCkpOwotICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBhdHRyaWJ1dGUgOiBidWZmZXItPmF0dHJpYnV0ZXMpIHsKLSAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzLnVuY2hlY2tlZEFwcGVuZChXR1BVVmVydGV4QXR0cmlidXRlIHsKKyAg
ICAgICAgICAgIHJldHVybiBidWZmZXItPmF0dHJpYnV0ZXMubWFwKFsmY29udmVydFRvQmFja2lu
Z0NvbnRleHRdIChjb25zdCBhdXRvJiBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gV0dQVVZlcnRleEF0dHJpYnV0ZSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRUb0Jh
Y2tpbmdDb250ZXh0LmNvbnZlcnRUb0JhY2tpbmcoYXR0cmlidXRlLmZvcm1hdCksCiAgICAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZS5vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZS5zaGFkZXJMb2NhdGlvbiwKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGJhY2tpbmdBdHRyaWJ1dGVzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKGF0
dHJpYnV0ZXMpKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgYmFja2luZ0F0dHJpYnV0ZXMudW5jaGVja2VkQXBwZW5kKHsg
fSk7Ci0gICAgfQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9KTsKIAogICAgIFZlY3Rv
cjxXR1BVVmVydGV4QnVmZmVyTGF5b3V0PiBiYWNraW5nQnVmZmVyczsKICAgICBiYWNraW5nQnVm
ZmVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IudmVydGV4LmJ1ZmZlcnMuc2l6
ZSgpKTsKQEAgLTM3Niw5ICszNjQsOSBAQCBhdXRvIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0VG9CYWNraQogCiAgICAg
VmVjdG9yPENTdHJpbmc+IGZyYWdtZW50Q29uc3RhbnROYW1lczsKICAgICBpZiAoZGVzY3JpcHRv
ci5mcmFnbWVudCkgewotICAgICAgICBmcmFnbWVudENvbnN0YW50TmFtZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShkZXNjcmlwdG9yLmZyYWdtZW50LT5jb25zdGFudHMuc2l6ZSgpKTsKLSAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBjb25zdGFudCA6IGRlc2NyaXB0b3IuZnJhZ21lbnQtPmNvbnN0
YW50cykKLSAgICAgICAgICAgIGZyYWdtZW50Q29uc3RhbnROYW1lcy51bmNoZWNrZWRBcHBlbmQo
Y29uc3RhbnQua2V5LnV0ZjgoKSk7CisgICAgICAgIGZyYWdtZW50Q29uc3RhbnROYW1lcyA9IGRl
c2NyaXB0b3IuZnJhZ21lbnQtPmNvbnN0YW50cy5tYXAoW10gKGNvbnN0IGF1dG8mIGNvbnN0YW50
KSB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RhbnQua2V5LnV0ZjgoKTsKKyAgICAgICAgfSk7
CiAgICAgfQogCiAgICAgVmVjdG9yPFdHUFVDb25zdGFudEVudHJ5PiBmcmFnbWVudENvbnN0YW50
RW50cmllczsKQEAgLTM5NiwxMCArMzg0LDkgQEAgYXV0byBjb252ZXJ0VG9CYWNraW5nKGNvbnN0
IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29udmVydFRvQmFja2kKIAog
ICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFdHUFVCbGVuZFN0YXRlPj4gYmxlbmRTdGF0ZXM7CiAg
ICAgaWYgKGRlc2NyaXB0b3IuZnJhZ21lbnQpIHsKLSAgICAgICAgYmxlbmRTdGF0ZXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmZyYWdtZW50LT50YXJnZXRzLnNpemUoKSk7Ci0g
ICAgICAgIGZvciAoY29uc3QgYXV0byYgdGFyZ2V0IDogZGVzY3JpcHRvci5mcmFnbWVudC0+dGFy
Z2V0cykgeworICAgICAgICBibGVuZFN0YXRlcyA9IGRlc2NyaXB0b3IuZnJhZ21lbnQtPnRhcmdl
dHMubWFwKFsmY29udmVydFRvQmFja2luZ0NvbnRleHRdIChjb25zdCBhdXRvJiB0YXJnZXQpIC0+
IHN0ZDo6b3B0aW9uYWw8V0dQVUJsZW5kU3RhdGU+IHsKICAgICAgICAgICAgIGlmICh0YXJnZXQu
YmxlbmQpIHsKLSAgICAgICAgICAgICAgICBibGVuZFN0YXRlcy51bmNoZWNrZWRBcHBlbmQoV0dQ
VUJsZW5kU3RhdGUgeworICAgICAgICAgICAgICAgIHJldHVybiBXR1BVQmxlbmRTdGF0ZSB7CiAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRUb0Jh
Y2tpbmdDb250ZXh0LmNvbnZlcnRUb0JhY2tpbmcodGFyZ2V0LmJsZW5kLT5jb2xvci5vcGVyYXRp
b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFRvQmFja2luZ0NvbnRleHQuY29u
dmVydFRvQmFja2luZyh0YXJnZXQuYmxlbmQtPmNvbG9yLnNyY0ZhY3RvciksCkBAIC00MDksMTAg
KzM5NiwxMCBAQCBhdXRvIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0VG9CYWNraQogICAgICAgICAgICAgICAgICAgICAg
ICAgY29udmVydFRvQmFja2luZ0NvbnRleHQuY29udmVydFRvQmFja2luZyh0YXJnZXQuYmxlbmQt
PmFscGhhLnNyY0ZhY3RvciksCiAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC5jb252ZXJ0VG9CYWNraW5nKHRhcmdldC5ibGVuZC0+YWxwaGEuZHN0RmFjdG9y
KSwKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH07CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBibGVuZFN0YXRl
cy51bmNoZWNrZWRBcHBlbmQoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIFZlY3Rv
cjxXR1BVQ29sb3JUYXJnZXRTdGF0ZT4gY29sb3JUYXJnZXRzOwpAQCAtNTQwLDEwICs1MjcsOSBA
QCBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rlcj4gRGV2aWNlSW1wbDo6Y3JlYXRlUmVuZGVyQnVuZGxl
RW5jb2Rlcihjb25zdCBSZW5kZXJCdW5kbAogewogICAgIGF1dG8gbGFiZWwgPSBkZXNjcmlwdG9y
LmxhYmVsLnV0ZjgoKTsKIAotICAgIFZlY3RvcjxXR1BVVGV4dHVyZUZvcm1hdD4gYmFja2luZ0Nv
bG9yRm9ybWF0czsKLSAgICBiYWNraW5nQ29sb3JGb3JtYXRzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoZGVzY3JpcHRvci5jb2xvckZvcm1hdHMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gY29sb3JG
b3JtYXQgOiBkZXNjcmlwdG9yLmNvbG9yRm9ybWF0cykKLSAgICAgICAgYmFja2luZ0NvbG9yRm9y
bWF0cy51bmNoZWNrZWRBcHBlbmQobV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRv
QmFja2luZyhjb2xvckZvcm1hdCkpOworICAgIGF1dG8gYmFja2luZ0NvbG9yRm9ybWF0cyA9IGRl
c2NyaXB0b3IuY29sb3JGb3JtYXRzLm1hcChbdGhpc10gKGF1dG8gY29sb3JGb3JtYXQpIHsKKyAg
ICAgICAgcmV0dXJuIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmco
Y29sb3JGb3JtYXQpOworICAgIH0pOwogCiAgICAgV0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yIGJhY2tpbmdEZXNjcmlwdG9yIHsKICAgICAgICAgbnVsbHB0ciwKQEAgLTU2MSwxMCAr
NTQ3LDkgQEAgUmVmPFF1ZXJ5U2V0PiBEZXZpY2VJbXBsOjpjcmVhdGVRdWVyeVNldChjb25zdCBR
dWVyeVNldERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2Ny
aXB0b3IubGFiZWwudXRmOCgpOwogCi0gICAgVmVjdG9yPFdHUFVQaXBlbGluZVN0YXRpc3RpY05h
bWU+IGJhY2tpbmdQaXBlbGluZVN0YXRpc3RpY3M7Ci0gICAgYmFja2luZ1BpcGVsaW5lU3RhdGlz
dGljcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IucGlwZWxpbmVTdGF0aXN0aWNz
LnNpemUoKSk7Ci0gICAgZm9yIChhdXRvIHBpcGVsaW5lU3RhdGlzdGljIDogZGVzY3JpcHRvci5w
aXBlbGluZVN0YXRpc3RpY3MpCi0gICAgICAgIGJhY2tpbmdQaXBlbGluZVN0YXRpc3RpY3MudW5j
aGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmco
cGlwZWxpbmVTdGF0aXN0aWMpKTsKKyAgICBhdXRvIGJhY2tpbmdQaXBlbGluZVN0YXRpc3RpY3Mg
PSBkZXNjcmlwdG9yLnBpcGVsaW5lU3RhdGlzdGljcy5tYXAoW3RoaXNdIChhdXRvIHBpcGVsaW5l
U3RhdGlzdGljKSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5j
b252ZXJ0VG9CYWNraW5nKHBpcGVsaW5lU3RhdGlzdGljKTsKKyAgICB9KTsKIAogICAgIFdHUFVR
dWVyeVNldERlc2NyaXB0b3IgYmFja2luZ0Rlc2NyaXB0b3IgewogICAgICAgICBudWxscHRyLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVRdWV1ZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVRdWV1ZUltcGwuY3BwCmluZGV4IGUzNjQ0ZjQzMzJjMDRmN2RkZjk1MTYy
MjJlMGQ0ZDU1ZGY5MzM1NzQuLjYzOWZhNGFiZTY2ZGJkMTNkZGY4YzQ0NTRmMzhmMDYzZmM1NTE5
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0lt
cGwvV2ViR1BVUXVldWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5jcHAKQEAgLTQ5LDEwICs0OSw5IEBAIFF1
ZXVlSW1wbDo6flF1ZXVlSW1wbCgpCiAKIHZvaWQgUXVldWVJbXBsOjpzdWJtaXQoVmVjdG9yPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Q29tbWFuZEJ1ZmZlcj4+JiYgY29tbWFuZEJ1ZmZlcnMpCiB7
Ci0gICAgVmVjdG9yPFdHUFVDb21tYW5kQnVmZmVyPiBiYWNraW5nQ29tbWFuZEJ1ZmZlcnM7Ci0g
ICAgYmFja2luZ0NvbW1hbmRCdWZmZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29tbWFuZEJ1
ZmZlcnMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gY29tbWFuZEJ1ZmZlciA6IGNvbW1hbmRCdWZm
ZXJzKQotICAgICAgICBiYWNraW5nQ29tbWFuZEJ1ZmZlcnMudW5jaGVja2VkQXBwZW5kKG1fY29u
dmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoY29tbWFuZEJ1ZmZlci5nZXQo
KSkpOworICAgIGF1dG8gYmFja2luZ0NvbW1hbmRCdWZmZXJzID0gY29tbWFuZEJ1ZmZlcnMubWFw
KFt0aGlzXSAoYXV0byBjb21tYW5kQnVmZmVyKSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRU
b0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGNvbW1hbmRCdWZmZXIpOworICAgIH0p
OwogCiAgICAgd2dwdVF1ZXVlU3VibWl0KG1fYmFja2luZywgYmFja2luZ0NvbW1hbmRCdWZmZXJz
LnNpemUoKSwgYmFja2luZ0NvbW1hbmRCdWZmZXJzLmRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVJlbmRlclBh
c3NFbmNvZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAKaW5kZXggNDRhYTgzMTg4NmEx
YjBlZGNkMGY3OTk5ZGMxMjA4ZDc1NDRkZGRmMC4uNWExZjkyNDY2ZWJiODIyZjA3NzE5ZGU3ZGVi
NDNmOGYwODNlOGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVSZW5kZXJQYXNzRW5jb2RlckltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUmVuZGVyUGFzc0Vu
Y29kZXJJbXBsLmNwcApAQCAtMTY4LDEwICsxNjgsOSBAQCB2b2lkIFJlbmRlclBhc3NFbmNvZGVy
SW1wbDo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQogCiB2b2lkIFJlbmRlclBhc3NFbmNv
ZGVySW1wbDo6ZXhlY3V0ZUJ1bmRsZXMoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UmVu
ZGVyQnVuZGxlPj4mJiByZW5kZXJCdW5kbGVzKQogewotICAgIFZlY3RvcjxXR1BVUmVuZGVyQnVu
ZGxlPiBiYWNraW5nQnVuZGxlczsKLSAgICBiYWNraW5nQnVuZGxlcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHJlbmRlckJ1bmRsZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gcmVuZGVyQnVuZGxl
IDogcmVuZGVyQnVuZGxlcykKLSAgICAgICAgYmFja2luZ0J1bmRsZXMudW5jaGVja2VkQXBwZW5k
KG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcocmVuZGVyQnVuZGxl
LmdldCgpKSk7CisgICAgYXV0byBiYWNraW5nQnVuZGxlcyA9IHJlbmRlckJ1bmRsZXMubWFwKFt0
aGlzXSAoYXV0byByZW5kZXJCdW5kbGUpIHsKKyAgICAgICAgcmV0dXJuIG1fY29udmVydFRvQmFj
a2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcocmVuZGVyQnVuZGxlLmdldCgpKTsKKyAgICB9
KTsKIAogICAgIHdncHVSZW5kZXJQYXNzRW5jb2RlckV4ZWN1dGVCdW5kbGVzKG1fYmFja2luZywg
YmFja2luZ0J1bmRsZXMuc2l6ZSgpLCBiYWNraW5nQnVuZGxlcy5kYXRhKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVU
ZXh0dXJlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9J
bXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcAppbmRleCA4NWY2MzBjYzA5NTAxNThhMmU0NDhlZTlh
MDcwYmVkNDU0ZDdkYjNiLi40MDc3NTZiNDQ3MWNkMTQ4YmVjNjQzOTBjOTA2M2Q2NzQ4N2QxOWRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVVRleHR1cmVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcApAQCAtNDksNyArNDksNyBAQCBU
ZXh0dXJlSW1wbDo6flRleHR1cmVJbXBsKCkKICAgICB3Z3B1VGV4dHVyZVJlbGVhc2UobV9iYWNr
aW5nKTsKIH0KIAotUmVmPFRleHR1cmVWaWV3PiBUZXh0dXJlSW1wbDo6Y3JlYXRlVmlldyhjb25z
dCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mIGRlc2NyaXB0b3IpIGNvbnN0
CitSZWY8VGV4dHVyZVZpZXc+IFRleHR1cmVJbXBsOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikKIHsKICAgICBDU3RyaW5n
IGxhYmVsID0gZGVzY3JpcHRvciA/IGRlc2NyaXB0b3ItPmxhYmVsLnV0ZjgoKSA6IENTdHJpbmco
IiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCmluZGV4IDAxNjA0YzEzODFh
ZTk1OTUxOGY4MDBjYjZjY2M1OGYxZjlmNjYzZjIuLmM1YWVmZWM4YThmYzBkY2FjOGY4NDNiYzlh
YWY0M2MxOGQ0YTZlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC00
MCw2ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbXBp
bGF0aW9uTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpLCB0eXBlLCBsaW5lTnVtLCBsaW5lUG9zLCBv
ZmZzZXQsIGxlbmd0aCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8Q29tcGlsYXRpb25NZXNz
YWdlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBDb21waWxhdGlvbk1lc3NhZ2VUeXBl
IHR5cGUsIHVpbnQ2NF90IGxpbmVOdW0sIHVpbnQ2NF90IGxpbmVQb3MsIHVpbnQ2NF90IG9mZnNl
dCwgdWludDY0X3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q29tcGlsYXRpb25NZXNzYWdlKG1lc3NhZ2UsIHR5cGUsIGxpbmVOdW0sIGxpbmVQb3MsIG9mZnNl
dCwgbGVuZ3RoKSk7CisgICAgfQorCiAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgQ29tcGlsYXRpb25NZXNzYWdlVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdWludDY0X3QgbGluZU51bSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGluZU51bTsgfQpAQCAtNDcsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0
X3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICB1aW50NjRfdCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgog
ICAgIENvbXBpbGF0aW9uTWVzc2FnZShTdHJpbmcmJiBtZXNzYWdlLCBDb21waWxhdGlvbk1lc3Nh
Z2VUeXBlIHR5cGUsIHVpbnQ2NF90IGxpbmVOdW0sIHVpbnQ2NF90IGxpbmVQb3MsIHVpbnQ2NF90
IG9mZnNldCwgdWludDY0X3QgbGVuZ3RoKQogICAgICAgICA6IG1fbWVzc2FnZShXVEZNb3ZlKG1l
c3NhZ2UpKQogICAgICAgICAsIG1fdHlwZSh0eXBlKQpAQCAtNTgsNyArNjMsMTYgQEAgcHJvdGVj
dGVkOgogICAgIHsKICAgICB9CiAKLXByaXZhdGU6CisgICAgQ29tcGlsYXRpb25NZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGlsYXRpb25NZXNzYWdlVHlwZSB0eXBlLCB1aW50NjRf
dCBsaW5lTnVtLCB1aW50NjRfdCBsaW5lUG9zLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IGxl
bmd0aCkKKyAgICAgICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgLCBtX3R5cGUodHlw
ZSkKKyAgICAgICAgLCBtX2xpbmVOdW0obGluZU51bSkKKyAgICAgICAgLCBtX2xpbmVQb3MobGlu
ZVBvcykKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgICAgICwgbV9sZW5ndGgobGVu
Z3RoKQorICAgIHsKKyAgICB9CisKICAgICBDb21waWxhdGlvbk1lc3NhZ2UoY29uc3QgQ29tcGls
YXRpb25NZXNzYWdlJikgPSBkZWxldGU7CiAgICAgQ29tcGlsYXRpb25NZXNzYWdlKENvbXBpbGF0
aW9uTWVzc2FnZSYmKSA9IGRlbGV0ZTsKICAgICBDb21waWxhdGlvbk1lc3NhZ2UmIG9wZXJhdG9y
PShjb25zdCBDb21waWxhdGlvbk1lc3NhZ2UmKSA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0
ZWRGZWF0dXJlcy5oCmluZGV4IGVlMGIyNGQ1NTc5ZmVhMDY5OTEyZmEwYzhiOTRhOTBmZGY4YmIw
YmUuLmI2YzlmNmQ4OTJhZDFkNTYzZmNlMDRjMTMxMzA0NTFhODUzZDBhOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuaApAQCAtMzgsNiArMzgsMTEgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdXBwb3J0ZWRGZWF0dXJlcyhXVEZNb3ZlKGZlYXR1cmVz
KSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+IGNyZWF0ZShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmVhdHVyZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTdXBwb3J0ZWRGZWF0dXJlcyhmZWF0dXJlcykpOworICAgIH0KKwogICAgIHN0
YXRpYyBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+IGNsb25lKGNvbnN0IFN1cHBvcnRlZEZlYXR1cmVz
JiBmZWF0dXJlcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN1cHBvcnRl
ZEZlYXR1cmVzKFZlY3RvcjxTdHJpbmc+KGZlYXR1cmVzLmZlYXR1cmVzKCkpKSk7CkBAIC00NSwx
MyArNTAsMTcgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZlYXR1cmVz
KCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgog
ICAgIFN1cHBvcnRlZEZlYXR1cmVzKFZlY3RvcjxTdHJpbmc+JiYgZmVhdHVyZXMpCiAgICAgICAg
IDogbV9mZWF0dXJlcyhXVEZNb3ZlKGZlYXR1cmVzKSkKICAgICB7CiAgICAgfQogCi1wcml2YXRl
OgorICAgIFN1cHBvcnRlZEZlYXR1cmVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmZWF0dXJlcykK
KyAgICAgICAgOiBtX2ZlYXR1cmVzKGZlYXR1cmVzKQorICAgIHsKKyAgICB9CisKICAgICBTdXBw
b3J0ZWRGZWF0dXJlcyhjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYpID0gZGVsZXRlOwogICAgIFN1
cHBvcnRlZEZlYXR1cmVzKFN1cHBvcnRlZEZlYXR1cmVzJiYpID0gZGVsZXRlOwogICAgIFN1cHBv
cnRlZEZlYXR1cmVzJiBvcGVyYXRvcj0oY29uc3QgU3VwcG9ydGVkRmVhdHVyZXMmKSA9IGRlbGV0
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKaW5kZXggY2E0ZmNhYmU5ZjIyMzJiYTk3OGQw
M2I1NzllYjI0YmNlNjNhMjk5OC4uY2MwODMzM2YyNGZjODM1MzMyZGYzMmFlMjg0YTI4ZDIyZmEx
NGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBw
dWJsaWM6CiAgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNpemVaKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7IH0KICAgICB1aW50MzJfdCBtYXhDb21w
dXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWF4Q29tcHV0ZVdv
cmtncm91cHNQZXJEaW1lbnNpb247IH0KIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBTdXBw
b3J0ZWRMaW1pdHMoCiAgICAgICAgIHVpbnQzMl90IG1heFRleHR1cmVEaW1lbnNpb24xRCwKICAg
ICAgICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjJELApAQCAtMjA1LDcgKzIwNSw2IEBA
IHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi1wcml2YXRlOgogICAgIFN1cHBvcnRlZExpbWl0
cyhjb25zdCBTdXBwb3J0ZWRMaW1pdHMmKSA9IGRlbGV0ZTsKICAgICBTdXBwb3J0ZWRMaW1pdHMo
U3VwcG9ydGVkTGltaXRzJiYpID0gZGVsZXRlOwogICAgIFN1cHBvcnRlZExpbWl0cyYgb3BlcmF0
b3I9KGNvbnN0IFN1cHBvcnRlZExpbWl0cyYpID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9u
RXJyb3IuaAppbmRleCA0ZjJmMTc1YjdkOTMwMWQzMzUzZGNjMmMxOWIzNDNmNGY0NzU3ZDRjLi42
NTEyN2U4NTUxYTAzNTgzZDUxOWY2ZjBhMjg4YWNhNWFmZTM1ODFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxp
ZGF0aW9uRXJyb3IuaApAQCAtMzgsNiArMzgsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBWYWxpZGF0aW9uRXJyb3IoV1RGTW92ZShtZXNzYWdlKSkpOwogICAgIH0K
IAorICAgIHN0YXRpYyBSZWY8VmFsaWRhdGlvbkVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmFsaWRhdGlvbkVy
cm9yKG1lc3NhZ2UpKTsKKyAgICB9CisKICAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25z
dCB7IHJldHVybiBtX21lc3NhZ2U7IH0KIAogcHJpdmF0ZToKQEAgLTQ2LDYgKzUxLDExIEBAIHBy
aXZhdGU6CiAgICAgewogICAgIH0KIAorICAgIFZhbGlkYXRpb25FcnJvcihjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCisgICAgICAgIDogbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0KKwog
ICAgIFZhbGlkYXRpb25FcnJvcihjb25zdCBWYWxpZGF0aW9uRXJyb3ImKSA9IGRlbGV0ZTsKICAg
ICBWYWxpZGF0aW9uRXJyb3IoVmFsaWRhdGlvbkVycm9yJiYpID0gZGVsZXRlOwogICAgIFZhbGlk
YXRpb25FcnJvciYgb3BlcmF0b3I9KGNvbnN0IFZhbGlkYXRpb25FcnJvciYpID0gZGVsZXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVPYmplY3RIZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKaW5kZXggYzYwZTk0ZjZjMjEwYjBiMGMwOWFhZmE4OTY2
NDdlZDFmZjc2OTU5NS4uMDkxMjIxOTRlY2M3ZWY2OTBmMDYyN2M4OGFkMjk0ZTUzOTNhNzMzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVPYmplY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29kZXIuaD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZS5oPgogI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmUuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUXVldWUuaD4KQEAgLTYwLDcgKzYxLDcgQEAgT2JqZWN0SGVhcDo6fk9iamVjdEhlYXAo
KQogewogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciogT2JqZWN0SGVhcDo6Y29udmVy
dEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6Oldl
YkdQVTo6QWRhcHRlciogT2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0
cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkg
fHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRl
cmF0b3ItPnZhbHVlKSkKQEAgLTY4LDcgKzY5LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0
ZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmkK
ICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPj4oaXRlcmF0b3It
PnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogT2JqZWN0
SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK1BBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3Jv
dXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBp
dGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9
PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2Vi
R1BVOjpCaW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtNzYsNyArNzcsNyBAQCBjb25z
dCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbgogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6
OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2Vi
R1BVOjpCaW5kR3JvdXBMYXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6QmluZEdy
b3VwTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTg0LDcgKzg1LDcgQEAgY29uc3QgUEFM
OjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cExh
eW91dEZyb21CYWNraW4KICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCaW5k
R3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6Oldl
YkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkJ1ZmZlciogT2JqZWN0SGVhcDo6
Y29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
ICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYg
KGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxS
ZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC05Miw3ICs5Myw3
IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRCdWZmZXJG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6
OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFM
OjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkNv
bW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29i
amVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVu
ZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1
ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMDAsNyArMTAxLDcgQEAgY29uc3QgUEFMOjpX
ZWJHUFU6OkNvbW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJv
bUJhY2tpbmcoV2UKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5k
QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6
OkNvbW1hbmRFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6Q29tbWFuZEVu
Y29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3Rz
LmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8
fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVy
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTEwOCw3ICsxMDksNyBAQCBjb25zdCBQQUw6OldlYkdQ
VTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21C
YWNraW5nKAogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkNv
bXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpDb21w
dXRlUGFzc0VuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpD
b21wdXRlUGFzc0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTE2LDcgKzExNyw3IEBA
IGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZl
cnRDb21wdXRlUGFzc0VuY29kZXJGcm9tCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAot
Y29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydENv
bXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BB
TDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGlw
ZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0
byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRv
ciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTI0LDcgKzEy
NSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNv
bnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0K
IAotY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZSogT2JqZWN0SGVhcDo6Y29udmVydERldmljZUZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpEZXZp
Y2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9s
ZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+PihpdGVyYXRvci0+dmFsdWUp
KQpAQCAtMTMyLDcgKzEzMywxNSBAQCBjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBPYmplY3RI
ZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcgogICAgIHJldHVy
biBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRy
KCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIE9iamVjdEhlYXA6OmNvbnZlcnRHUFVG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6RXh0
ZXJuYWxUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3Rz
LmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJu
YWxUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6
Y29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0
ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8
UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xNDAsNyArMTQ5LDcgQEAg
Y29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnQKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2Vi
R1BVOjpHUFU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQ
VTo6UGlwZWxpbmVMYXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRQaXBlbGluZUxheW91dEZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpQaXBlbGlu
ZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlv
dXQ+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTQ4LDcgKzE1Nyw3IEBAIGNvbnN0IFBBTDo6V2Vi
R1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0RnJv
bUJhY2tpbmcoCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVM
YXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6
UXVlcnlTZXQqIE9iamVjdEhlYXA6OmNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6
Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTU2LDcg
KzE2NSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0SGVhcDo6Y29udmVy
dFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJl
ZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1j
b25zdCBQQUw6OldlYkdQVTo6UXVldWUqIE9iamVjdEhlYXA6OmNvbnZlcnRRdWV1ZUZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpRdWV1ZSogT2Jq
ZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsK
ICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVy
bmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTY0
LDcgKzE3Myw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29udmVy
dFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpCiAgICAgcmV0dXJuIHN0ZDo6Z2V0
PFJlZjxQQUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1j
b25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVy
dFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCitQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVy
dFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwog
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyPj4oaXRlcmF0b3ItPnZh
bHVlKSkKQEAgLTE3Miw3ICsxODEsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
RW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcgogICAgIHJl
dHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+PihpdGVy
YXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxl
KiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogT2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmll
cikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAg
ICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBA
IC0xODAsNyArMTg5LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogT2JqZWN0
SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkcKICAgICByZXR1cm4gc3Rk
OjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+PihpdGVyYXRvci0+dmFsdWUpLnB0
cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIqIE9iamVjdEhl
YXA6OmNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+PihpdGVyYXRvci0+
dmFsdWUpKQpAQCAtMTg4LDcgKzE5Nyw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNz
RW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhCiAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXI+PihpdGVy
YXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxp
bmUqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogT2JqZWN0
SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBp
ZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlm
aWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+PihpdGVyYXRvci0+
dmFsdWUpKQpAQCAtMTk2LDcgKzIwNSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBl
bGluZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoCiAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+PihpdGVyYXRv
ci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogT2JqZWN0
SGVhcDo6Y29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCitQQUw6OldlYkdQVTo6U2FtcGxlciogT2JqZWN0SGVhcDo6Y29udmVydFNhbXBsZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29i
amVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpT
YW1wbGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTIwNCw3ICsyMTMsNyBAQCBjb25zdCBQQUw6
OldlYkdQVTo6U2FtcGxlciogT2JqZWN0SGVhcDo6Y29udmVydFNhbXBsZXJGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlNhbXBs
ZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6U2hh
ZGVyTW9kdWxlKiBPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogT2Jq
ZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52
YWx1ZSkpCkBAIC0yMTIsNyArMjIxLDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVs
ZSogT2JqZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkcKICAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGU+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZSogT2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitQQUw6OldlYkdQVTo6VGV4dHVyZSogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9
IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVj
dHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpUZXh0
dXJlPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTIyMCw3ICsyMjksNyBAQCBjb25zdCBQQUw6Oldl
YkdQVTo6VGV4dHVyZSogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+
PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6VGV4dHVy
ZVZpZXcqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogT2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsK
ICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVy
bmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+PihpdGVyYXRvci0+dmFsdWUpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVPYmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuaAppbmRleCA1NDZkMWU1MTc5N2I2NmEwZTM2ZTY4YjdjNTEwYmI1
MDJiZDAxOTY0Li45ZDhmYTEwNDQ3MzU1NTNmOTQ1NmUxNTdjM2ZjNTkxMTlmMzRmOGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9i
amVjdEhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdEhlYXAuaApAQCAtNDcsMjcgKzQ3LDI4IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgT2JqZWN0SGVhcCgpOwogCi0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNv
bnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29u
c3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogY29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBM
YXlvdXQqIGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6
OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBj
b252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
LSAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0
ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29u
c3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogY29udmVydENvbXB1dGVQaXBlbGluZUZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BV
OjpEZXZpY2UqIGNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5h
bDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5
b3V0KiBjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BV
OjpRdWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5k
ZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAg
Y29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpS
ZW5kZXJQYXNzRW5jb2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVs
aW5lKiBjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6
U2hhZGVyTW9kdWxlKiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0
dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpX
ZWJHUFU6OlRleHR1cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6QWRhcHRlciogY29udmVydEFkYXB0
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6
QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogY29udmVydEJpbmRHcm91
cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2Vi
R1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKKyAgICBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogY29udmVydENvbW1hbmRCdWZm
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6
Q29tbWFuZEVuY29kZXIqIGNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNv
bnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5h
bDsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVs
aW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6
OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUqIGNvbnZlcnRFeHRlcm5hbFRleHR1
cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6
R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAg
UEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6UXVlcnlTZXQq
IGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAg
IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZl
cnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpSZW5kZXJQ
YXNzRW5jb2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0
UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQ
QUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252ZXJ0U2hh
ZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpX
ZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZp
ZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIHVzaW5nIE9iamVj
dCA9IHN0ZDo6dmFyaWFudDwKICAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiwKQEAg
LTc5LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRl
UGFzc0VuY29kZXI+LAogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4s
CiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiwKKyAgICAgICAgUmVmPFBBTDo6V2Vi
R1BVOjpFeHRlcm5hbFRleHR1cmU+LAogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkdQVT4sCiAg
ICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+LAogICAgICAgICBSZWY8UEFM
OjpXZWJHUFU6OlF1ZXJ5U2V0PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9n
ZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJh
dGUtdW5pZmllZC1zb3VyY2VzLnNoCmluZGV4IDg1MmMyNThjN2U0YzJjMzI4ZDUwN2I5ZjUyYWM0
Nzg1OWYzMWJkZTguLmM2N2UyZDFlM2Q1ZGQwYjk4YTg3NzVjZWE2ZWQ5Yjc4ZTU5M2ViMGEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMu
c2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5z
aApAQCAtMTQsNyArMTQsNyBAQCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhl
bgogICAgIGZpCiBmaQogCi1VbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTEwMworVW5pZmllZFNv
dXJjZUNwcEZpbGVDb3VudD0xMTEKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBb
ICQjIC1lcSAwIF07IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjY2YmQxYjcz
NzliMDRkNTJkYjBjZDFiOTQwNjliZTFhOTRmZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oPgorCituYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5k
R3JvdXBEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQmluZEdyb3VwRGVzY3JpcHRvciYgYmluZEdyb3VwRGVzY3JpcHRvcikKK3sK
KyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UmPihiaW5kR3JvdXBEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byogYmluZEdyb3VwTGF5
b3V0ID0gY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKGJpbmRHcm91cERlc2NyaXB0
b3IuYmluZEdyb3VwTGF5b3V0KTsKKyAgICBpZiAoIWJpbmRHcm91cExheW91dCkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6QmluZEdyb3Vw
RW50cnk+IGVudHJpZXM7CisgICAgZW50cmllcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGJpbmRH
cm91cERlc2NyaXB0b3IuZW50cmllcy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgYmFj
a2luZ0VudHJ5IDogYmluZEdyb3VwRGVzY3JpcHRvci5lbnRyaWVzKSB7CisgICAgICAgIGF1dG8g
ZW50cnkgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFja2luZ0VudHJ5KTsKKyAgICAgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGVudHJpZXMu
dW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmVudHJ5KSk7CisgICAgfQorCisgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpiYXNlKSwgKmJpbmRHcm91cExheW91dCwgV1RGTW92ZShlbnRyaWVzKSB9IH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmgKaW5kZXggYmNjZTViOTM4NmQ4OWY3YzBhMTNjOGNhNTNkZDkzYmZl
MjVkM2FkZC4uNmEzNGQxOWQyZDM3OGRjYWQ3NGE0OGJhYzBmMzI0NDU5N2I3Y2RjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5oCkBAIC0yNSw5ICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cEVudHJ5LmgiCiAjaW5j
bHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNjUsMyArNjgsNSBAQCBzdHJ1Y3QgQmlu
ZEdyb3VwRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cEVudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBFbnRyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDgzMmRkMDU3YjU1OGE5YjkwMThkMDc2Yzc5MjM0ODYy
Mjg5N2M0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBFbnRyeS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwRW50cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6QmluZEdyb3VwRW50cnk+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBFbnRyeSYgYmluZEdyb3VwRW50cnkp
Cit7CisgICAgc3dpdGNoIChiaW5kR3JvdXBFbnRyeS50eXBlKSB7CisgICAgY2FzZSBCaW5kaW5n
UmVzb3VyY2VUeXBlOjpTYW1wbGVyOiB7CisgICAgICAgIGF1dG8qIHNhbXBsZXIgPSBjb252ZXJ0
U2FtcGxlckZyb21CYWNraW5nKGJpbmRHcm91cEVudHJ5LmlkZW50aWZpZXIpOworICAgICAgICBp
ZiAoIXNhbXBsZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4geyB7IGJpbmRHcm91cEVudHJ5LmJpbmRpbmcsIHsgKnNhbXBsZXIgfSB9IH07CisgICAg
fQorICAgIGNhc2UgQmluZGluZ1Jlc291cmNlVHlwZTo6VGV4dHVyZVZpZXc6IHsKKyAgICAgICAg
YXV0byogdGV4dHVyZVZpZXcgPSBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhiaW5kR3Jv
dXBFbnRyeS5pZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCF0ZXh0dXJlVmlldykKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50
cnkuYmluZGluZywgeyAqdGV4dHVyZVZpZXcgfSB9IH07CisgICAgfQorICAgIGNhc2UgQmluZGlu
Z1Jlc291cmNlVHlwZTo6QnVmZmVyQmluZGluZzogeworICAgICAgICBhdXRvIGJ1ZmZlckJpbmRp
bmcgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmluZEdyb3VwRW50cnkuYnVmZmVyQmluZGluZyk7Cisg
ICAgICAgIGlmICghYnVmZmVyQmluZGluZykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50cnkuYmluZGluZywgeyAqYnVmZmVy
QmluZGluZyB9IH0gfTsKKyAgICB9CisgICAgY2FzZSBCaW5kaW5nUmVzb3VyY2VUeXBlOjpFeHRl
cm5hbFRleHR1cmU6IHsKKyAgICAgICAgYXV0byogZXh0ZXJuYWxUZXh0dXJlID0gY29udmVydEV4
dGVybmFsVGV4dHVyZUZyb21CYWNraW5nKGJpbmRHcm91cEVudHJ5LmlkZW50aWZpZXIpOworICAg
ICAgICBpZiAoIWV4dGVybmFsVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50cnkuYmluZGluZywgeyAqZXh0ZXJu
YWxUZXh0dXJlIH0gfSB9OworICAgIH0KKyAgICB9CisKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCaW5kR3JvdXBFbnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cEVudHJ5LmgKaW5kZXggZDJmNDlkNTA4NDM3ZGJjOWRmYmFkN2JlZDg2MTEzMWFj
N2Q0ZThlMC4uNTNhMWI0MjMwYTIwZWIyNGI5YmM2NjRhYjlmZTBmOTU4ZjZmZDVjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgK
QEAgLTI1LDkgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyQmluZGluZy5oIgogI2luY2x1ZGUgIldlYkdQ
VUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPG9wdGlvbmFsPgog
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtOTQsMyArOTcsNSBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVzb3VyY2VUeXBlPiB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDY0ODRlOWQyYzBjYjNk
ZWQ0MmZhMmQwZjFlZjhlOTU4MDIyOTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciYg
YmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJv
bUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihiaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRFbnRy
eT4gZW50cmllczsKKyAgICBlbnRyaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5lbnRyaWVzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBi
YWNraW5nRW50cnkgOiBiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmVudHJpZXMpIHsKKyAgICAg
ICAgYXV0byBlbnRyeSA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nRW50cnkpOworICAgICAg
ICBpZiAoIWVudHJ5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
ZW50cmllcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZW50cnkpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKGVudHJpZXMpIH0gfTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cExheW91dERlc2NyaXB0b3IuaAppbmRleCBiNGYwY2I0YzY2MmVmM2FmMmRhNTU4MjA5ZjJjNzA4
YTUwOWM0NTViLi40N2EyZTAyYzNjNjVhZWQ0NTNiZmZjMTE5MmE5YTY1NWI2N2Y1YzYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgor
I2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0IEJpbmRHcm91cExheW91
dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXRFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdy
b3VwTGF5b3V0RW50cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NTcxMjYxMzE5ZTU3N2Q3ZjkzMTAxZWQ4
YjBlMWMzMzliYjc2ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVu
dHJ5PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3Qg
QmluZEdyb3VwTGF5b3V0RW50cnkmIGJpbmRHcm91cExheW91dEVudHJ5KQoreworICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQ+IGJ1ZmZlcjsKKyAgICBp
ZiAoYmluZEdyb3VwTGF5b3V0RW50cnkuYnVmZmVyKSB7CisgICAgICAgIGJ1ZmZlciA9IGNvbnZl
cnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkuYnVmZmVyKTsKKyAgICAgICAgaWYg
KCFidWZmZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nTGF5b3V0PiBzYW1wbGVy
OworICAgIGlmIChiaW5kR3JvdXBMYXlvdXRFbnRyeS5zYW1wbGVyKSB7CisgICAgICAgIHNhbXBs
ZXIgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJpbmRHcm91cExheW91dEVudHJ5LnNhbXBsZXIpOwor
ICAgICAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVCaW5kaW5nTGF5
b3V0PiB0ZXh0dXJlOworICAgIGlmIChiaW5kR3JvdXBMYXlvdXRFbnRyeS50ZXh0dXJlKSB7Cisg
ICAgICAgIHRleHR1cmUgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJpbmRHcm91cExheW91dEVudHJ5
LnRleHR1cmUpOworICAgICAgICBpZiAoIXRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3Jh
Z2VUZXh0dXJlQmluZGluZ0xheW91dD4gc3RvcmFnZVRleHR1cmU7CisgICAgaWYgKGJpbmRHcm91
cExheW91dEVudHJ5LnN0b3JhZ2VUZXh0dXJlKSB7CisgICAgICAgIHN0b3JhZ2VUZXh0dXJlID0g
Y29udmVydEZyb21CYWNraW5nKCpiaW5kR3JvdXBMYXlvdXRFbnRyeS5zdG9yYWdlVGV4dHVyZSk7
CisgICAgICAgIGlmICghc3RvcmFnZVRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGV4dGVybmFsVGV4dHVyZTsKKyAgICBpZiAoYmluZEdyb3Vw
TGF5b3V0RW50cnkuZXh0ZXJuYWxUZXh0dXJlKSB7CisgICAgICAgIGV4dGVybmFsVGV4dHVyZSA9
IGNvbnZlcnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkuZXh0ZXJuYWxUZXh0dXJl
KTsKKyAgICAgICAgaWYgKCFleHRlcm5hbFRleHR1cmUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiB7IHsgYmluZEdyb3VwTGF5b3V0RW50cnku
YmluZGluZywgYmluZEdyb3VwTGF5b3V0RW50cnkudmlzaWJpbGl0eSwgV1RGTW92ZShidWZmZXIp
LCBXVEZNb3ZlKHNhbXBsZXIpLCBXVEZNb3ZlKHRleHR1cmUpLCBXVEZNb3ZlKHN0b3JhZ2VUZXh0
dXJlKSwgV1RGTW92ZShleHRlcm5hbFRleHR1cmUpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oCmlu
ZGV4IGI4MzBhNTkxNDg5NmU1ZGY3MjUyZmY0ZDBjNjMyMDVjNTk3ZGRjMWEuLjdiNTRhMjcwMmJk
ZTdkYWZkODlmZDA5ZWQxYTQ3MTBlNTdkMjcxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oCkBAIC0yNSw2
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAj
aW5jbHVkZSAiV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKICNpbmNsdWRlICJXZWJHUFVTYW1wbGVyQmlu
ZGluZ0xheW91dC5oIgpAQCAtOTksMyArMTAxLDUgQEAgc3RydWN0IEJpbmRHcm91cExheW91dEVu
dHJ5IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTc2YjBiZmQwZTRmZTJjMzYx
YjUyMDVkYTgwZmU5ZmE3YmEzNTZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJsZW5kQ29t
cG9uZW50LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCbGVuZENvbXBvbmVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZENvbXBvbmVudD4gQ29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJsZW5kQ29tcG9uZW50JiBi
bGVuZENvbXBvbmVudCkKK3sKKyAgICByZXR1cm4geyB7IGJsZW5kQ29tcG9uZW50Lm9wZXJhdGlv
biwgYmxlbmRDb21wb25lbnQuc3JjRmFjdG9yLCBibGVuZENvbXBvbmVudC5kc3RGYWN0b3IgfSB9
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVu
ZENvbXBvbmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29t
cG9uZW50LmgKaW5kZXggZWViZjkzZTc0YjJiNzFjNWQ2ZWQ0NmEwNzY4MTA3OThhZmNkMDhmZS4u
ZDJiYjE4YzAxOGJlOWUxYjgzZmE1NWQ0ZTM5NzM4Zjc1MGVlNTllZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmgKQEAgLTI1LDYg
KzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJs
ZW5kRmFjdG9yLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZE9w
ZXJhdGlvbi5oPgogCkBAIC02NCwzICs2Nyw1IEBAIHN0cnVjdCBCbGVuZENvbXBvbmVudCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5k
U3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNGQyZTc5YTQ4ZTI4N2E2ODc0MmUyMzE5MGFkNzZhNjcy
MzkxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQmxlbmRTdGF0ZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCbGVuZFN0YXRlLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkJsZW5kU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBCbGVuZFN0YXRlJiBibGVuZFN0YXRlKQoreworICAgIGF1dG8gY29sb3IgPSBjb252
ZXJ0RnJvbUJhY2tpbmcoYmxlbmRTdGF0ZS5jb2xvcik7CisgICAgaWYgKCFjb2xvcikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYWxwaGEgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoYmxlbmRTdGF0ZS5hbHBoYSk7CisgICAgaWYgKCFhbHBoYSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY29sb3IpLCBXVEZNb3Zl
KCphbHBoYSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCbGVuZFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRTdGF0ZS5oCmluZGV4IDllODRiYWNlOWVhOTliMzA1YTM2OTA2MmVlYmE2NTlkNjI5ZThm
YTguLjk3MzYwZTI3YTJhZjJmOTcwMzFiNDA2ZmEyZDdjZjAwNDBlZjk2ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaApAQCAtMjUsNyArMjUs
MTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNs
dWRlICJXZWJHUFVCbGVuZENvbXBvbmVudC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCkBAIC01NiwzICs1OSw1IEBAIHN0cnVjdCBCbGVuZFN0
YXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZiYzlkOTRhOGJiZTEzODEyN2E2
ZWM2ZTU5ZDUzYWE3ZGEwNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRp
bmcuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVUJ1ZmZlckJpbmRpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZz4gQ29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckJpbmRpbmcmIGJ1ZmZlckJp
bmRpbmcpCit7CisgICAgYXV0byogYnVmZmVyID0gY29udmVydEJ1ZmZlckZyb21CYWNraW5nKGJ1
ZmZlckJpbmRpbmcuYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKmJ1ZmZlciwgYnVmZmVyQmluZGluZy5vZmZz
ZXQsIGJ1ZmZlckJpbmRpbmcuc2l6ZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKaW5kZXggMzE2YjQxNjhhMWQ5YzUxMjI4
NGRhM2VmNmE2MjBhMjczNzg1OGIwZi4uYTViMGExZTE2MTkwOTZlOGYzN2RhYmM2ZjhlYThmZjFk
MWNhMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVm
ZmVyQmluZGluZy5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgpAQCAtNjYsMyArNjgsNSBAQCBzdHJ1Y3QgQnVmZmVyQmluZGluZyB7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckJpbmRpbmdMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2OGMzNDdhNmE5OTQxMDE2Zjgx
NWM2ODA2NmJhOTBmNDhhYWUzZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCdWZm
ZXJCaW5kaW5nTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdM
YXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBCdWZmZXJCaW5kaW5nTGF5b3V0JiBidWZmZXJCaW5kaW5nTGF5b3V0KQoreworICAgIHJldHVy
biB7IHsgYnVmZmVyQmluZGluZ0xheW91dC50eXBlLCBidWZmZXJCaW5kaW5nTGF5b3V0Lmhhc0R5
bmFtaWNPZmZzZXQsIGJ1ZmZlckJpbmRpbmdMYXlvdXQubWluQmluZGluZ1NpemUgfSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5k
aW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmlu
ZGluZ0xheW91dC5oCmluZGV4IGY5ZDExMGU0YjBiYmU2NWIzZWY1YTI2ZGRmMWNlMzJkNDRiZGYy
ZTUuLmEwODhmMzIyODgxMGM3MjczNGIwYWFhYmMxMTJmY2MwNThkMDBmY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlv
dXQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KIApAQCAtNjQsMyArNjcsNSBAQCBzdHJ1Y3Qg
QnVmZmVyQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc0NTY2NmFhOTg5ZDYzYmIxOThjZmFiMTE5YTgxYjhiYTI4YjgyZTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5j
cHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1
ZmZlckRlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBidWZmZXJEZXNjcmlwdG9yKQoreworICAgIGF1
dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KGJ1ZmZlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBi
dWZmZXJEZXNjcmlwdG9yLnNpemUsIGJ1ZmZlckRlc2NyaXB0b3IudXNhZ2UsIGJ1ZmZlckRlc2Ny
aXB0b3IubWFwcGVkQXRDcmVhdGlvbiB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggOWM1MzQ0YTI0YmYw
ZDg5ZDYxZjQ4ZDExZjZmNTc5NDVhOGYwMWMzYi4uZGNhNTZlMWVhNzI3YTA5ODc3NmE0YzJmYzk3
YjJjYjJiZDdmZDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogCkBAIC03MSwzICs3NCw1IEBAIHN0cnVjdCBC
dWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFz
Q29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2Fu
dmFzQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY2NjdkYWM0NTZkZjcyZmViZDAyY2Rl
YmMwMTMzMTFiNmZhMWFlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNhbnZhc0Nv
bmZpZ3VyYXRpb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q2FudmFzQ29uZmlndXJhdGlv
bj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENh
bnZhc0NvbmZpZ3VyYXRpb24mIGNhbnZhc0NvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byogZGV2
aWNlID0gY29udmVydERldmljZUZyb21CYWNraW5nKGNhbnZhc0NvbmZpZ3VyYXRpb24uZGV2aWNl
KTsKKyAgICBpZiAoIWRldmljZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiBzaXplOworICAgIGlmIChjYW52
YXNDb25maWd1cmF0aW9uLnNpemUpIHsKKyAgICAgICAgc2l6ZSA9IGNvbnZlcnRGcm9tQmFja2lu
ZygqY2FudmFzQ29uZmlndXJhdGlvbi5zaXplKTsKKyAgICAgICAgaWYgKCFzaXplKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICByZXR1cm4geyB7ICpkZXZp
Y2UsIGNhbnZhc0NvbmZpZ3VyYXRpb24uZm9ybWF0LCBjYW52YXNDb25maWd1cmF0aW9uLnVzYWdl
LCBjYW52YXNDb25maWd1cmF0aW9uLmNvbG9yU3BhY2UsIGNhbnZhc0NvbmZpZ3VyYXRpb24uY29t
cG9zaXRpbmdBbHBoYU1vZGUsIFdURk1vdmUoc2l6ZSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDg0YjRiMDk3NWE4ZDcxOTQ5NDg4NjVhYWU3MTdlZWNlMTg2MGI0OWMuLjk2NGE5YjU0MTJl
Yzk2OTUzMjE4OTg2MGFmYjM4MDM1Y2UyZDg3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaApAQCAtMjUsNiAr
MjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2lu
Y2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPGNzdGRpbnQ+CkBAIC05NSwzICs5Nyw1IEBAIHN0cnVjdCBDYW52YXNDb25maWd1
cmF0aW9uIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWE3MTE5NzhhY2ZlMzUxYmRiYzI4NDFkM2U4M2VmMDNi
NzNmZjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xvckRpY3Q+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb2xvckRp
Y3QmIGNvbG9yRGljdCkKK3sKKyAgICByZXR1cm4geyB7IGNvbG9yRGljdC5yLCBjb2xvckRpY3Qu
ZywgY29sb3JEaWN0LmIsIGNvbG9yRGljdC5hIH0gfTsKK30KKworc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6Q29sb3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29s
b3IsIFtdIChjb25zdCBWZWN0b3I8ZG91YmxlPiYgdmVjdG9yKSAtPiBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpDb2xvcj4geworICAgICAgICByZXR1cm4geyB7IHZlY3RvciB9IH07CisgICAg
fSwgW3RoaXNdIChjb25zdCBDb2xvckRpY3QmIGNvbG9yRGljdCkgLT4gc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6Q29sb3I+IHsKKyAgICAgICAgYXV0byBjb2xvciA9IGNvbnZlcnRGcm9tQmFj
a2luZyhjb2xvckRpY3QpOworICAgICAgICBpZiAoIWNvbG9yKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpjb2xvcikgfSB9Owor
ICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKaW5k
ZXggNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0MWE4NThhNzk4MS4uM2M1OTNmMGQzODQy
YWNlZDNkYTA4MzE1MmQ0NjNjODc3MTJmMzJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbG9yLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx2
YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KQEAgLTc0LDMgKzc3LDUgQEAgc3RydWN0IENvbG9yRGljdCB7CiB1c2luZyBDb2xv
ciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91YmxlPiwgQ29sb3JEaWN0PjsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0
YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMzljZmJjMWRiMDhlZjc3MGQ4NGNlNTJiZWFjMWEwMjNkYTNm
ZjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbG9yVGFyZ2V0U3RhdGUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JU
YXJnZXRTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29sb3JUYXJnZXRTdGF0ZSYgY29sb3JUYXJn
ZXRTdGF0ZSkKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZFN0YXRlPiBi
bGVuZDsKKyAgICBpZiAoY29sb3JUYXJnZXRTdGF0ZS5ibGVuZCkgeworICAgICAgICBibGVuZCA9
IGNvbnZlcnRGcm9tQmFja2luZygqY29sb3JUYXJnZXRTdGF0ZS5ibGVuZCk7CisgICAgICAgIGlm
ICghYmxlbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAg
IHJldHVybiB7IHsgY29sb3JUYXJnZXRTdGF0ZS5mb3JtYXQsIFdURk1vdmUoYmxlbmQpLCBjb2xv
clRhcmdldFN0YXRlLndyaXRlTWFzayB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmgKaW5kZXggMmUzMDNjNDdlMDUy
MWExMjk0NDE0YjA2OWNmZTIzNzkyZDNlNmY5NS4uZmI0NGQ2ZTBkOWJjZTBlZmE4ZDFlNmJmZDU3
ZTlmMDRlZWZlZmI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yVGFyZ2V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQmxlbmRTdGF0
ZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVQ29sb3JXcml0ZS5oPgpAQCAtNjcsMyArNjksNSBAQCBzdHJ1Y3QgQ29sb3JUYXJnZXRT
dGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDJiOTk4ZWRkZTNlNGFiY2M5OGEwZTcyMTRlZDJjZGUwMWVjOGI0ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvciYgY29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVy
dEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oY29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZl
ckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
QnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IGFmYjYwODNjMDU0NTFmMjUzYzdkMmI1Y2I2YTRiZWI1
ZWVmMmMzYmEuLmRmMTczYzQ4ZmUzZGNhZGQxNGFlODdiZWFkMjliYmE4MmRmYzdkYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
QnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0
b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKQEAgLTQ3LDMgKzUwLDUgQEAgc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIDog
cHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MjRkNDE3YTUyMTFkMjk4MGFlZTI3NTA5YmU2YjVm
NTJjODQyNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKGNvbnN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciYgY29tbWFuZEVuY29kZXJEZXNjcmlw
dG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxj
b25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcikpOwor
ICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVy
biB7IHsgV1RGTW92ZSgqYmFzZSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaAppbmRl
eCAzM2JlYjA5ZTZkNWUwNDcxNmZkM2I4ZGM2YWI1MGM4ZTc4NjJhNWY2Li4xOGU0YTBmMTAzMzgx
ZmQ0ZWM2MDJjM2Y1OTQzN2M3N2EyMDU3NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCkBA
IC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8
b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTQ3LDMgKzUwLDUg
QEAgc3RydWN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlw
dG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODRkODhl
OTFjNDg2OTM4ZGRkZDRkZTg1YWY4YTE0YzRiYjU2MDU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitSZWZQdHI8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
TWVzc2FnZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IENvbXBpbGF0aW9uTWVzc2FnZSYgY29tcGlsYXRpb25NZXNzYWdlKQoreworICAgIHJldHVy
biBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjpjcmVhdGUoY29tcGlsYXRpb25NZXNz
YWdlLm1lc3NhZ2UsIGNvbXBpbGF0aW9uTWVzc2FnZS50eXBlLCBjb21waWxhdGlvbk1lc3NhZ2Uu
bGluZU51bSwgY29tcGlsYXRpb25NZXNzYWdlLmxpbmVQb3MsIGNvbXBpbGF0aW9uTWVzc2FnZS5v
ZmZzZXQsIGNvbXBpbGF0aW9uTWVzc2FnZS5sZW5ndGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaAppbmRleCA0
OGVhNGRiNTRhYzIyOGFiODdjM2I5OGY0NWRiMzg3MWVmYTBlOTI2Li4yMzViY2M1YTUyNjdlZmE1
ODIzMGM1MGE4MTRiM2FjNWEwYWRhM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC0yNSw3ICsyNSwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTg2LDMgKzg5LDUgQEAgc3RydWN0IENvbXBpbGF0aW9uTWVzc2Fn
ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTI5ZGI1
ZjQ0MTc4MWIwYzhlMjc5ZjhkMjk5NTUxMWZiODMyOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5o
PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGFzc0Rlc2NyaXB0b3ImIGNvbXB1dGVQYXNz
RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGlj
X2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihjb21wdXRlUGFzc0Rlc2NyaXB0b3Ip
KTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBh
dXRvIHRpbWVzdGFtcFdyaXRlcyA9IGNvbnZlcnRGcm9tQmFja2luZyhjb21wdXRlUGFzc0Rlc2Ny
aXB0b3IudGltZXN0YW1wV3JpdGVzKTsKKyAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSks
IFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAppbmRl
eCA3YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5Li41Njg5YmUzY2IxMjEx
MzZhMDU5NTA2OWU4MWEwOTQwM2E0Yjc0MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oCkBAIC0yNSw4
ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiCiAjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1Y3QgQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODIzMjc3ZGVl
ZTk2NTIwNzU2NTljYjQ4MzQ3MjNhYmZjMzk1N2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNw
cApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZSYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSkKK3sKKyAgICBhdXRvKiBxdWVyeVNl
dCA9IGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUu
cXVlcnlTZXQpOworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4geyB7ICpxdWVyeVNldCwgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZS5xdWVyeUluZGV4LCBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmxvY2F0aW9uIH0gfTsKK30K
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXM+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMpCit7Cisg
ICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlPiB0aW1lc3Rh
bXBXcml0ZXM7CisgICAgdGltZXN0YW1wV3JpdGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJh
Y2tpbmdUaW1lc3RhbXBXcml0ZSA6IGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzKSB7CisgICAg
ICAgIGF1dG8gdGltZXN0YW1wV3JpdGUgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFja2luZ1RpbWVz
dGFtcFdyaXRlKTsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHRpbWVzdGFtcFdyaXRlcy51bmNoZWNrZWRBcHBl
bmQoV1RGTW92ZSh0aW1lc3RhbXBXcml0ZSkpOworICAgIH0KKyAgICByZXR1cm4gdGltZXN0YW1w
V3JpdGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKaW5kZXggNGYyMmQ5YWFiMWRi
NjI4YmYzMTM2MjJjODQ5OGM2YTg0YWMyN2QzZi4uZGU3ZDQwMjY2MTQ2ZDAwOWM2NjMyNTg1OTIz
ZDMzY2MwYjRmYThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKQEAgLTI1LDcgKzI1
LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5j
bHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5o
PgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTY5LDMgKzcyLDUgQEAgc3RydWN0IENvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGUgewogdXNpbmcgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0
b3I8Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZT47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVkZWFlMjViNWFmYjUyMGQ0MGIwODNiMmYzMGZhODJi
MDQwYjZjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19j
YXN0PGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmPihjb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgYXV0byBjb21wdXRlID0gY29udmVydEZyb21CYWNraW5nKGNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY29tcHV0ZSk7CisgICAgaWYgKCFjb21wdXRlKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHsgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSgqY29tcHV0ZSkgfSB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvci5oCmluZGV4IGNkZDY1ZDA5NWY2OGU1ZWNiZWI5ODdkM2FiMzNiMjhh
MmNiNjQ2MTYuLmUxYjE2NjgzNzRlMWQzOTQwNDdmN2NjZGI0OTE1MTNlMWU5OGE4YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCIKKyNp
bmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYs
MyArNTksNSBAQCBzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBl
bGluZURlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aAppbmRleCA1OTU0NWQ2MDQ2OWFiZWUyNTMwMmY3YzkzNDdiODQwMjUyN2NjYjEyLi42MDA1Yzg4
ZjgxYWUyOWFlMWQwMjEzZDRiYTkzYjU0ZDFlNWFjNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgKQEAgLTI3LDYyICsyNywyNjUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAor
I2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZXMuaCIKKyNpbmNsdWRlICJXZWJHUFVFcnJvci5oIgorI2luY2x1ZGUgIldlYkdQ
VUV4dGVudDNELmgiCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldl
YkdQVU9yaWdpbjJELmgiCisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luM0QuaCIKKyNpbmNsdWRlICJX
ZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+Cisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oPgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaD4KKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yLmg+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9yaWdpbjNELmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFBBTDo6V2ViR1BVIHsKIAogY2xhc3MgQWRhcHRlcjsKIGNsYXNzIEJpbmRH
cm91cDsKK3N0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cEVudHJ5
OwogY2xhc3MgQmluZEdyb3VwTGF5b3V0Oworc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0
b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RW50cnk7CitzdHJ1Y3QgQmxlbmRDb21wb25lbnQ7
CitzdHJ1Y3QgQmxlbmRTdGF0ZTsKIGNsYXNzIEJ1ZmZlcjsKK3N0cnVjdCBCdWZmZXJCaW5kaW5n
Oworc3RydWN0IEJ1ZmZlckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsK
K3N0cnVjdCBDYW52YXNDb25maWd1cmF0aW9uOworc3RydWN0IENvbG9yVGFyZ2V0U3RhdGU7CiBj
bGFzcyBDb21tYW5kQnVmZmVyOworc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOwogY2xh
c3MgQ29tbWFuZEVuY29kZXI7CitzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yOworY2xh
c3MgQ29tcGlsYXRpb25NZXNzYWdlOworc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRvcjsKIGNs
YXNzIENvbXB1dGVQYXNzRW5jb2RlcjsKIGNsYXNzIENvbXB1dGVQaXBlbGluZTsKK3N0cnVjdCBD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IERlcHRoU3RlbmNpbFN0YXRlOwogY2xh
c3MgRGV2aWNlOworc3RydWN0IERldmljZURlc2NyaXB0b3I7CitzdHJ1Y3QgRXh0ZXJuYWxUZXh0
dXJlQmluZGluZ0xheW91dDsKK3N0cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOworY2xh
c3MgRXh0ZXJuYWxUZXh0dXJlOworc3RydWN0IEZyYWdtZW50U3RhdGU7CiBjbGFzcyBHUFU7Citz
dHJ1Y3QgSWRlbnRpZmllcjsKK3N0cnVjdCBJbWFnZUNvcHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VD
b3B5RXh0ZXJuYWxJbWFnZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworc3RydWN0IEltYWdl
Q29weVRleHR1cmVUYWdnZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0Oworc3RydWN0IE11bHRp
c2FtcGxlU3RhdGU7CitzdHJ1Y3QgT2JqZWN0RGVzY3JpcHRvckJhc2U7CitjbGFzcyBPdXRPZk1l
bW9yeUVycm9yOworc3RydWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CiBjbGFzcyBQaXBlbGlu
ZUxheW91dDsKK3N0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUHJpbWl0
aXZlU3RhdGU7CitzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2U7CiBjbGFzcyBRdWVyeVNldDsKK3N0
cnVjdCBRdWVyeVNldERlc2NyaXB0b3I7CiBjbGFzcyBRdWV1ZTsKLWNsYXNzIFJlbmRlckJ1bmRs
ZUVuY29kZXI7CiBjbGFzcyBSZW5kZXJCdW5kbGU7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3Jp
cHRvcjsKK2NsYXNzIFJlbmRlckJ1bmRsZUVuY29kZXI7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudDsKK3N0cnVj
dCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVz
Y3JpcHRvcjsKIGNsYXNzIFJlbmRlclBhc3NFbmNvZGVyOworc3RydWN0IFJlbmRlclBhc3NMYXlv
dXQ7CiBjbGFzcyBSZW5kZXJQaXBlbGluZTsKK3N0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3I7CitzdHJ1Y3QgUmVxdWVzdEFkYXB0ZXJPcHRpb25zOwogY2xhc3MgU2FtcGxlcjsKK3N0cnVj
dCBTYW1wbGVyQmluZGluZ0xheW91dDsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKIGNsYXNz
IFNoYWRlck1vZHVsZTsKK3N0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yOworc3RydWN0IFN0
ZW5jaWxGYWNlU3RhdGU7CitzdHJ1Y3QgU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0OworY2xh
c3MgU3VwcG9ydGVkRmVhdHVyZXM7CitjbGFzcyBTdXBwb3J0ZWRMaW1pdHM7CiBjbGFzcyBUZXh0
dXJlOworc3RydWN0IFRleHR1cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IFRleHR1cmVEZXNjcmlw
dG9yOwogY2xhc3MgVGV4dHVyZVZpZXc7CitzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yOwor
Y2xhc3MgVmFsaWRhdGlvbkVycm9yOworc3RydWN0IFZlcnRleEF0dHJpYnV0ZTsKK3N0cnVjdCBW
ZXJ0ZXhCdWZmZXJMYXlvdXQ7CitzdHJ1Y3QgVmVydGV4U3RhdGU7CiAKIH0gLy8gbmFtZXNwYWNl
IFBBTDo6V2ViR1BVCiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKK3N0cnVjdCBCaW5k
R3JvdXBEZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cEVudHJ5Oworc3RydWN0IEJpbmRHcm91
cExheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RW50cnk7CitzdHJ1Y3Qg
QmxlbmRDb21wb25lbnQ7CitzdHJ1Y3QgQmxlbmRTdGF0ZTsKK3N0cnVjdCBCdWZmZXJCaW5kaW5n
Oworc3RydWN0IEJ1ZmZlckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsK
K3N0cnVjdCBDYW52YXNDb25maWd1cmF0aW9uOworc3RydWN0IENvbG9yVGFyZ2V0U3RhdGU7Citz
dHJ1Y3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yOworc3RydWN0IENvbXBpbGF0aW9uTWVzc2FnZTsKK3N0cnVjdCBDb21wdXRlUGFzc0Rl
c2NyaXB0b3I7CitzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBEZXB0
aFN0ZW5jaWxTdGF0ZTsKK3N0cnVjdCBEZXZpY2VEZXNjcmlwdG9yOworc3RydWN0IEV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjsK
K3N0cnVjdCBGcmFnbWVudFN0YXRlOworc3RydWN0IElkZW50aWZpZXI7CitzdHJ1Y3QgSW1hZ2VD
b3B5QnVmZmVyOworc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VD
b3B5VGV4dHVyZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdl
RGF0YUxheW91dDsKK3N0cnVjdCBNdWx0aXNhbXBsZVN0YXRlOworc3RydWN0IE9iamVjdERlc2Ny
aXB0b3JCYXNlOworc3RydWN0IE91dE9mTWVtb3J5RXJyb3I7CitzdHJ1Y3QgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZTsKK3N0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUHJp
bWl0aXZlU3RhdGU7CitzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2U7CitzdHJ1Y3QgUXVlcnlTZXRE
ZXNjcmlwdG9yOworc3RydWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDsKK3N0cnVjdCBSZW5k
ZXJQYXNzRGVzY3JpcHRvcjsKK3N0cnVjdCBSZW5kZXJQYXNzTGF5b3V0Oworc3RydWN0IFJlbmRl
clBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnM7CitzdHJ1
Y3QgU2FtcGxlckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3I7CitzdHJ1
Y3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvcjsKK3N0cnVjdCBTdGVuY2lsRmFjZVN0YXRlOworc3Ry
dWN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dDsKK3N0cnVjdCBTdXBwb3J0ZWRGZWF0dXJl
czsKK3N0cnVjdCBTdXBwb3J0ZWRMaW1pdHM7CitzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQ7
CitzdHJ1Y3QgVGV4dHVyZURlc2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9y
Oworc3RydWN0IFZhbGlkYXRpb25FcnJvcjsKK3N0cnVjdCBWZXJ0ZXhBdHRyaWJ1dGU7CitzdHJ1
Y3QgVmVydGV4QnVmZmVyTGF5b3V0Oworc3RydWN0IFZlcnRleFN0YXRlOworCiBjbGFzcyBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dD4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFw
dGVyKiBjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAg
ICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6
OkJ1ZmZlciogY29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsK
LSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29t
bWFuZEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6
RGV2aWNlKiBjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwot
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpQ
aXBlbGluZUxheW91dCogY29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBj
b252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmly
dHVhbCBjb25zdCBQQUw6OldlYkdQVTo6UXVldWUqIGNvbnZlcnRRdWV1ZUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5k
ZXJCdW5kbGVFbmNvZGVyKiBjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5k
ZXJCdW5kbGUqIGNvbnZlcnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIq
IGNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0g
MDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogY29udmVy
dFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZp
cnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIGNvbnZlcnRTYW1wbGVyRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6
OlNoYWRlck1vZHVsZSogY29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBjb252
ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogY29udmVydFRleHR1cmVWaWV3RnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkJpbmRHcm91cERlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3Jv
dXBEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3Vw
RW50cnk+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBFbnRyeSYpOworICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I+IGNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBCaW5kR3JvdXBMYXlvdXRFbnRyeSYpOworICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmxl
bmRDb21wb25lbnQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZFN0YXRl
PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmxlbmRTdGF0ZSYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmc+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBC
dWZmZXJCaW5kaW5nJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmlu
ZGluZ0xheW91dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckJpbmRpbmdMYXlvdXQm
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yPiBjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkNhbnZhc0NvbmZpZ3VyYXRpb24+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBDYW52YXNDb25maWd1cmF0aW9uJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6Q29sb3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb2xvciYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yRGljdD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENv
bG9yRGljdCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3Rh
dGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb2xvclRhcmdldFN0YXRlJik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciYpOworICAgIFJlZlB0cjxQQUw6
OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29t
cGlsYXRpb25NZXNzYWdlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0
ZVBhc3NEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBhc3NEZXNj
cmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcz4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0
ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IERlcHRoU3RlbmNpbFN0YXRlJik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNr
aW5nKGNvbnN0IERldmljZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpFcnJvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEVycm9yJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZW50M0Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBF
eHRlbnQzRCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNERGljdD4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEV4dGVudDNERGljdCYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gY29udmVydEZy
b21CYWNraW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgRnJhZ21lbnRTdGF0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OklkZW50
aWZpZXI+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBJZGVudGlmaWVyJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyPiBjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgSW1hZ2VDb3B5QnVmZmVyJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29w
eUV4dGVybmFsSW1hZ2UmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNv
cHlUZXh0dXJlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5VGV4dHVyZSYpOwor
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ+IGNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJik7CisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgSW1hZ2VEYXRhTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6TXVsdGlzYW1wbGVTdGF0ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE11bHRpc2FtcGxl
U3RhdGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9y
QmFzZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJik7Cisg
ICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T3JpZ2luMkQ+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBPcmlnaW4yRCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdp
bjJERGljdD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE9yaWdpbjJERGljdCYpOworICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgT3JpZ2luM0QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRERp
Y3Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4zRERpY3QmKTsKKyAgICBSZWZQdHI8
UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBP
dXRPZk1lbW9yeUVycm9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxp
bmVEZXNjcmlwdG9yQmFzZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVsaW5lRGVzY3Jp
cHRvckJhc2UmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91
dERlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBQaXBlbGluZUxheW91dERlc2Ny
aXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZT4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFByaW1pdGl2ZVN0YXRlJik7CisgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBQcm9ncmFtbWFibGVTdGFnZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlF1ZXJ5U2V0RGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFF1ZXJ5U2V0RGVz
Y3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURl
c2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9y
Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0RlcHRo
U3RlbmNpbEF0dGFjaG1lbnQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzRGVw
dGhTdGVuY2lsQXR0YWNobWVudCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJl
bmRlclBhc3NEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0Rl
c2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5
b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0xheW91dCYpOworICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSYpOworICAgIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXM+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zPiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgUmVxdWVzdEFkYXB0ZXJPcHRpb25zJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBT
YW1wbGVyQmluZGluZ0xheW91dCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNh
bXBsZXJEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2FtcGxlckRlc2NyaXB0
b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYpOwor
ICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBTdGVuY2lsRmFjZVN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgUmVmUHRyPFBBTDo6
V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFN1cHBv
cnRlZEZlYXR1cmVzJik7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+
IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTdXBwb3J0ZWRMaW1pdHMmKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xheW91dD4gY29udmVydEZyb21CYWNr
aW5nKGNvbnN0IFRleHR1cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0
dXJlRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVW
aWV3RGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVWaWV3RGVzY3Jp
cHRvciYpOworICAgIFJlZlB0cjxQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yPiBjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgVmFsaWRhdGlvbkVycm9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVy
dGV4QXR0cmlidXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4QnVm
ZmVyTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4QnVmZmVyTGF5b3V0Jik7
CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RhdGU+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBWZXJ0ZXhTdGF0ZSYpOworCisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6
QWRhcHRlciogY29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6
OkJpbmRHcm91cExheW91dCogY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZl
cnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogY29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6Q29tbWFu
ZEVuY29kZXIqIGNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNv
bnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0
ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwg
UEFMOjpXZWJHUFU6OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUqIGNv
bnZlcnRFeHRlcm5hbFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Cisg
ICAgdmlydHVhbCBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0
KiBjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpR
dWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAg
IHZpcnR1YWwgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJC
dW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1
YWwgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpSZW5k
ZXJQYXNzRW5jb2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5l
KiBjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6U2hh
ZGVyTW9kdWxlKiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJl
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmJjYmIwNmVhMjQwNzQ1YzA5YjRjNjJiYzAwOGVhYjg5ZDQzYzRl
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVE
ZXB0aFN0ZW5jaWxTdGF0ZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGVwdGhT
dGVuY2lsU3RhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6RGVwdGhTdGVuY2lsU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBEZXB0aFN0ZW5jaWxTdGF0ZSYgZGVwdGhT
dGVuY2lsU3RhdGUpCit7CisgICAgYXV0byBzdGVuY2lsRnJvbnQgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoZGVwdGhTdGVuY2lsU3RhdGUuc3RlbmNpbEZyb250KTsKKyAgICBpZiAoIXN0ZW5jaWxGcm9u
dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gc3RlbmNpbEJhY2sg
PSBjb252ZXJ0RnJvbUJhY2tpbmcoZGVwdGhTdGVuY2lsU3RhdGUuc3RlbmNpbEJhY2spOworICAg
IGlmICghc3RlbmNpbEJhY2spCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBy
ZXR1cm4geyB7IGRlcHRoU3RlbmNpbFN0YXRlLmZvcm1hdCwgZGVwdGhTdGVuY2lsU3RhdGUuZGVw
dGhXcml0ZUVuYWJsZWQsIGRlcHRoU3RlbmNpbFN0YXRlLmRlcHRoQ29tcGFyZSwgV1RGTW92ZSgq
c3RlbmNpbEZyb250KSwgV1RGTW92ZSgqc3RlbmNpbEJhY2spLCBkZXB0aFN0ZW5jaWxTdGF0ZS5z
dGVuY2lsUmVhZE1hc2ssIGRlcHRoU3RlbmNpbFN0YXRlLnN0ZW5jaWxXcml0ZU1hc2ssIGRlcHRo
U3RlbmNpbFN0YXRlLmRlcHRoQmlhcywgZGVwdGhTdGVuY2lsU3RhdGUuZGVwdGhCaWFzU2xvcGVT
Y2FsZSwgZGVwdGhTdGVuY2lsU3RhdGUuZGVwdGhCaWFzQ2xhbXAgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgK
aW5kZXggYTU5N2RmMDk2MTM2ZGIzNDI4YzJjNjdkNTJlYzk2MWZmYmNmNjNhYS4uZjY1MjQyOTQz
NGI5ZjZmMTBlNDgyYTUyMzlkMjBiNzJjMTg1NjQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKQEAgLTI1LDYgKzI1
LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNs
dWRlICJXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaD4KQEAgLTEy
MCwzICsxMjIsNSBAQCBzdHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGUgewogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlw
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlw
dG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMGE0ZDZkODZlYWFmZWY3MzgxOGE4MTVlNGM5NTJkYjQ0YWUw
ZTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VURldmljZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGV2aWNlRGVz
Y3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihkZXZpY2VEZXNjcmlwdG9yKSk7CisgICAg
aWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpiYXNlKSwgZGV2aWNlRGVzY3JpcHRvci5yZXF1aXJlZEZlYXR1cmVzIH0gfTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURl
c2NyaXB0b3IuaAppbmRleCA2YTI1MjM2ZGM4OWM2Njk4OTA0NzdlZGRkMWQyMzNhNGIyYjQyNGM0
Li42MDZiZGZiNzNmNjM0ODc4Y2ZkYTNmOWJkYTFhZTNlZTE0ZDU5ZmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKQEAg
LTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRmVhdHVyZU5hbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9LZXlWYWx1ZVBhaXIuaD4KQEAgLTYxLDMgKzY0LDUgQEAgc3RydWN0IERldmljZURl
c2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
Y2Q1ODM5NDkzZjgxZjk5Yjg5YmNiNDQ3MmFkMzljMTkzMDZkNzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BV
RXJyb3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVUVycm9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXJyb3ImIGVycm9yKQoreworICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKGVycm9yLCBbXSAoY29uc3QgT3V0T2ZNZW1vcnlFcnJvciYgb3V0T2ZNZW1vcnlFcnJv
cikgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+IHsKKyAgICAgICAgcmV0dXJu
IGNvbnZlcnRGcm9tQmFja2luZyhvdXRPZk1lbW9yeUVycm9yKTsKKyAgICB9LCBbXSAoY29uc3Qg
VmFsaWRhdGlvbkVycm9yJiB2YWxpZGF0aW9uRXJyb3IpIC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkVycm9yPiB7CisgICAgICAgIHJldHVybiBjb252ZXJ0RnJvbUJhY2tpbmcodmFsaWRh
dGlvbkVycm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFcnJvci5oCmluZGV4IDcyZWQyYmRlYjI0N2JjMmE5NzcyODk5ZjdiYzBhNTk4ZDY2NDU0OGYu
LmFjZjAxYTE0NDk5NDdkODk5MDNjNzhjODEyM2MzMGYxMzJjNzU0YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT3V0
T2ZNZW1vcnlFcnJvci5oIgogI2luY2x1ZGUgIldlYkdQVVZhbGlkYXRpb25FcnJvci5oIgogI2lu
Y2x1ZGUgPHZhcmlhbnQ+CkBAIC0zNCwzICszNiw1IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiB1c2luZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVycm9yLCBWYWxpZGF0
aW9uRXJyb3I+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVudDNELmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlbnQzRC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzNDgyMDQxOTUzOTQzOTNlZjdmNDA5YTUzZDY4
ZDg1MDc5MzE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFeHRlbnQzRC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
RXh0ZW50M0REaWN0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgRXh0ZW50M0REaWN0JiBleHRlbnQzRERpY3QpCit7CisgICAgcmV0dXJuIHsgeyBl
eHRlbnQzRERpY3Qud2lkdGgsIGV4dGVudDNERGljdC5oZWlnaHQsIGV4dGVudDNERGljdC5kZXB0
aE9yQXJyYXlMYXllcnMgfSB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRl
bnQzRD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IEV4dGVudDNEJiBleHRlbnQzRCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihleHRlbnQz
RCwgW10gKGNvbnN0IFZlY3RvcjxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+JiB2ZWN0
b3IpIC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiB7CisgICAgICAgIHJl
dHVybiB7IHsgdmVjdG9yIH0gfTsKKyAgICB9LCBbdGhpc10gKGNvbnN0IEV4dGVudDNERGljdCYg
ZXh0ZW50M0REaWN0KSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlbnQzRD4gewor
ICAgICAgICBhdXRvIGV4dGVudDNEID0gY29udmVydEZyb21CYWNraW5nKGV4dGVudDNERGljdCk7
CisgICAgICAgIGlmICghZXh0ZW50M0QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmV4dGVudDNEKSB9IH07CisgICAgfSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNE
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAppbmRleCAx
OTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZhYzVmNTdiODg1Li4yODUyOTljNzA5MTMyOWFi
MWY2ZmI4YjM1ZDk1N2JjNmFkMDVmNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRXh0ZW50M0QuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHZh
cmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsMyArNzAsNSBAQCBzdHJ1Y3Qg
RXh0ZW50M0REaWN0IHsKIHVzaW5nIEV4dGVudDNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6
OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+LCBFeHRlbnQzRERpY3Q+OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNWI5MWE1YWE2Y2M5
NWQ3NGYyN2VkOWNmMTM3MTM2ZTJlOWRiOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlcm5hbFRleHR1
cmVCaW5kaW5nTGF5b3V0JiBleHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0KQoreworICAgIHJl
dHVybiB7IHsgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCmluZGV4IDJk
NWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMuLjVhYWQ0YWVlZGE1ODRmM2Mx
NGM5YWM3YWE4MzhlNDZkNjI3MTIwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aApAQCAtMjUsNiArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KKwogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAogc3RydWN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQgewpAQCAtMzksMyArNDMs
NSBAQCBzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4
dHVyZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTFjNmJkZDUzMzQ5MjFj
ODgxYmU4ZjNhOGZmOTdmNDI1ZTE0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yJiBl
eHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9t
QmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGV4dGVybmFs
VGV4dHVyZURlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBleHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yLmNvbG9yU3BhY2UgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
CmluZGV4IDkzYzc0NTEyZTQyZTg0ZmI1ZjIwNmM2NzFjNjgzNjdlZTQzZGRjZmUuLmY4MDRiZDVh
OWVhMWJmZjI4ZTdhNjI4NGI3ZTdjMjQ5NTIxYTJmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0
b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJl
ZGVmaW5lZENvbG9yU3BhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU2
LDMgKzU5LDUgQEAgc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJsaWMgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODA2YjQx
MjIyNzA0ZGQwYzFhNDA5ZDJlMTFmZjE3ZGY3N2FhNGRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuY3BwCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVRnJhZ21lbnRTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRnJhZ21lbnRT
dGF0ZSYgZnJhZ21lbnRTdGF0ZSkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2UmPihmcmFnbWVudFN0YXRlKSk7
CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVj
dG9yPFBBTDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlPiB0YXJnZXRzOworICAgIHRhcmdldHMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmcmFnbWVudFN0YXRlLnRhcmdldHMuc2l6ZSgpKTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdUYXJnZXQgOiBmcmFnbWVudFN0YXRlLnRhcmdldHMp
IHsKKyAgICAgICAgYXV0byB0YXJnZXQgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFja2luZ1Rhcmdl
dCk7CisgICAgICAgIGlmICghdGFyZ2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqdGFyZ2V0KSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSh0YXJnZXRzKSB9
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZy
YWdtZW50U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVu
dFN0YXRlLmgKaW5kZXggOWY5NmVlMTZkY2I2Y2E0N2FhODJjYzI4NDY2OTNlOTY2ZTFjZWY1NC4u
Mjg3YmNjNDdkOTRiNGRlZjUxY2NmNmIxMGJhYzY5NzlmOGQyNTM5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCkBAIC0yNSw4ICsy
NSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2lu
Y2x1ZGUgIldlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCIKICNpbmNsdWRlICJXZWJHUFVQcm9ncmFt
bWFibGVTdGFnZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0
IEZyYWdtZW50U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2UgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlC
dWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1
ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ0NzAwNTUxOGE4MzQ0MTRhOTg1MDIyOWMxMjFhZmQxZGUx
MmU1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5QnVmZmVyJiBpbWFnZUNvcHlCdWZm
ZXIpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNv
bnN0IEltYWdlRGF0YUxheW91dCY+KGltYWdlQ29weUJ1ZmZlcikpOworICAgIGlmICghYmFzZSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYnVmZmVyID0gY29udmVy
dEJ1ZmZlckZyb21CYWNraW5nKGltYWdlQ29weUJ1ZmZlci5idWZmZXIpOworICAgIGlmICghYnVm
ZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpiYXNlKSwgKmJ1ZmZlciB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCmluZGV4IDExODY2MGU3N2Q2OTU2NThi
ODcyMmIzZTQ3ZTJmYTJmZjVjZWU0MGMuLjhmZDI3ODU5YzIzNTJiYzg5ZmM1ZDMyYzcyZTA3NzBh
ZmM5MzI0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZUNvcHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
SW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3
LDMgKzYwLDUgQEAgc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1YmxpYyBJbWFnZURhdGFMYXlv
dXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGNh
M2JmMzU5YzllYjYwOTEyOGVmYWVmMjI2YzYzNmU4ZGU3ZTQwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2Uu
Y3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJ
bWFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSYgaW1h
Z2VDb3B5RXh0ZXJuYWxJbWFnZSkKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpP
cmlnaW4yRD4gb3JpZ2luOworICAgIGlmIChpbWFnZUNvcHlFeHRlcm5hbEltYWdlLm9yaWdpbikg
eworICAgICAgICBhdXRvIG9yaWdpbiA9IGNvbnZlcnRGcm9tQmFja2luZygqaW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZS5vcmlnaW4pOworICAgICAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKG9yaWdp
bikgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCmluZGV4IDFlNTUyOGI5YzU0Y2MxZDk3ZGVm
ZmRjMTkzMmYyZWExMTA5YTljY2IuLjVmMjk2NmMyNmVjZjJlZmJlNThkYmIzOTQzMWZhM2JhYjVh
OGYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9yaWdp
bjJELmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8dmFyaWFudD4KQEAgLTUyLDMg
KzU0LDUgQEAgc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2RkZDk4OWFhMDRlZDE1NzEyZWYwNTFkMzEzMGM2OWEyNTEx
YWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weVRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VD
b3B5VGV4dHVyZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5VGV4dHVyZSYgaW1hZ2VDb3B5
VGV4dHVyZSkKK3sKKyAgICBhdXRvIHRleHR1cmUgPSBjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5n
KGltYWdlQ29weVRleHR1cmUudGV4dHVyZSk7CisgICAgaWYgKCF0ZXh0dXJlKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T3Jp
Z2luM0Q+IG9yaWdpbjsKKyAgICBpZiAoaW1hZ2VDb3B5VGV4dHVyZS5vcmlnaW4pIHsKKyAgICAg
ICAgYXV0byBvcmlnaW4gPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmltYWdlQ29weVRleHR1cmUub3Jp
Z2luKTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH0KKworICAgIHJldHVybiB7IHsgKnRleHR1cmUsIGltYWdlQ29weVRleHR1cmUu
bWlwTGV2ZWwsIFdURk1vdmUob3JpZ2luKSwgaW1hZ2VDb3B5VGV4dHVyZS5hc3BlY3QgfSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNv
cHlUZXh0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5
VGV4dHVyZS5oCmluZGV4IDhhMjMwNmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3YWEwYzQ4OTk3M2Yu
LmEyOWMzNTIxZDRlOTUyMjM3ZjAwYmZlZjcwOTM1Zjk5ZWZkMTczN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaApAQCAt
MjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJHUFVPcmlnaW4z
RC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgpAQCAtNzUsMyArNzcsNSBAQCBzdHJ1Y3QgSW1hZ2VD
b3B5VGV4dHVyZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZlN2UzZmNjYjQzMjVlMDM1MzMyNGJjMzg1MjFlMzE3ZWVhOGRmMzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVy
ZVRhZ2dlZC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkJiBpbWFnZUNvcHlUZXh0dXJlVGFnZ2VkKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBJbWFnZUNvcHlUZXh0dXJlJj4oaW1hZ2VDb3B5
VGV4dHVyZVRhZ2dlZCkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGltYWdlQ29weVRleHR1cmVU
YWdnZWQuY29sb3JTcGFjZSwgaW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5wcmVtdWx0aXBsaWVkQWxw
aGEgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCmluZGV4IDg0OWJjNGU4NjFjMzM2M2E2OTA5
M2VjZmY5MWIwZjVkNTIwZTQ2NTcuLjAxOGI2OGFhNGZkZmE1Y2JkN2RkZjA3M2YyZmY0ZDRiY2Qw
Zjc0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewpAQCAtNjMsMyArNjYsNSBAQCBzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZVRh
Z2dlZCA6IHB1YmxpYyBJbWFnZUNvcHlUZXh0dXJlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiMjEwYjliMWIzNzQ3YzJiNDUwM2QzMTUyODMxZjZmNzU0M2JlNTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRh
TGF5b3V0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0Lmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkltYWdlRGF0YUxheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IEltYWdlRGF0YUxheW91dCYgaW1hZ2VEYXRhTGF5b3V0KQoreworICAg
IHJldHVybiB7IHsgaW1hZ2VEYXRhTGF5b3V0Lm9mZnNldCwgaW1hZ2VEYXRhTGF5b3V0LmJ5dGVz
UGVyUm93LCBpbWFnZURhdGFMYXlvdXQucm93c1BlckltYWdlIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmgKaW5kZXgg
Y2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOS4uMDQ3MDdiNmMwZDkzMDYz
OWE1Njc5NzBmNWRmYTVlZmM5NzM1ZDYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaApAQCAtMjUsNiArMjUsOCBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPG9wdGlv
bmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5o
PgogCkBAIC02NCwzICs2Niw1IEBAIHN0cnVjdCBJbWFnZURhdGFMYXlvdXQgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNh
bXBsZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNh
bXBsZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDZlNzkwZjg5YmRjMzllYTE1M2YwNmIxODJjNDcx
Zjk4YTYxYmNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZy
b21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
TXVsdGlzYW1wbGVTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlPiBDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgTXVsdGlzYW1wbGVTdGF0ZSYgbXVs
dGlzYW1wbGVTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IG11bHRpc2FtcGxlU3RhdGUuY291bnQs
IG11bHRpc2FtcGxlU3RhdGUubWFzaywgbXVsdGlzYW1wbGVTdGF0ZS5hbHBoYVRvQ292ZXJhZ2VF
bmFibGVkIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU11bHRpc2FtcGxlU3RhdGUuaAppbmRleCA4ZGU1ZDU4ZDk4MzE5ZjhkOTE4ODg4NmM0NDEw
MDk2MDFjM2Y5NzE4Li5mMTYyODVjZTYwY2E2MDg5N2IwODhhN2ZhZWQwMjgxOWY3MGE1MjNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBs
ZVN0YXRlLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKQEAgLTYzLDMgKzY2LDUgQEAgc3RydWN0IE11bHRpc2FtcGxlU3RhdGUgewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMTU0ZWJkODZjZDczMjU4ZmEx
YzU4ZmQwYjA4YjYyMDYyYjc2NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9iamVjdERlc2Ny
aXB0b3JCYXNlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmIG9iamVjdERlc2NyaXB0b3JCYXNlKQoreworICAg
IHJldHVybiB7IHsgb2JqZWN0RGVzY3JpcHRvckJhc2UubGFiZWwgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmgKaW5kZXggNGZjYjlmNTU4Nzc2ZjQzYzE2OGJlNDBlMjcyMTZiNGU0OTMwYTM2YS4uNjEx
M2M1MmFlNmY5NDI4ZTYwYzYxMDllZTNiNzkzZDU3NzFlMjI3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgK
QEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTQ5LDMgKzUyLDUgQEAgc3RydWN0
IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODA4OGUzMmJjYzhj
MDAwMWFiY2MyMjUzY2U0YjEzNmM2NGU2ZWY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdpbjJE
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVPcmlnaW4yRC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4yRERpY3QmIG9yaWdpbjJERGljdCkKK3sK
KyAgICByZXR1cm4geyB7IG9yaWdpbjJERGljdC54LCBvcmlnaW4yRERpY3QueSB9IH07Cit9CisK
K3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiBDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luMkQmIG9yaWdpbjJEKQorewor
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG9yaWdpbjJELCBbXSAoY29uc3QgVmVjdG9yPFBBTDo6
V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6T3JpZ2luMkQ+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0b3IgfSB9OworICAg
IH0sIFt0aGlzXSAoY29uc3QgT3JpZ2luMkREaWN0JiBvcmlnaW4yRERpY3QpIC0+IHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiB7CisgICAgICAgIGF1dG8gb3JpZ2luMkQgPSBj
b252ZXJ0RnJvbUJhY2tpbmcob3JpZ2luMkREaWN0KTsKKyAgICAgICAgaWYgKCFvcmlnaW4yRCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqb3JpZ2luMkQpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oCmluZGV4IGRmMWZmZmQ1Nzg0Mzk1MjNiZGM3MjExNDMz
MjdiMGM2ZmUzYTc3N2QuLjczMWZlOWI0NTYwNDE0YjhlYTE4NWIzYzYwOGI2MWRiYzJhNGJiMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oCkBAIC0y
NSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC02MCwzICs2Myw1IEBAIHN0cnVjdCBPcmlnaW4yRERpY3QgewogdXNpbmcgT3Jp
Z2luMkQgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0
ZT4sIE9yaWdpbjJERGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU9yaWdpbjNELmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2JhMWI2NWJiMjFmZjQ4YzU0YmE2
MzEyZjJkYTkzODNjNTQzOTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdpbjNELmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4z
RC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpPcmlnaW4zRERpY3Q+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBPcmlnaW4zRERpY3QmIG9yaWdpbjNERGljdCkKK3sKKyAgICByZXR1
cm4geyB7IG9yaWdpbjNERGljdC54LCBvcmlnaW4zRERpY3QueSwgb3JpZ2luM0REaWN0LnogfSB9
OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4gQ29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IE9yaWdpbjNEJiBvcmlnaW4z
RCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihvcmlnaW4zRCwgW10gKGNvbnN0IFZlY3Rv
cjxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+IHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiB7CisgICAgICAgIHJldHVybiB7IHsgdmVjdG9yIH0g
fTsKKyAgICB9LCBbdGhpc10gKGNvbnN0IE9yaWdpbjNERGljdCYgb3JpZ2luM0REaWN0KSAtPiBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4geworICAgICAgICBhdXRvIG9yaWdp
bjNEID0gY29udmVydEZyb21CYWNraW5nKG9yaWdpbjNERGljdCk7CisgICAgICAgIGlmICghb3Jp
Z2luM0QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm9yaWdpbjNEKSB9IH07CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCBjZjc0NWE0MjA3NGFjYjIwZmU3
NTE0NmMwZTk0NTMwZTY3NGM4ZTg0Li4zNzZhZTI1MmQ5ZGFmYWM5OWI5NmY4YWNjNWIzNzgyNGFh
MWE2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3Jp
Z2luM0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0Qu
aApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtNjcsMyArNzAsNSBAQCBzdHJ1Y3QgT3JpZ2luM0REaWN0IHsKIHVz
aW5nIE9yaWdpbjNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6OldlYkdQVTo6SW50ZWdlckNv
b3JkaW5hdGU+LCBPcmlnaW4zRERpY3Q+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzYzQ5NWY4Yzg0MzU3MzAyOTdhMmRjZDViNmMxN2JjNGY1YWViNmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQVTo6T3V0T2ZNZW1v
cnlFcnJvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IE91dE9mTWVtb3J5RXJyb3ImIG91dE9mTWVtb3J5RXJyb3IpCit7CisgICAgcmV0dXJuIHsg
UEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I6OmNyZWF0ZSgpIH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgKaW5k
ZXggNmM2OTM1NzU3MWFmMTdlZjllN2Y3NjQyMzg3N2ZmMzQ4NGFhNjY1YS4uNzU0NTM3NmI4MWZi
OTM2ODNlNDUwZTQ0M2RjODUzNGM0YmY5MzExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0yNSw2ICsyNSwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
PG9wdGlvbmFsPgorCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgT3V0T2ZN
ZW1vcnlFcnJvciB7CkBAIC0zOSwzICs0Myw1IEBAIHN0cnVjdCBPdXRPZk1lbW9yeUVycm9yIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJiOGE4Yzk0
NmZiYzAzZGE0MTFkMjQ5M2YwY2M5NDJhNzBjMGMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmIHBpcGVsaW5l
RGVzY3JpcHRvckJhc2UpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0
YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVEZXNjcmlwdG9y
QmFzZSkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogbGF5b3V0ID0gbnVsbHB0cjsKKyAgICBp
ZiAocGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5sYXlvdXQpIHsKKyAgICAgICAgbGF5b3V0ID0gY29u
dmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcocGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5sYXlv
dXQpOworICAgICAgICBpZiAoIWxheW91dCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgbGF5b3V0IH0gfTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCA1YzRiNzA3OTAwNTFjZmMxZjdjNTU5NTE2Njhi
OWY0NWIwNTVlMjJiLi40ZDA3MWYxY2Q2M2VlYTEyYzlhZTA0YjYxOTZiMjUzOThiMDc5YmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0
aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTU2LDMgKzU5LDUgQEAg
c3RydWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDdhMjgyMTBmODE0OTFmODQxYTVmMDIwMGYwYjZkNTJjZjMyNzY1MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUGlwZWxpbmVMYXlvdXRE
ZXNjcmlwdG9yJiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0g
Y29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNl
Jj4ocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4+IGJpbmRHcm91cExheW91dHM7CisgICAgYmlu
ZEdyb3VwTGF5b3V0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5iaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNr
aW5nQmluZEdyb3VwTGF5b3V0IDogcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmJpbmRHcm91cExh
eW91dHMpIHsKKyAgICAgICAgYXV0byogZW50cnkgPSBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJv
bUJhY2tpbmcoYmFja2luZ0JpbmRHcm91cExheW91dCk7CisgICAgICAgIGlmICghZW50cnkpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBiaW5kR3JvdXBMYXlvdXRz
LnVuY2hlY2tlZEFwcGVuZCgqZW50cnkpOworICAgIH0KKworICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqYmFzZSksIFdURk1vdmUoYmluZEdyb3VwTGF5b3V0cykgfSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaAppbmRleCA4MGEyMDE3ZmJjZjlkODRlZTM0MDI0OTdhNmNiYjQ3OTg2ZjA1Nzdh
Li41ZTQzMDI4MWFmMmI1MTg0NWI4OWI5ZDJkMGVkZjE1ZDBiNzg3MTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0
RGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAg
LTU3LDMgKzYwLDUgQEAgc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA6IHB1YmxpYyBP
YmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI1
YTkzZGIxN2NkOTFmYzJjZDQzNTkwMzUzMWI5MGYzMDAxYmZhOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHUFVQcmltaXRpdmVTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UHJpbWl0aXZlU3Rh
dGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBQ
cmltaXRpdmVTdGF0ZSYgcHJpbWl0aXZlU3RhdGUpCit7CisgICAgcmV0dXJuIHsgeyBwcmltaXRp
dmVTdGF0ZS50b3BvbG9neSwgcHJpbWl0aXZlU3RhdGUuc3RyaXBJbmRleEZvcm1hdCwgcHJpbWl0
aXZlU3RhdGUuZnJvbnRGYWNlLCBwcmltaXRpdmVTdGF0ZS5jdWxsTW9kZSwgcHJpbWl0aXZlU3Rh
dGUudW5jbGlwcGVkRGVwdGggfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXggZDE4MjMzMjIzZDk3MGE4ZjA5OTA2
MjU4NzgxMTVhYTQ3NTRiNDg5Ny4uZWY2NGRlZDdhOTVlYzM5YjgyOGI0MzA0NDdiODVkMDNiNjk4
YWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1p
dGl2ZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1p
dGl2ZVN0YXRlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVGcm9udEZhY2UuaD4KQEAgLTg0LDMgKzg2LDUgQEAgc3RydWN0IFByaW1pdGl2
ZVN0YXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmMzMzVmZjFk
ODQyMTZlZTA3MTQzYThlNWQ1ZTdhMjI0MDIxZmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVVByb2dyYW1tYWJsZVN0YWdlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcm9ncmFtbWFi
bGVTdGFnZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IFByb2dyYW1tYWJsZVN0YWdlJiBwcm9ncmFtbWFibGVTdGFnZSkKK3sKKyAgICBhdXRvIG1v
ZHVsZSA9IGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhwcm9ncmFtbWFibGVTdGFnZS5t
b2R1bGUpOworICAgIGlmICghbW9kdWxlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyAqbW9kdWxlLCBwcm9ncmFtbWFibGVTdGFnZS5lbnRyeVBvaW50LCBw
cm9ncmFtbWFibGVTdGFnZS5jb25zdGFudHMgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKaW5kZXggZTFmMGFl
MGQ2OWYyOWJiOWZmNzgyZWVkNjJkMzZkMzg1N2MxOWZlYy4uYzhiYzJjZDc3MTZiNDA3ZGM1ZDdh
NTk2ZDZmNDQzNzZlMWE1ZGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9LZXlWYWx1
ZVBhaXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtNjgsMyArNzEsNSBAQCBzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2UgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERl
c2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0
RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZTM3MWM1NWY2OGU3MmI1NWFkNWQzNmI3YzBl
Y2M3YzJiMzZmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUXVlcnlTZXREZXNjcmlw
dG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9yPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUXVlcnlTZXREZXNj
cmlwdG9yJiBxdWVyeVNldERlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZy
b21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4ocXVlcnlT
ZXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgcXVlcnlTZXREZXNjcmlwdG9y
LnR5cGUsIHF1ZXJ5U2V0RGVzY3JpcHRvci5jb3VudCwgcXVlcnlTZXREZXNjcmlwdG9yLnBpcGVs
aW5lU3RhdGlzdGljcyB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCmluZGV4IGJlMTEyZDkyNTY2NWRiYTRh
MDIzYWY0N2VlZDlmODI0YWI5M2I5Y2UuLmU5ZDEzNzVjOGRlMmFjNjYxMTFhNDBjZGQ2ZWM2Y2Fm
MDhlMDM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVR
dWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmg+CkBAIC03MywzICs3Niw1IEBAIHN0cnVjdCBR
dWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2RlOTJlYzE2ZTQxMDI3
ZWVhM2QxYjZiNjQ2OTczZWVmNGI4YTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpS
ZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvciYgcmVuZGVyQnVuZGxlRGVz
Y3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihyZW5kZXJCdW5kbGVEZXNjcmlwdG9yKSk7
CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKaW5kZXgg
YzA5NjI4MDc2NDFiZjljYTQwMWQ4MTJiYTIwMDMxYjJlYTkwMGE2ZS4uNzNhMmYwODEyMGM3M2I0
Njk2MjNlMGI0OGE2ZmQxMmQ1MDBjOTkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCkBAIC0yNSw3
ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTQ3LDMgKzUwLDUgQEAgc3Ry
dWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI2NzQxZTJiMWZmM2JiYjMzNzNjNDk3ZTA4NWVhMWMyMjM1MGM4YWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
RW5jb2RlckRlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2Ny
aXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3ImIHJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhz
dGF0aWNfY2FzdDxjb25zdCBSZW5kZXJQYXNzTGF5b3V0Jj4ocmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCByZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvci5kZXB0aFJlYWRPbmx5LCByZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5zdGVu
Y2lsUmVhZE9ubHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKaW5k
ZXggZTI5Y2Q1NGI5NWNhNDBhYzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYS4uYzlkMDcxMWUzYmE3
ZDE1YTU5NGMwNWMwMTEyNGY2MmMzNGRmZWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCkBAIC02Miwz
ICs2NSw1IEBAIHN0cnVjdCBSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciA6IHB1YmxpYyBS
ZW5kZXJQYXNzTGF5b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg4NzM4YjUwOWFhNGI3MTc1NzA4ODdkMDk1Mjk4Y2I2ZGY0MjliMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFj
aG1lbnQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQmIHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQp
Cit7CisgICAgYXV0byB2aWV3ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcocmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudC52aWV3KTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIHJlc29sdmVU
YXJnZXQgPSBudWxscHRyOworICAgIGlmIChyZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LnJlc29s
dmVUYXJnZXQpIHsKKyAgICAgICAgcmVzb2x2ZVRhcmdldCA9IGNvbnZlcnRUZXh0dXJlVmlld0Zy
b21CYWNraW5nKHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQucmVzb2x2ZVRhcmdldCk7CisgICAg
ICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfQorCisgICAgYXV0byBsb2FkVmFsdWUgPSBXVEY6OnN3aXRjaE9uKHJlbmRlclBhc3ND
b2xvckF0dGFjaG1lbnQubG9hZFZhbHVlLCBbXSAoUEFMOjpXZWJHUFU6OkxvYWRPcCBsb2FkT3Ap
IC0+IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rv
cjxkb3VibGU+LCBQQUw6OldlYkdQVTo6Q29sb3JEaWN0Pj4geworICAgICAgICByZXR1cm4geyB7
IGxvYWRPcCB9IH07CisgICAgfSwgW10gKGNvbnN0IFZlY3Rvcjxkb3VibGU+JiB2ZWN0b3IpIC0+
IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2FkT3AsIFZlY3Rvcjxk
b3VibGU+LCBQQUw6OldlYkdQVTo6Q29sb3JEaWN0Pj4geworICAgICAgICByZXR1cm4geyB7IHZl
Y3RvciB9IH07CisgICAgfSwgW3RoaXNdIChjb25zdCBDb2xvckRpY3QmIG9yaWdpbkNvbG9yRGlj
dCkgLT4gc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVj
dG9yPGRvdWJsZT4sIFBBTDo6V2ViR1BVOjpDb2xvckRpY3Q+PiB7CisgICAgICAgIGF1dG8gY29s
b3JEaWN0ID0gY29udmVydEZyb21CYWNraW5nKG9yaWdpbkNvbG9yRGljdCk7CisgICAgICAgIGlm
ICghY29sb3JEaWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
cmV0dXJuIHsgeyBXVEZNb3ZlKCpjb2xvckRpY3QpIH0gfTsKKyAgICB9KTsKKyAgICBpZiAoIWxv
YWRWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
KnZpZXcsIHJlc29sdmVUYXJnZXQsIFdURk1vdmUoKmxvYWRWYWx1ZSksIHJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnQuc3RvcmVPcCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKaW5k
ZXggYjBkODkyN2VmMmJhOGEzMGI5ZWE2YjZkNWRmNDdlMTQ4NjRlYzdkYS4uYThjNmQ2YWVmMzIy
YzYwYjgwZTY2NTZiOTA2YWJlYTcyZGZiNWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5o
CkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVTG9hZE9wLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dG9yZU9wLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KQEAgLTc3LDMgKzgwLDUgQEAgc3RydWN0IFJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNo
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rl
cHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Y2E0MmYyZDM3NjIyODVmMjJm
ZjYyMDFjYmFjNDRmODllMTAzOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVu
ZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQmIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50KQoreworICAgIGF1dG8gdmlldyA9IGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5n
KHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LnZpZXcpOworICAgIGlmICghdmlldykK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKnZpZXcsIHJl
bmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmRlcHRoTG9hZFZhbHVlLCByZW5kZXJQYXNz
RGVwdGhTdGVuY2lsQXR0YWNobWVudC5kZXB0aFN0b3JlT3AsIHJlbmRlclBhc3NEZXB0aFN0ZW5j
aWxBdHRhY2htZW50LmRlcHRoUmVhZE9ubHksIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50LnN0ZW5jaWxMb2FkVmFsdWUsIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LnN0
ZW5jaWxTdG9yZU9wLCByZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5zdGVuY2lsUmVh
ZE9ubHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKaW5k
ZXggZTgyZWQ2YzgxZThhY2E3ODVjODA1OGMwMzI0MjZlZTVmMGMyYmI0Mi4uYjFjNTViYWNlMDA1
ZDYxOGZlYzM4MDhiNWIzOTAxODgwNDU4NzE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5j
aWxBdHRhY2htZW50LmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVTG9hZE9w
Lmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yZU9wLmg+CkBAIC05
OCwzICsxMDEsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0YmRmY2EwNTc4Mzlj
NWFlMzk5Y2IzYjA5Y2I1NzZiYjliYjY4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCkBAIC0wLDAg
KzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3ImIHJlbmRlclBhc3NEZXNjcmlwdG9yKQor
eworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBhc3NEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFi
YXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBjb2xvckF0dGFjaG1lbnRzOworICAgIGNv
bG9yQXR0YWNobWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZW5kZXJQYXNzRGVzY3JpcHRv
ci5jb2xvckF0dGFjaG1lbnRzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5n
Q29sb3JBdHRhY2htZW50IDogcmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29sb3JBdHRhY2htZW50cykg
eworICAgICAgICBhdXRvIGNvbG9yQXR0YWNobWVudCA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNr
aW5nQ29sb3JBdHRhY2htZW50KTsKKyAgICAgICAgaWYgKCFjb2xvckF0dGFjaG1lbnQpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBjb2xvckF0dGFjaG1lbnRzLnVu
Y2hlY2tlZEFwcGVuZChXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnQpKTsKKyAgICB9CisKKyAgICBh
dXRvIGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQgPSAoWyZdICgpIC0+IHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiB7CisgICAgICAgIGlm
IChyZW5kZXJQYXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2htZW50KQorICAgICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGFzc0Rlc2NyaXB0b3IuZGVwdGhT
dGVuY2lsQXR0YWNobWVudCk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfSko
KTsKKyAgICBpZiAocmVuZGVyUGFzc0Rlc2NyaXB0b3IuZGVwdGhTdGVuY2lsQXR0YWNobWVudCAm
JiAhZGVwdGhTdGVuY2lsQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIFBBTDo6V2ViR1BVOjpRdWVyeVNldCogb2NjbHVzaW9uUXVlcnlTZXQgPSBudWxscHRy
OworICAgIGlmIChyZW5kZXJQYXNzRGVzY3JpcHRvci5vY2NsdXNpb25RdWVyeVNldCkgeworICAg
ICAgICBvY2NsdXNpb25RdWVyeVNldCA9IGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKHJlbmRl
clBhc3NEZXNjcmlwdG9yLm9jY2x1c2lvblF1ZXJ5U2V0KTsKKyAgICAgICAgaWYgKCFvY2NsdXNp
b25RdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisg
ICAgYXV0byB0aW1lc3RhbXBXcml0ZXMgPSBjb252ZXJ0RnJvbUJhY2tpbmcocmVuZGVyUGFzc0Rl
c2NyaXB0b3IudGltZXN0YW1wV3JpdGVzKTsKKyAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFz
ZSksIFdURk1vdmUoY29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoZGVwdGhTdGVuY2lsQXR0YWNo
bWVudCksIG9jY2x1c2lvblF1ZXJ5U2V0LCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IGJhNGNlZTIxMGNhMDBiZWI5ZThiODc3ZmY3OTcyNmM0
NWZiZDgxMWIuLmI3ZThmNWQ4NGExNjA5ZDJkYjk1MDJmNzZhM2U0OGU2ZWIwZjY1OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
RGVzY3JpcHRvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudC5oIgpAQCAtODIsMyArODQsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFz
c0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
TGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjQ4NzFmMGI1OTg5NGEwZThlNjY3YWU4Yjk0NmJjNzM3
OTI2MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21C
YWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0xheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0PiBDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0xheW91dCYgcmVuZGVy
UGFzc0xheW91dCkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGlj
X2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihyZW5kZXJQYXNzTGF5b3V0KSk7Cisg
ICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpiYXNlKSwgcmVuZGVyUGFzc0xheW91dC5jb2xvckZvcm1hdHMsIHJlbmRl
clBhc3NMYXlvdXQuZGVwdGhTdGVuY2lsRm9ybWF0LCByZW5kZXJQYXNzTGF5b3V0LnNhbXBsZUNv
dW50IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyUGFzc0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NMYXlvdXQuaAppbmRleCA0ZWUzMWVlMzZhY2JlOWNjN2Q0ZjhiYTBkNWI2MmRi
MzdhNzE0Mzk1Li4zMTA0MjhkZjZiZTc2YzNiNDkwNjhiZDM4ZmUxNzI0MTVkMzExMTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5
b3V0LmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgogI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgpAQCAtNzMsMyArNzUsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0xheW91dCA6
IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBXcml0ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMDgwOTUwMmUxYWVlMDY1Y2Q2M2M5ZDg2Yjlm
YmJkYjM5NGNlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQ
YXNzVGltZXN0YW1wV3JpdGVzLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRl
clBhc3NUaW1lc3RhbXBXcml0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSYgcmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlKQoreworICAgIGF1dG8qIHF1ZXJ5U2V0ID0gY29udmVydFF1ZXJ5U2V0RnJvbUJh
Y2tpbmcocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLnF1ZXJ5U2V0KTsKKyAgICBpZiAoIXF1ZXJ5
U2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqcXVl
cnlTZXQsIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5xdWVyeUluZGV4LCByZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGUubG9jYXRpb24gfSB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyYgcmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlcykKK3sKKyAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZT4gdGltZXN0YW1wV3JpdGVzOworICAgIHRpbWVzdGFtcFdyaXRlcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuc2l6ZSgpKTsK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdUaW1lc3RhbXBXcml0ZSA6IHJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXMpIHsKKyAgICAgICAgYXV0byB0aW1lc3RhbXBXcml0ZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhiYWNraW5nVGltZXN0YW1wV3JpdGUpOworICAgICAgICBpZiAoIXRpbWVzdGFt
cFdyaXRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgdGltZXN0
YW1wV3JpdGVzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKHRpbWVzdGFtcFdyaXRlKSk7CisgICAg
fQorICAgIHJldHVybiB0aW1lc3RhbXBXcml0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
LmgKaW5kZXggOGI5MjYzYTdjNDgwZDA4MzFmNTQ0OTk2ZmVlMTFiMjcwNGU0ZWFlZC4uOWQ0OTMy
Y2U4NDMyM2E1NTc3Mzk4MzdlOWVlOGM4NjFhMmQxZDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlcy5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxv
cHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1l
c3RhbXBMb2NhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTY5LDMgKzcyLDUgQEAg
c3RydWN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSB7CiB1c2luZyBSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzID0gVmVjdG9yPFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT47CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMWM0NmYwNWZhMTg2YjcyZGNk
YzcwNWI4MTY4MjY0MGY5NzJmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsx
LDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgcmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhz
dGF0aWNfY2FzdDxjb25zdCBQaXBlbGluZURlc2NyaXB0b3JCYXNlJj4ocmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgYXV0byB2ZXJ0ZXggPSBjb252ZXJ0RnJvbUJhY2tpbmcocmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yLnZlcnRleCk7CisgICAgaWYgKCF2ZXJ0ZXgpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0
ZT4gcHJpbWl0aXZlOworICAgIGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0b3IucHJpbWl0aXZl
KSB7CisgICAgICAgIHByaW1pdGl2ZSA9IGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLnByaW1pdGl2ZSk7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0ZT4gZGVwdGhTdGVuY2lsOworICAgIGlmIChyZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuZGVwdGhTdGVuY2lsKSB7CisgICAgICAgIGRlcHRoU3RlbmNp
bCA9IGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmRlcHRoU3Rl
bmNpbCk7CisgICAgICAgIGlmICghZGVwdGhTdGVuY2lsKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpNdWx0
aXNhbXBsZVN0YXRlPiBtdWx0aXNhbXBsZTsKKyAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLm11bHRpc2FtcGxlKSB7CisgICAgICAgIG11bHRpc2FtcGxlID0gY29udmVydEZyb21CYWNr
aW5nKCpyZW5kZXJQaXBlbGluZURlc2NyaXB0b3IubXVsdGlzYW1wbGUpOworICAgICAgICBpZiAo
IW11bHRpc2FtcGxlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICBhdXRvIGZyYWdtZW50ID0gKFsmXSAoKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpGcmFnbWVudFN0YXRlPiB7CisgICAgICAgIGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
ZnJhZ21lbnQpCisgICAgICAgICAgICByZXR1cm4gY29udmVydEZyb21CYWNraW5nKCpyZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IuZnJhZ21lbnQpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0pKCk7CisgICAgaWYgKHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5mcmFnbWVudCAm
JiAhZnJhZ21lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
eyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKCp2ZXJ0ZXgpLCBXVEZNb3ZlKHByaW1pdGl2ZSks
IFdURk1vdmUoZGVwdGhTdGVuY2lsKSwgV1RGTW92ZShtdWx0aXNhbXBsZSksIFdURk1vdmUoZnJh
Z21lbnQpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggNmMyZWY3MzA5MmFh
MjRjYWYzZDU5NDE3YjRjYjA2MWE5OTJlZjEwNi4uNGJjMDU4ODZjMmVhNGZiNjAwZWY0YjhjOTUy
ZDYzZjBmMjZmNWIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMjUsNiArMjUsOCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUg
IldlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViR1BVRnJhZ21lbnRTdGF0
ZS5oIgogI2luY2x1ZGUgIldlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCIKQEAgLTg5LDMgKzkxLDUg
QEAgc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURlc2Ny
aXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmMTRlNzk4MmM0NDNiMWM0MGUyZTBjMDk3OGI3MWFkNzQxN2U3NjYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJP
cHRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucz4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYgcmVx
dWVzdEFkYXB0ZXJPcHRpb25zKQoreworICAgIHJldHVybiB7IHsgcmVxdWVzdEFkYXB0ZXJPcHRp
b25zLnBvd2VyUHJlZmVyZW5jZSwgcmVxdWVzdEFkYXB0ZXJPcHRpb25zLmZvcmNlRmFsbGJhY2tB
ZGFwdGVyIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKaW5kZXggMDZiMDMxYzcxMmVkZTg3ZjU4
NTlhM2Q1M2IzYjQ2ZWQ1OTExMjMzNy4uZGU2MjE0NTk4NzRmMTRkMGUxMThjNjlhYTg4Y2E0YWZh
OGU4NGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJl
cXVlc3RBZGFwdGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPG9wdGlvbmFsPgog
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmg+CiAK
QEAgLTU3LDMgKzU5LDUgQEAgc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJCaW5kaW5nTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
YW1wbGVyQmluZGluZ0xheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk4NDI3NDk0YjQ1NTg4MWIzNDVi
NzQwMzYxMGQ4NzAyZjI3Y2Y0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTYW1w
bGVyQmluZGluZ0xheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRp
bmdMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBTYW1wbGVyQmluZGluZ0xheW91dCYgc2FtcGxlckJpbmRpbmdMYXlvdXQpCit7CisgICAg
cmV0dXJuIHsgeyBzYW1wbGVyQmluZGluZ0xheW91dC50eXBlIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91
dC5oCmluZGV4IDk1OTIxZWE1ODc0NTUzZDhmYmYwY2Q1YTUzYjRkMDA1MDA2ZTMyZjIuLjZmMGRk
YzE0OTFhODcwNjA3ODQ0NDZhMjJmODE3N2JmOTA3OTUwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCkBA
IC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyQmluZGluZ1R5cGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
QEAgLTQ5LDMgKzUyLDUgQEAgc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjY0YWFkMGZmM2NiMWUwMjUwYzcxZjQ0MjJi
YzcwYTYyYjU2YTM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVNhbXBsZXJEZXNjcmlw
dG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvcj4gQ29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFNhbXBsZXJEZXNjcmlw
dG9yJiBzYW1wbGVyRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihzYW1wbGVyRGVz
Y3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJl
c3NNb2RlVSwgc2FtcGxlckRlc2NyaXB0b3IuYWRkcmVzc01vZGVWLCBzYW1wbGVyRGVzY3JpcHRv
ci5hZGRyZXNzTW9kZVcsIHNhbXBsZXJEZXNjcmlwdG9yLm1hZ0ZpbHRlciwgc2FtcGxlckRlc2Ny
aXB0b3IubWluRmlsdGVyLCBzYW1wbGVyRGVzY3JpcHRvci5taXBtYXBGaWx0ZXIsIHNhbXBsZXJE
ZXNjcmlwdG9yLmxvZE1pbkNsYW1wLCBzYW1wbGVyRGVzY3JpcHRvci5sb2RNYXhDbGFtcCwgc2Ft
cGxlckRlc2NyaXB0b3IuY29tcGFyZSwgc2FtcGxlckRlc2NyaXB0b3IubWF4QW5pc290cm9weSB9
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2Ft
cGxlckRlc2NyaXB0b3IuaAppbmRleCBiOGQ4NTk0ODcxNDJiY2NmYWM1MTE1ZjliZmFkOWUzOWNi
MGM1M2FmLi43YTQ1MWUxOTYxNmYzYzZkNjJlODA3NmM5ZDdjMGZkYjIwZGQ3MmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0
b3IuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxvcHRpb25hbD4KQEAgLTEyMywzICsxMjUsNSBAQCBz
dHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTRhYzdkZDRm
Y2JlYWUxNTA4YmE4NzRhYzJmYzk5ZDFlY2M2N2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
PgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYgc2hhZGVyTW9k
dWxlRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihzaGFkZXJNb2R1bGVEZXNjcmlw
dG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgc2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jb2Rl
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
U2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAppbmRleCBkZDc3ODZjZThiOTY2MTE2ZDI2OWEy
NTEwYTVmMmY4MjI5YzE3MDRjLi5iMjFlYTFiYjIzZDNkMzEwYjg0OGZiNGVlMjFkNDA4YWVmYmEy
YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVy
TW9kdWxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYw
LDUgQEAgc3RydWN0IFNoYWRlck1vZHVsZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3Jp
cHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2JkODU3YzY4
ZWNlMDEwNGI5YTZjMjJlZTVmMjc1YWJiZDU0NTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVU3RlbmNpbEZhY2VTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0
YXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3Qg
U3RlbmNpbEZhY2VTdGF0ZSYgc3RlbmNpbEZhY2VTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IHN0
ZW5jaWxGYWNlU3RhdGUuY29tcGFyZSwgc3RlbmNpbEZhY2VTdGF0ZS5mYWlsT3AsIHN0ZW5jaWxG
YWNlU3RhdGUuZGVwdGhGYWlsT3AsIHN0ZW5jaWxGYWNlU3RhdGUucGFzc09wIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VT
dGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3Rh
dGUuaAppbmRleCBlNDAxYjY0Y2QzNTJmZmFkMGY2YTU0ODc1NzEzMjU5NzJkMzgyNDgzLi4wYTE0
MTA4ZWMyZWY4OThlOWRkMjRjZDkwODY1Y2IyMzE5ODhjMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgKQEAgLTI1LDYg
KzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNv
bXBhcmVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3Rl
bmNpbE9wZXJhdGlvbi5oPgogCkBAIC03MSwzICs3NCw1IEBAIHN0cnVjdCBTdGVuY2lsRmFjZVN0
YXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIzYTZmMDI5Y2I4MzU2MzhmNWExMmZlNDk3MTdiYzI2NzcwOTY2NjQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1
cmVCaW5kaW5nTGF5b3V0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91
dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGlu
Z0xheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCYgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5
b3V0KQoreworICAgIHJldHVybiB7IHsgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmFjY2Vz
cywgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmZvcm1hdCwgc3RvcmFnZVRleHR1cmVCaW5k
aW5nTGF5b3V0LnZpZXdEaW1lbnNpb24gfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlv
dXQuaAppbmRleCBjMjViMWFmMzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmLi42NzQ5
NjEyYTYzNWM2MDM1MjZlMWMyMjk0ZDk4ZDk5NmY5M2ZlZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmlu
ZGluZ0xheW91dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oPgogI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZUZvcm1hdC5oPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaD4KQEAgLTY1LDMgKzY4
LDUgQEAgc3RydWN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZl
YXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBkNmRjMmMzYTZmNmI1NDg2YWE1OWRjN2JkNmM2NDQ1
NTJjYjk0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZy
b21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3VwcG9ydGVkRmVhdHVyZXMuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworUmVm
UHRyPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRGZWF0dXJlcz4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN1cHBvcnRlZEZlYXR1cmVzJiBzdXBwb3J0
ZWRGZWF0dXJlcykKK3sKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVy
ZXM6OmNyZWF0ZShzdXBwb3J0ZWRGZWF0dXJlcy5mZWF0dXJlcykgfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCmlu
ZGV4IDEwZjM4OTAzZTA3MjQzMjM5MTgzNmMyNjYzMzNmYzU5NWJkYzc2MjAuLmE2NWI3MjI5MTE0
NzgyNGMxYjkzOTVlOTVmMDUxYzMxOWY0NDg5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCkBAIC0yNSw2ICsyNSw5
IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC01MCwzICs1Myw1IEBAIHN0cnVjdCBTdXBwb3J0ZWRGZWF0dXJl
cyB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTJjMDQxZjljMDYzYjEzZTA5
YTM3NWUwNjVmZTlmZjFiNjA4NjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAKQEAgLTAsMCArMSw2OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0
ZWRMaW1pdHMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCitSZWZQdHI8UEFMOjpXZWJHUFU6OlN1cHBvcnRlZExpbWl0cz4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN1cHBvcnRlZExpbWl0cyYgc3Vw
cG9ydGVkTGltaXRzKQoreworICAgIHJldHVybiB7IFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1p
dHM6OmNyZWF0ZSgKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFRleHR1cmVEaW1lbnNpb24x
RCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFRleHR1cmVEaW1lbnNpb24yRCwKKyAgICAg
ICAgc3VwcG9ydGVkTGltaXRzLm1heFRleHR1cmVEaW1lbnNpb24zRCwKKyAgICAgICAgc3VwcG9y
dGVkTGltaXRzLm1heFRleHR1cmVBcnJheUxheWVycywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRz
Lm1heEJpbmRHcm91cHMsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhEeW5hbWljVW5pZm9y
bUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heER5
bmFtaWNTdG9yYWdlQnVmZmVyc1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICBzdXBwb3J0ZWRM
aW1pdHMubWF4U2FtcGxlZFRleHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgIHN1cHBvcnRl
ZExpbWl0cy5tYXhTYW1wbGVyc1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRMaW1p
dHMubWF4U3RvcmFnZUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgc3VwcG9ydGVkTGlt
aXRzLm1heFN0b3JhZ2VUZXh0dXJlc1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRM
aW1pdHMubWF4VW5pZm9ybUJ1ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgc3VwcG9ydGVk
TGltaXRzLm1heFVuaWZvcm1CdWZmZXJCaW5kaW5nU2l6ZSwKKyAgICAgICAgc3VwcG9ydGVkTGlt
aXRzLm1heFN0b3JhZ2VCdWZmZXJCaW5kaW5nU2l6ZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRz
Lm1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0
cy5taW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICBzdXBwb3J0ZWRMaW1p
dHMubWF4VmVydGV4QnVmZmVycywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFZlcnRleEF0
dHJpYnV0ZXMsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhWZXJ0ZXhCdWZmZXJBcnJheVN0
cmlkZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heEludGVyU3RhZ2VTaGFkZXJDb21wb25l
bnRzLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VT
aXplLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29y
a2dyb3VwLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVY
LAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVZLAorICAg
ICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVaLAorICAgICAgICBz
dXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb24pIH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExp
bWl0cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0
cy5oCmluZGV4IGZhY2EwM2VkNGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAuLjE0ZDk1
ZmRlMDI2YWFmZWFiZmI2ZDQ4NjJhYjU5YjY5YTVlNzZkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTI1LDcgKzI1
LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5j
bHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKIApAQCAtMjUxLDMgKzI1NCw1IEBAIHN0cnVjdCBTdXBwb3J0ZWRMaW1pdHMgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZDQ1MTMwZjUzNWQx
ZDRlYTkwMDdiMmRjMTYxYmFhNzM3YjA5NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1
cmVCaW5kaW5nTGF5b3V0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQmIHRleHR1cmVCaW5kaW5nTGF5b3V0KQor
eworICAgIHJldHVybiB7IHsgdGV4dHVyZUJpbmRpbmdMYXlvdXQuc2FtcGxlVHlwZSwgdGV4dHVy
ZUJpbmRpbmdMYXlvdXQudmlld0RpbWVuc2lvbiwgdGV4dHVyZUJpbmRpbmdMYXlvdXQubXVsdGlz
YW1wbGVkIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5oCmluZGV4IGEyOWI5Y2YyZDc4ZTkyNWQwYmEw
M2RjNjIzOGFlNzQ5ZjMwODBmZmYuLjI1NjZiZGQ3MDAxZDlhY2Y5NWNkMzdjMzllYzk1MzUyMzA5
YWZhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oPgogI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaD4K
IApAQCAtNjQsMyArNjcsNSBAQCBzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQgewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4
dHVyZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZjMxNjdiOWE2ZDIyYjIyZGE2YTg0ZDhm
NGRjMzQ0OTE0OWIwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZURlc2Ny
aXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVGV4dHVyZURlc2Ny
aXB0b3ImIHRleHR1cmVEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9t
QmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1cmVE
ZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgYXV0byBzaXplID0gY29udmVydEZyb21CYWNraW5nKHRleHR1cmVEZXNjcmlwdG9y
LnNpemUpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIFdURk1vdmUoKnNpemUpLCB0ZXh0dXJlRGVz
Y3JpcHRvci5taXBMZXZlbENvdW50LCB0ZXh0dXJlRGVzY3JpcHRvci5zYW1wbGVDb3VudCwgdGV4
dHVyZURlc2NyaXB0b3IuZGltZW5zaW9uLCB0ZXh0dXJlRGVzY3JpcHRvci5mb3JtYXQsIHRleHR1
cmVEZXNjcmlwdG9yLnVzYWdlIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCmluZGV4IDMzMjIxN2JhNjEyNTJj
MTQ4MDdiZTY0ODgwMjllMzVkOGVjNTI1MjMuLjBiZTBkZmZhMDhmY2VhOWQxOWU1ZTgwZGQ0NThh
MTlhMDJhNjE3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVUZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUV4dGVudDNE
LmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxv
cHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlw
ZXMuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNp
b24uaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQu
aD4KQEAgLTk1LDMgKzk4LDUgQEAgc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9i
amVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxY2M1NTFjYjc3MDUxNjk2ZmU3OWRiMDRlYjQ5YTQ5NDg0YjQ2MDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4gQ29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVWaWV3RGVzY3Jp
cHRvciYgdGV4dHVyZVZpZXdEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1
cmVWaWV3RGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHRleHR1cmVWaWV3RGVz
Y3JpcHRvci5mb3JtYXQsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVW
aWV3RGVzY3JpcHRvci5hc3BlY3QsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5iYXNlTWlwTGV2ZWws
IHRleHR1cmVWaWV3RGVzY3JpcHRvci5taXBMZXZlbENvdW50LCB0ZXh0dXJlVmlld0Rlc2NyaXB0
b3IuYmFzZUFycmF5TGF5ZXIsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5hcnJheUxheWVyQ291bnQg
fSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaAppbmRleCBhODE3NDM1NWUxZDY5ZjMzNjgyOWY2NDIz
ZjAzMTIyZTk5ZmU4OWM1Li43OTU0ZDdhODViODc3ZmI0ZDIzODA3MWJkZjU4MzhjMjJhOWIwMzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRl
eHR1cmVWaWV3RGVzY3JpcHRvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3Jp
cHRvckJhc2UuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KQEAgLTEwMiwzICsxMDQsNSBAQCBzdHJ1Y3Qg
VGV4dHVyZVZpZXdEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmFsaWRhdGlvbkVycm9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
YWxpZGF0aW9uRXJyb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiMWJjZmFkMDQzODI3ZTk0NWIyNWQ0ZWEw
MjUyN2M2NDBiOTY4YTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZhbGlkYXRpb25FcnJv
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVmFsaWRhdGlvbkVycm9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1Jl
ZlB0cjxQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmFsaWRhdGlvbkVycm9yJiB2YWxpZGF0aW9u
RXJyb3IpCit7CisgICAgcmV0dXJuIHsgUEFMOjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcjo6Y3Jl
YXRlKHZhbGlkYXRpb25FcnJvci5tZXNzYWdlKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaAppbmRleCA0MjQ4MTAyZGY2
ZjQwZmFkYWY4YWFmMDYxOWM1ODIxNDVhNTk2ZjE2Li4yNjhlZTUxNTg3MDBkN2E0MjJiYThlZGU5
YTNkZmI0YTE2ODY1MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CkBAIC00OSwzICs1Miw1IEBAIHN0cnVjdCBWYWxpZGF0aW9uRXJyb3IgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRy
aWJ1dGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJp
YnV0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlZDVkYjY5M2UwMzVkZWMwMDA3MDhhNTg0OGQwNTNjMDZm
MzlmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVVmVydGV4QXR0cmlidXRlLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhB
dHRyaWJ1dGUuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4QXR0cmlidXRlJiB2ZXJ0ZXhBdHRyaWJ1
dGUpCit7CisgICAgcmV0dXJuIHsgeyB2ZXJ0ZXhBdHRyaWJ1dGUuZm9ybWF0LCB2ZXJ0ZXhBdHRy
aWJ1dGUub2Zmc2V0LCB2ZXJ0ZXhBdHRyaWJ1dGUuc2hhZGVyTG9jYXRpb24gfSB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1
dGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUu
aAppbmRleCBmOTNmYmNkNjJjMTI4OTA3M2M0YTk2NzFmYjJiNjYwNmRkMGRkMzUxLi5iMTNmOGM2
YjRjNWM5YTFjYjc1NzlkYmUyNzRkODUzZjA5N2U3MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCkBAIC0yNSw2ICsyNSw5
IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3Jh
bFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3Jt
YXQuaD4KIApAQCAtNjUsMyArNjgsNSBAQCBzdHJ1Y3QgVmVydGV4QXR0cmlidXRlIHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QnVmZmVyTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NDgyZDA2NWFlYTVmOGI2NzJlNzQ2
MTc4ZjZkOGNkZjIxYzcwNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcApAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEJ1
ZmZlckxheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2Vi
R1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4g
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFZlcnRl
eEJ1ZmZlckxheW91dCYgdmVydGV4QnVmZmVyTGF5b3V0KQoreworICAgIFZlY3RvcjxQQUw6Oldl
YkdQVTo6VmVydGV4QXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eSh2ZXJ0ZXhCdWZmZXJMYXlvdXQuYXR0cmlidXRlcy5zaXplKCkpOwor
ICAgIGZvciAoY29uc3QgYXV0byYgYmFja2luZ0F0dHJpYnV0ZSA6IHZlcnRleEJ1ZmZlckxheW91
dC5hdHRyaWJ1dGVzKSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRlID0gY29udmVydEZyb21CYWNr
aW5nKGJhY2tpbmdBdHRyaWJ1dGUpOworICAgICAgICBpZiAoIWF0dHJpYnV0ZSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF0dHJpYnV0ZXMudW5jaGVja2VkQXBw
ZW5kKFdURk1vdmUoKmF0dHJpYnV0ZSkpOworICAgIH0KKworICAgIHJldHVybiB7IHsgdmVydGV4
QnVmZmVyTGF5b3V0LmFycmF5U3RyaWRlLCB2ZXJ0ZXhCdWZmZXJMYXlvdXQuc3RlcE1vZGUsIFdU
Rk1vdmUoYXR0cmlidXRlcykgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAyMzEwMmRjZGIzNDQy
NGI3YTgxYjVkZjIyMmZkY2QwNWQwMjM1OGUxLi40YTI4ZmUxM2MyNmUyMjVlMGM4ZWVhNWY2MzAx
NWJjNDk1ODVjMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVVZlcnRl
eEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVVmVydGV4U3RlcE1vZGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBA
IC02NiwzICs2OSw1IEBAIHN0cnVjdCBWZXJ0ZXhCdWZmZXJMYXlvdXQgewogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNiMjQyODE3MjllZmNhZmM4OTI3OWE2NWE0MDM3Yzk5NTIwMDI4ZjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4
U3RhdGUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVVmVydGV4U3RhdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRl
eFN0YXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgVmVydGV4U3RhdGUmIHZlcnRleFN0YXRlKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+KHZlcnRleFN0
YXRlKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgVmVjdG9yPHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4+
IGJ1ZmZlcnM7CisgICAgYnVmZmVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZlcnRleFN0YXRl
LmJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdCdWZmZXIgOiB2
ZXJ0ZXhTdGF0ZS5idWZmZXJzKSB7CisgICAgICAgIGlmIChiYWNraW5nQnVmZmVyKSB7CisgICAg
ICAgICAgICBhdXRvIGJ1ZmZlciA9IGNvbnZlcnRGcm9tQmFja2luZygqYmFja2luZ0J1ZmZlcik7
CisgICAgICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICAgICAgYnVmZmVycy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqYnVm
ZmVyKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYnVmZmVycy51bmNoZWNrZWRBcHBl
bmQoc3RkOjpudWxsb3B0KTsKKyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2Up
LCBXVEZNb3ZlKGJ1ZmZlcnMpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2Fk
OWUxZjE0ODIwMTFlNmQuLjM3MGQyNDAzYjBjNjhiMjIwZWMwMDQ3YTNjOGVmMjI3YzVmMzVhNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5o
CkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCIKICNpbmNsdWRlICJX
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KQEAgLTU4LDMg
KzYwLDUgQEAgc3RydWN0IFZlcnRleFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA5MWQxZWFiODkwNTE4NGY4ZTAyMTNkMzlhZThk
ZGI1NDJjM2M4YmNhLi44ZTNhZDE5YzlmNTdhNWRmNDg2MDdiMGYzZjYzMzQ2OTAwMjUyMGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKQEAgLTMxNSw2ICszMTUsNzAgQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCUmVzdWx0LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAor
U2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0
RW50cnkuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcAor
U2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAKK1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGls
YXRpb25NZXNzYWdlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0
b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNw
cAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorU2hh
cmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCitT
aGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5h
bFRleHR1cmVEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRl
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwCitTaGFyZWQvV2Vi
R1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weVRleHR1cmUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1
cmVUYWdnZWQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5jcHAKK1No
YXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJE
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5jcHAKK1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAKK1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVF1
ZXJ5U2V0RGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVz
Y3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2Ny
aXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQu
Y3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKK1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRl
ck9wdGlvbnMuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNw
cAorU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJH
UFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
U3RlbmNpbEZhY2VTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcAorU2hhcmVkL1dlYkdQ
VS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4
dHVyZURlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleEJ1ZmZlckxheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuY3Bw
CisKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKIAogU2hhcmVkL1hSL1hSRGV2
aWNlSW5mby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IGJkOTcyYTJiZWMyNWJlMjY3Zjk1ODFiZDBhZWMyMGZhZWRmNmI2NTAuLmI1
OGI5YzU2NDUwODY3MTBiZmJjMjkwYWI4OTQyZDYyOTgzZWFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNyw4ICs3LDE2IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTAwLmNwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9Vbmlm
aWVkU291cmNlMTAyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDMuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNv
dXJjZTEwNC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA1LmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MDYuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMDkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1tLm1tCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTExLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5p
ZmllZFNvdXJjZTExMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNjE2Y2M1ZDJiYzk2ODVh
MWFkZjk5MWE5M2E4YzdhMjhiNWZkYmE5Li44MTkxNTgwOTAwZDlhNDBlMTNiMTRjZWU0NjM3NGY2
YTllZDExMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM4OSw4ICszODksNzkgQEAKIAkJMUM4RTI5MzkxMjc2MUU1QjAwQkM3QkQw
IC8qIFdLSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQzhFMjkzNzEyNzYxRTVCMDBCQzdCRDAgLyogV0tJbnNwZWN0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzhFMkEzNTEyNzc4
NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyQTMxMTI3Nzg1MjQwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQzhFMkEz
NjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyQTMyMTI3Nzg1MjQwMEJDN0JE
MCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oICovOyB9OworCQkxQzk4QzA5NzI3NDYyMTBFMDAy
Q0NCNzggLyogV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5NjI3NDYyMTBFMDAyQ0NCNzggLyog
V2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEQ5Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOTgyNzQ2MjY3ODAwMkNDQjc4IC8qIFdl
YkdQVVZhbGlkYXRpb25FcnJvci5jcHAgKi87IH07CisJCTFDOThDMERBMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDk5Mjc0NjI2NzgwMDJDQ0I3OCAvKiBX
ZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwREIyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOUEyNzQ2MjY3ODAwMkNDQjc4
IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwICovOyB9OworCQkxQzk4QzBEQzI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOUIyNzQ2MjY3ODAwMkNDQjc4IC8q
IFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMwREQyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDlDMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJH
UFVQcm9ncmFtbWFibGVTdGFnZS5jcHAgKi87IH07CisJCTFDOThDMERFMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDlEMjc0NjI2NzgwMDJDQ0I3OCAvKiBX
ZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcCAqLzsgfTsKKwkJMUM5OEMwREYyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOUUyNzQ2MjY3OTAw
MkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwICovOyB9OworCQkx
Qzk4QzBFMDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5
RjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAgKi87
IH07CisJCTFDOThDMEUxMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4zRC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBMDI3NDYy
Njc5MDAyQ0NCNzggLyogV2ViR1BVT3JpZ2luM0QuY3BwICovOyB9OworCQkxQzk4QzBFMjI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEExMjc0NjI2NzkwMDJDQ0I3
OCAvKiBXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBFMzI3NDYy
NjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTIyNzQ2MjY3OTAw
MkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5
OEMwRTQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlRGF0YUxheW91dC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBMzI3NDYyNjdB
MDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwRTYy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTUyNzQ2MjY3QTAw
MkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzBF
NzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBNjI3NDYyNjdBMDAyQ0NCNzgg
LyogV2ViR1BVQmxlbmRTdGF0ZS5jcHAgKi87IH07CisJCTFDOThDMEU4Mjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBNzI3NDYyNjdBMDAyQ0NCNzggLyogV2Vi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBFOTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTgyNzQ2MjY3QTAw
MkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsK
KwkJMUM5OEMwRUEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTky
NzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwICovOyB9OworCQkx
Qzk4QzBFQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEFBMjc0NjI2
N0IwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwICovOyB9OworCQkxQzk4QzBF
QzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBQjI3NDYyNjdCMDAyQ0NC
NzggLyogV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgKi87IH07CisJCTFDOThDMEVEMjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQUMyNzQ2MjY3QjAwMkNDQjc4IC8q
IFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAgKi87IH07CisJCTFDOThDMEVFMjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQUQyNzQ2MjY3QjAwMkNDQjc4IC8qIFdl
YkdQVUltYWdlQ29weUJ1ZmZlci5jcHAgKi87IH07CisJCTFDOThDMEVGMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBRTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BV
VGV4dHVyZURlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBGMTI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVQmluZEdyb3VwRW50cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjAyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRH
cm91cEVudHJ5LmNwcCAqLzsgfTsKKwkJMUM5OEMwRjIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjEyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVUJp
bmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzBGMzI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjIyNzQ2MjY3QzAwMkNDQjc4IC8q
IFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwRjQyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjMyNzQ2MjY3QzAwMkNDQjc4IC8q
IFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwICovOyB9OworCQkxQzk4QzBGNTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCNDI3NDYyNjdDMDAyQ0NCNzgg
LyogV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEY2Mjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjUyNzQ2MjY3
RDAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgKi87IH07CisJ
CTFDOThDMEY3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdM
YXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQjYyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dC5jcHAgKi87IH07CisJCTFDOThDMEY4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTYW1w
bGVyQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzk4QzBCNzI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzBGOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BV
RGVwdGhTdGVuY2lsU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM5OEMwQjgyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVURlcHRoU3RlbmNp
bFN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMwRkEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUV4
dGVudDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDOThDMEI5Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlbnQzRC5jcHAgKi87IH07CisJ
CTFDOThDMEZCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
OThDMEJBMjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKKwkJMUM5OEMwRkMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBh
c3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEJCMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVSZW5k
ZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAgKi87IH07CisJCTFDOThDMEZEMjc0NjI2
ODMwMDJDQ0I3OCAvKiBXZWJHUFVGcmFnbWVudFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEJDMjc0NjI2N0UwMDJDQ0I3OCAvKiBX
ZWJHUFVGcmFnbWVudFN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMwRkUyNzQ2MjY4MzAwMkNDQjc4
IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCRDI3NDYyNjdFMDAyQ0NCNzggLyog
V2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwRkYyNzQ2
MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEJFMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVD
b2xvci5jcHAgKi87IH07CisJCTFDOThDMTAwMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVPcmln
aW4yRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Qzk4QzBCRjI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVT3JpZ2luMkQuY3BwICovOyB9OworCQkx
Qzk4QzEwMTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQzAyNzQ2MjY3RTAwMkNDQjc4
IC8qIFdlYkdQVUVycm9yLmNwcCAqLzsgfTsKKwkJMUM5OEMxMDIyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQzEyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVU91dE9m
TWVtb3J5RXJyb3IuY3BwICovOyB9OworCQkxQzk4QzEwMzI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQzIyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCAqLzsgfTsKKwkJMUM5OEMxMDQyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQzMyNzQ2MjY3RjAwMkNDQjc4IC8q
IFdlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzEwNTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDNDI3NDYyNjdGMDAy
Q0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi87IH07CisJ
CTFDOThDMTA2Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDNTI3NDYy
NjdGMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwICovOyB9OworCQkxQzk4QzEw
NzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBDNjI3NDYy
NjdGMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAgKi87IH07CisJ
CTFDOThDMTA4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
OThDMEM3Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKKwkJMUM5OEMxMDkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbXBpbGF0
aW9uTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzk4QzBDODI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdl
LmNwcCAqLzsgfTsKKwkJMUM5OEMxMEEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVU11bHRpc2Ft
cGxlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUM5OEMwQzkyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3Bw
ICovOyB9OworCQkxQzk4QzEwQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZhY2VT
dGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Qzk4QzBDQTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHAgKi87
IH07CisJCTFDOThDMTBDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQ0IyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5j
cHAgKi87IH07CisJCTFDOThDMTBEMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyRGVz
Y3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzk4QzBDQzI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3Bw
ICovOyB9OworCQkxQzk4QzEwRTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4U3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMw
Q0QyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleFN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5
OEMxMEYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQ0UyNzQ2MjY4
MTAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwICovOyB9OworCQkxQzk4QzEx
MDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQ0YyNzQ2MjY4
MTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmNwcCAqLzsgfTsKKwkJMUM5
OEMxMTEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBEMDI3NDYyNjgx
MDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMxMTIy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBEMTI3NDYyNjgx
MDAyQ0NCNzggLyogV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCAqLzsgfTsKKwkJMUM5
OEMxMTMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBEMjI3
NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcCAqLzsgfTsK
KwkJMUM5OEMxMTQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQz
Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAgKi87IH07CisJ
CTFDOThDMTE2Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5
OEMwRDUyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5j
cHAgKi87IH07CisJCTFDOThDMTE3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNz
Q29sb3JBdHRhY2htZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDOThDMEQ2Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50LmNwcCAqLzsgfTsKKwkJMUM5OEMxMTgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdl
YkdQVURldmljZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM5OEMwRDcyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVURldmljZURl
c2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzExOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM5OEMwRDgyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmNwcCAqLzsgfTsKIAkJMUNBOEI5NDUxMjdDODgyQTAwNTc2QzJCIC8qIFdl
Ykluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdl
Ykluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0E4Qjk0NjEy
N0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1
NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCTFDQUVDQjY1
Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLzsgfTsKKwkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MTEuY3BwICovOyB9OworCQkxQ0FFQ0I2NzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTEwOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi87IH07CisJ
CTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYwMjc0NjVBRTMw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLzsgfTsKKwkJMUNBRUNCNjkyNzQ2NUFF
NDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMDQuY3BwICovOyB9OworCQkxQ0FFQ0I2QTI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwNS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0FFQ0I2MjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAg
Ki87IH07CisJCTFDQUVDQjZCMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYz
Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNwcCAqLzsgfTsKKwkJMUNBRUNC
NkMyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjQyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMDcuY3BwICovOyB9OwogCQkxQ0I3NDY0RDI3NDM4MEM4MDBGMTk4
NzQgLyogV2ViR1BVRG93bmNhc3RDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCNzQ2NEIyNzQzODBDODAwRjE5
ODc0IC8qIFdlYkdQVURvd25jYXN0Q29udmVydFRvQmFja2luZ0NvbnRleHQuaCAqLzsgfTsKIAkJ
MUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJF
NDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JC
RTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OwpA
QCAtMjk3NSwxMCArMzA0Niw4MSBAQAogCQkxQzk4QzA5MzI3NDRCRDlCMDAyQ0NCNzggLyogUmVt
b3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQYXNz
RW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5OEMw
OTQyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJlbW90ZUdQVS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVH
UFUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOThDMDk1Mjc0
NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwOTYyNzQ2MjEwRTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDk4Mjc0NjI2NzgwMDJDQ0I3OCAv
KiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwOTkyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
U2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMDlBMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNhbnZhc0NvbmZp
Z3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5QjI3NDYy
Njc4MDAyQ0NCNzggLyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5QzI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzA5RDI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFnZUNv
cHlUZXh0dXJlVGFnZ2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
OUUyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDlG
Mjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRv
ckJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBMDI3NDYyNjc5
MDAyQ0NCNzggLyogV2ViR1BVT3JpZ2luM0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViR1BVT3JpZ2luM0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBBMTI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVF1ZXJ5U2V0
RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEEyMjc0
NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3Jp
cHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEEzMjc0NjI2N0Ew
MDJDQ0I3OCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTUyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZl
ckJpbmRpbmdMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEE2Mjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJsZW5kU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBNzI3NDYyNjdBMDAyQ0NCNzggLyog
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBBODI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBOTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BV
QnVmZmVyRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwQUEyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRMaW1p
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBQjI3NDYyNjdCMDAy
Q0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVCdWZmZXJCaW5kaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwQUMyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEJ1ZmZl
ckxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzBBRDI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEFFMjc0NjI2N0IwMDJDQ0I3OCAv
KiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMEIwMjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBF
bnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5k
R3JvdXBFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEIxMjc0
NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCMjI3NDYy
NjdDMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCMzI3NDYyNjdDMDAyQ0NCNzgg
LyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwQjQyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRs
ZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEI1Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2Ny
aXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwQjYyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTdG9y
YWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzBCNzI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2FtcGxlckJp
bmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCODI3
NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCOTI3NDYyNjdEMDAyQ0NCNzggLyog
V2ViR1BVRXh0ZW50M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVRXh0ZW50M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBC
QTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkIy
NzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBh
c3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwQkMyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRnJhZ21lbnRTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEJEMjc0NjI2N0UwMDJDQ0I3
OCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkUyNzQ2MjY3RTAwMkNDQjc4IC8q
IFdlYkdQVUNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVUNvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkYyNzQ2
MjY3RTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjJELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9yaWdpbjJELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwQzAyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUVycm9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzEyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQ
VU91dE9mTWVtb3J5RXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEMyMjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEMzMjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NM
YXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDNDI3NDYyNjdG
MDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5k
aW5nTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzUyNzQ2
MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzYyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUlt
YWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMEM3Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzBDODI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25N
ZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNv
bXBpbGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThD
MEM5Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDQTI3NDYyNjgwMDAyQ0NCNzgg
LyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwQ0IyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVWaWV3
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzBDQzI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2FtcGxlckRlc2Ny
aXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDRDI3NDYyNjgx
MDAyQ0NCNzggLyogV2ViR1BVVmVydGV4U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViR1BVVmVydGV4U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQzk4QzBDRTI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFn
ZUNvcHlUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0Yy
NzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dEVudHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDAyNzQ2MjY4MTAwMkND
Qjc4IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzBEMTI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEQyMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
RDMyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDUyNzQ2MjY4MjAwMkNDQjc4
IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBENjI3NDYyNjgyMDAyQ0NCNzggLyog
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDcyNzQ2MjY4MjAwMkNDQjc4IC8qIFdl
YkdQVURldmljZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMEQ4Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVPYmpl
Y3REZXNjcmlwdG9yQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUVC
QTVCMjA4N0U3NEUwMDA1NDQyOSAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmF0aXZlV2ViTW91c2VFdmVudElPUy5t
bTsgcGF0aCA9IGlvcy9OYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0E4QjkzNTEyN0M3NzRFMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQ
cm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYklu
c3BlY3RvclVJUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQThC
OTQzMTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJ
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3Bl
Y3RvclVJUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCTFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTA5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDkuY3BwOyBwYXRoID0g
IkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDku
Y3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VW5pZmllZFNvdXJjZTExMS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTEwOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA4LmNwcDsgcGF0aCA9
ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4
LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjYwMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwNC5jcHA7IHBhdGgg
PSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEw
NC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I2MjI3
NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVbmlmaWVkU291cmNlMTA1LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA1LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjYzMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTA2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDYuY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MDYuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNjQy
NzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVW5pZmllZFNvdXJjZTEwNy5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNy5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkxQ0I3NDYxQTI3NDM2RUU0MDBGMTk4NzQgLyogUmVtb3RlVGV4
dHVyZVZpZXdQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlld1Byb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQjc0NjFCMjc0MzZFRTQwMEYxOTg3NCAv
KiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVCaW5k
R3JvdXBMYXlvdXRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I3NDYx
QzI3NDM2RUU1MDBGMTk4NzQgLyogUmVtb3RlQ29tbWFuZEJ1ZmZlclByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRCdWZmZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03Mzk4LDcxICs3NTQwLDEzNCBAQAogCQkxQ0I3NDY0NTI3NDM3OUYx
MDBGMTk4NzQgLyogV2ViR1BVICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQkxQzk4QzA5NjI3NDYyMTBFMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2OEIyNzQzOUNCNzAwRjE5ODc0IC8qIFdlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBCMDI3NDYyNjdDMDAyQ0NCNzggLyog
V2ViR1BVQmluZEdyb3VwRW50cnkuY3BwICovLAogCQkJCTFDQjc0NjhBMjc0MzlDQjYwMEYxOTg3
NCAvKiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5oICovLAorCQkJCTFDOThDMEIxMjc0NjI2N0MwMDJD
Q0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3
NDY2QTI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5o
ICovLAorCQkJCTFDOThDMENGMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlv
dXRFbnRyeS5jcHAgKi8sCiAJCQkJMUNCNzQ2OTUyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVUJp
bmRHcm91cExheW91dEVudHJ5LmggKi8sCisJCQkJMUM5OEMwQzUyNzQ2MjY3RjAwMkNDQjc4IC8q
IFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCAqLywKIAkJCQkxQ0I3NDY3ODI3NDM5Q0IyMDBGMTk4
NzQgLyogV2ViR1BVQmxlbmRDb21wb25lbnQuaCAqLywKKwkJCQkxQzk4QzBBNjI3NDYyNjdBMDAy
Q0NCNzggLyogV2ViR1BVQmxlbmRTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2N0MyNzQzOUNCMzAw
RjE5ODc0IC8qIFdlYkdQVUJsZW5kU3RhdGUuaCAqLywKKwkJCQkxQzk4QzBBQjI3NDYyNjdCMDAy
Q0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgKi8sCiAJCQkJMUNCNzQ2OTAyNzQzOUNC
ODAwRjE5ODc0IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuaCAqLywKKwkJCQkxQzk4QzBBNTI3NDYy
NjdBMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJMUNC
NzQ2OTMyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCAqLywK
KwkJCQkxQzk4QzBBOTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5j
cHAgKi8sCiAJCQkJMUNCNzQ2NjYyNzQzOUNBRTAwRjE5ODc0IC8qIFdlYkdQVUJ1ZmZlckRlc2Ny
aXB0b3IuaCAqLywKKwkJCQkxQzk4QzA5QTI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVQ2FudmFz
Q29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJMUNCNzQ2N0YyNzQzOUNCNDAwRjE5ODc0IC8qIFdl
YkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQkxQzk4QzBCRTI3NDYyNjdFMDAyQ0NC
NzggLyogV2ViR1BVQ29sb3IuY3BwICovLAogCQkJCTFDQjc0Njc3Mjc0MzlDQjIwMEYxOTg3NCAv
KiBXZWJHUFVDb2xvci5oICovLAorCQkJCTFDOThDMEIzMjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJH
UFVDb2xvclRhcmdldFN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY3OTI3NDM5Q0IyMDBGMTk4NzQg
LyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oICovLAorCQkJCTFDOThDMEEyMjc0NjI2NzkwMDJD
Q0I3OCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2
ODMyNzQzOUNCNTAwRjE5ODc0IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmggKi8s
CisJCQkJMUM5OEMwQkQyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2OTIyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVUNv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEM4Mjc0NjI2ODAwMDJDQ0I3
OCAvKiBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwICovLAogCQkJCTFDOThDMDdCMjc0NEI0
MTYwMDJDQ0I3OCAvKiBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCAqLywKKwkJCQkxQzk4QzBE
MjI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcCAqLywK
IAkJCQkxQ0I3NDY5NzI3NDM5Q0JBMDBGMTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlw
dG9yLmggKi8sCisJCQkJMUM5OEMwQzIyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQ
YXNzVGltZXN0YW1wV3JpdGVzLmNwcCAqLywKIAkJCQkxQ0I3NDY4OTI3NDM5Q0I2MDBGMTk4NzQg
LyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCAqLywKKwkJCQkxQzk4QzBDNzI3
NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8s
CiAJCQkJMUNCNzQ2NzYyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3NDZBNDI3NDNBREJBMDBGMTk4NzQgLyogV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oICovLAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYxOTg3
NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovLAorCQkJCTFDOThDMEI4Mjc0
NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8sCiAJCQkJMUNC
NzQ2NzEyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmggKi8sCisJ
CQkJMUM5OEMwRDcyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuY3Bw
ICovLAogCQkJCTFDQjc0Njg1Mjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlw
dG9yLmggKi8sCisJCQkJMUM5OEMwQzAyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmNw
cCAqLywKIAkJCQkxQzk4QzA3RTI3NDRCOURCMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuaCAqLywK
KwkJCQkxQzk4QzBCOTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZW50M0QuY3BwICovLAog
CQkJCTFDQjc0Njg3Mjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVFeHRlbnQzRC5oICovLAorCQkJ
CTFDOThDMEM0Mjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY2RjI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oICovLAorCQkJCTFDOThDMEJBMjc0NjI2N0QwMDJD
Q0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3
NDY4NjI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5o
ICovLAorCQkJCTFDOThDMEJDMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVGcmFnbWVudFN0YXRl
LmNwcCAqLywKIAkJCQkxQ0I3NDY3QTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVRnJhZ21lbnRT
dGF0ZS5oICovLAogCQkJCTFDQjc0NjQ5Mjc0MzdGQzUwMEYxOTg3NCAvKiBXZWJHUFVJZGVudGlm
aWVyLmggKi8sCisJCQkJMUM5OEMwQUQyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29w
eUJ1ZmZlci5jcHAgKi8sCiAJCQkJMUNCNzQ2N0QyNzQzOUNCMzAwRjE5ODc0IC8qIFdlYkdQVUlt
YWdlQ29weUJ1ZmZlci5oICovLAorCQkJCTFDOThDMEM2Mjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJH
UFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCAqLywKIAkJCQkxQ0I3NDY2ODI3NDM5Q0FFMDBG
MTk4NzQgLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oICovLAorCQkJCTFDOThDMENF
Mjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmNwcCAqLywKIAkJCQkx
Q0I3NDY5QjI3NDM5Q0JCMDBGMTk4NzQgLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oICovLAor
CQkJCTFDOThDMDlEMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFn
Z2VkLmNwcCAqLywKIAkJCQkxQ0I3NDY3NDI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVSW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZC5oICovLAorCQkJCTFDOThDMEEzMjc0NjI2N0EwMDJDQ0I3OCAvKiBX
ZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0NjlGMjc0MzlDQkMwMEYxOTg3
NCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBDOTI3NDYyNjgwMDAy
Q0NCNzggLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NjkyNzQz
OUNBRTAwRjE5ODc0IC8qIFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuaCAqLywKKwkJCQkxQzk4QzBE
ODI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwICovLAog
CQkJCTFDQjc0NjZDMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oICovLAorCQkJCTFDOThDMEJGMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4yRC5j
cHAgKi8sCiAJCQkJMUNCNzQ2NzAyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVU9yaWdpbjJELmgg
Ki8sCisJCQkJMUM5OEMwQTAyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCAq
LywKIAkJCQkxQ0I3NDZBMDI3NDM5Q0JEMDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLywK
KwkJCQkxQzk4QzBDMTI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5j
cHAgKi8sCiAJCQkJMUM5OEMwN0MyNzQ0Qjk5MTAwMkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5
RXJyb3IuaCAqLywKKwkJCQkxQzk4QzA5RjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUGlwZWxp
bmVEZXNjcmlwdG9yQmFzZS5jcHAgKi8sCiAJCQkJMUNCNzQ2OTQyNzQzOUNCOTAwRjE5ODc0IC8q
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCAqLywKKwkJCQkxQzk4QzBCNTI3NDYyNjdE
MDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkx
Q0I3NDY5ODI3NDM5Q0JCMDBGMTk4NzQgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmggKi8sCisJCQkJMUM5OEMwOUIyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVVByaW1pdGl2ZVN0
YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY2RDI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVUHJpbWl0
aXZlU3RhdGUuaCAqLywKKwkJCQkxQzk4QzA5QzI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuY3BwICovLAogCQkJCTFDQjc0Njg4Mjc0MzlDQjYwMEYxOTg3NCAvKiBX
ZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oICovLAorCQkJCTFDOThDMEExMjc0NjI2NzkwMDJDQ0I3
OCAvKiBXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjlFMjc0MzlD
QkMwMEYxOTg3NCAvKiBXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBC
NDI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAgKi8s
CiAJCQkJMUNCNzQ2ODIyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IuaCAqLywKKwkJCQkxQzk4QzBBODI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjdCMjc0MzlDQjMwMEYx
OTg3NCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oICovLAorCQkJCTFD
OThDMEQ2Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LmNwcCAqLywKIAkJCQkxQ0I3NDY5RDI3NDM5Q0JDMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudC5oICovLAorCQkJCTFDOThDMEJCMjc0NjI2N0UwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAgKi8sCiAJCQkJMUNCNzQ2
N0UyNzQzOUNCMzAwRjE5ODc0IC8qIFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50LmggKi8sCisJCQkJMUM5OEMwQTcyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBh
c3NEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY2RTI3NDM5Q0IwMDBGMTk4NzQgLyogV2Vi
R1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDMzI3NDYyNjdGMDAyQ0NC
NzggLyogV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2OTEyNzQzOUNC
ODAwRjE5ODc0IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA5RTI3
NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi8s
CiAJCQkJMUNCNzQ2OTkyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZXMuaCAqLywKKwkJCQkxQzk4QzBENTI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4RTI3NDM5Q0I4MDBGMTk4
NzQgLyogV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwRDEy
NzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgKi8sCiAJ
CQkJMUNCNzQ2OEMyNzQzOUNCNzAwRjE5ODc0IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cy5oICovLAorCQkJCTFDOThDMEI3Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyQmlu
ZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2NjcyNzQzOUNBRTAwRjE5ODc0IC8qIFdlYkdQ
VVNhbXBsZXJCaW5kaW5nTGF5b3V0LmggKi8sCisJCQkJMUM5OEMwQ0MyNzQ2MjY4MDAwMkNDQjc4
IC8qIFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4RDI3NDM5Q0I3
MDBGMTk4NzQgLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA5OTI3
NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgKi8sCiAJ
CQkJMUNCNzQ2NkIyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuaCAqLywKKwkJCQkxQzk4QzBDQTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZh
Y2VTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NzMyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVN0
ZW5jaWxGYWNlU3RhdGUuaCAqLywKKwkJCQkxQzk4QzBCNjI3NDYyNjdEMDAyQ0NCNzggLyogV2Vi
R1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY5NjI3NDM5
Q0JBMDBGMTk4NzQgLyogV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJ
CQkJMUM5OEMwRDMyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNw
cCAqLywKIAkJCQkxQzk4QzA3OTI3NDRBMUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVh
dHVyZXMuaCAqLywKKwkJCQkxQzk4QzBBQTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9y
dGVkTGltaXRzLmNwcCAqLywKIAkJCQkxQzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BV
U3VwcG9ydGVkTGltaXRzLmggKi8sCisJCQkJMUM5OEMwQjIyNzQ2MjY3QzAwMkNDQjc4IC8qIFdl
YkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY3NTI3NDM5Q0IxMDBG
MTk4NzQgLyogV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBBRTI3
NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovLAogCQkJCTFD
Qjc0NjgxMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovLAor
CQkJCTFDOThDMENCMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0
b3IuY3BwICovLAogCQkJCTFDQjc0NjgwMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJl
Vmlld0Rlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA5ODI3NDYyNjc4MDAyQ0NCNzggLyogV2Vi
R1BVVmFsaWRhdGlvbkVycm9yLmNwcCAqLywKIAkJCQkxQzk4QzA3RDI3NDRCOUI3MDAyQ0NCNzgg
LyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmggKi8sCisJCQkJMUM5OEMwRDAyNzQ2MjY4MTAwMkND
Qjc4IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NzIyNzQzOUNC
MDAwRjE5ODc0IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5oICovLAorCQkJCTFDOThDMEFDMjc0
NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwICovLAogCQkJCTFD
Qjc0NjhGMjc0MzlDQjgwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCAqLywK
KwkJCQkxQzk4QzBDRDI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4U3RhdGUuY3BwICov
LAogCQkJCTFDQjc0NjlBMjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBXZWJHUFU7CkBAIC03ODUyLDYgKzgwNTcsMTQgQEAKIAkJCQkx
QzU2NTU3QzI3NDVDNUEwMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgKi8sCiAJCQkJ
MUM1NjU1N0QyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICovLAogCQkJ
CTFDNTY1NTdFMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAzLmNwcCAqLywKKwkJ
CQkxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi8sCisJ
CQkJMUNBRUNCNjIyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDUuY3BwICovLAor
CQkJCTFDQUVDQjYzMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNwcCAqLywK
KwkJCQkxQ0FFQ0I2NDI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgKi8s
CisJCQkJMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICov
LAorCQkJCTFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAq
LywKKwkJCQkxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAg
Ki8sCisJCQkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3Bw
ICovLAogCQkJKTsKIAkJCW5hbWUgPSAidW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAiRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMiOwpAQCAtMTQ4ODIsNiArMTUwOTUs
MTQgQEAKIAkJCQkxQzU2NTU3RjI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzU2NTU4MDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmll
ZFNvdXJjZTEwMi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzU2NTU4MTI3NDVDNUExMDA2MzAw
QUYgLyogVW5pZmllZFNvdXJjZTEwMy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2OTI3
NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQ0FFQ0I2QTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQ0FFQ0I2QjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEw
Ni5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2QzI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwNy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2NzI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2
NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyog
VXNlckludGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0
RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTQ5MTYsNiArMTUxMzcsNjkgQEAKIAkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzBFNjA2MTEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMEU2MTgyMTJENkNCMUQwMDEy
QTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzA5NzI3NDYyMTBFMDAyQ0NCNzggLyogV2ViR1BVQmluZEdy
b3VwRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGMTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVQmluZEdyb3VwRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMwRjIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMTAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VUJpbmRHcm91cExheW91dEVudHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTA2Mjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQzk4QzBFNzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzBFQzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVy
QmluZGluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBFNjI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4
QzBFQTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQzk4QzBEQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGRjI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRjQyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUM5OEMwRTMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEZFMjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMxMDkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzExMzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTAzMjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxQzk4QzEwODI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGOTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUM5OEMxMTgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUVycm9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEZBMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJH
UFVFeHRlbnQzRC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwNTI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQzk4QzBGQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGRDI3NDYyNjgzMDAyQ0NC
NzggLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBF
RTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFDOThDMTA3Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRl
cm5hbEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTBGMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MERFMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMEU0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFn
ZURhdGFMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMEEyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5
OEMxMTkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFDOThDMTAwMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVPcmln
aW4yRC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBFMTI3NDYyNjgzMDAyQ0NCNzggLyog
V2ViR1BVT3JpZ2luM0QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDIyNzQ2MjY4MzAw
MkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUM5OEMwRTAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRjYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBE
QzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUM5OEMwREQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVByb2dyYW1tYWJsZVN0
YWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEUyMjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRjUy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUM5OEMwRTkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1
bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTE3Mjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMEZDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQ
YXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBF
ODI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUM5OEMxMDQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBh
c3NMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwREYyNzQ2MjY4MzAwMkNDQjc4
IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUM5OEMxMTYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzExMjI3NDYyNjgzMDAyQ0NCNzggLyog
V2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MEY4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQzk4QzEwRDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxl
ckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwREEyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUM5OEMxMEIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRjcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN0
b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEx
NDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUM5OEMwRUIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExp
bWl0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGMzI3NDYyNjgzMDAyQ0NCNzggLyog
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMw
RUYyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDOThDMTBDMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlVmll
d0Rlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRDkyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4
QzExMTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDOThDMEVEMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhCdWZm
ZXJMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMEUyNzQ2MjY4MzAwMkNDQjc4
IC8qIFdlYkdQVVZlcnRleFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDUyMzc1MUM3
M0QzOEYwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklE
QlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRURCRENENjFF
NjhEMjAwMDBBNTlGOEYgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444777</attachid>
            <date>2021-11-18 20:41:53 -0800</date>
            <delta_ts>2021-11-19 13:05:31 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233310-20211118204152.patch</filename>
            <type>text/plain</type>
            <size>348082</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhN2RiYzNhYmJmZTFlODg2
ODhkYzFlZTVjYzc1OWUwNTk1NGVlNjkuLjE0NDBmMzdiZGUzOWZiMzIyN2M0ODIzMmFiNjk5ODk5
MThjZWRjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMyIEBACisyMDIxLTExLTE4ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0gQWRk
IGNvbnZlcnRlcnMgZnJvbSBzZXJpYWxpemFibGUgZGVzY3JpcHRvcnMgdG8gaW50ZXJmYWNlIGRl
c2NyaXB0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAg
VGhlIFdlYkdQVSBhYnN0cmFjdCBpbnRlcmZhY2UgKGluIFBBTC9ncmFwaGljcy9XZWJHUFUpIGhh
cyBhIHNldCBvZiBzdHJ1Y3RzIGZvciBkZXNjcmlwdG9ycy4gVGhlc2UgZGVzY3JpcHRvcnMgaG9s
ZCByZWZlcmVuY2VzIHRvCisgICAgICAgIG9iamVjdHMsIHNvIHRoZXNlIGludGVyZmFjZXMgY2Fu
J3QgYmUgc2VyaWFsaXplZCBkaXJlY3RseS4gSW5zdGVhZCwgd2UgaGF2ZSBhIHBhcmFsbGVsIHNl
dCBvZiBzdHJ1Y3RzIChpbiBXZWJLaXQvU2hhcmVkL1dlYkdQVSkKKyAgICAgICAgd2hpY2ggcmVw
bGFjZSB0aGUgb2JqZWN0IHJlZmVyZW5jZXMgd2l0aCBXZWJHUFVJZGVudGlmaWVycy4gVGhlIHdl
YiBwcm9jZXNzIHNpZGUgd2lsbCBjb252ZXJ0IHRoZSBhYnN0cmFjdCBpbnRlcmZhY2Ugc3RydWN0
cworICAgICAgICB0byB0aGUgc2VyaWFsaXphYmxlIG9uZXMsIGFuZCB0aGUgR1BVIHByb2Nlc3Mg
c2lkZSB3aWxsIGNvbnZlcnQgYmFjay4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb252ZXJ0
ZXJzIGJhY2ssIGZyb20gdGhlIHNlcmlhbGl6YWJsZQorICAgICAgICBzdHJ1Y3RzIHRvIHRoZSBh
YnN0cmFjdCBpbnRlcmZhY2Ugc3RydWN0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlv
dXRGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29u
dmVydEJ1ZmZlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RI
ZWFwOjpjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5j
b2RlckZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpj
b252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEV4dGVybmFsVGV4dHVyZUZyb21CYWNraW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJvbUJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRQaXBl
bGluZUxheW91dEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RI
ZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJC
dW5kbGVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNr
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVy
TW9kdWxlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9i
amVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9y
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VUJpbmRHcm91cEVudHJ5Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VUJsZW5kQ29tcG9uZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5n
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvclRhcmdldFN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kQnVmZmVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3Rh
dGUuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
cHV0ZVBhc3NEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZXMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmxlbmRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3Jp
cHRvckJhc2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXJy
b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
bWFuZEJ1ZmZlckRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVRXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVudDNELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Lmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2Ny
aXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlF
eHRlcm5hbEltYWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlU
ZXh0dXJlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNo
YXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlVGFnZ2VkLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlv
dXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBs
ZVN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVP
dXRPZk1lbW9yeUVycm9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPcmlnaW4yRC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRl
LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVs
aW5lRGVzY3JpcHRvckJhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4K
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZl
U3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdl
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmg6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2Ny
aXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQ
YXNzQ29sb3JBdHRhY2htZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJp
bmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0xheW91dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oLgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRp
b25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJv
bUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xh
eW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dXBwb3J0ZWRGZWF0dXJlcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9y
dGVkTGltaXRzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUu
aC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVy
ZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3
RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleEF0dHJpYnV0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVm
ZmVyTGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAq
IFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmguCisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg6
CisKIDIwMjEtMTEtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBBbGxvdyBhbGwgcmVkaXJlY3Qgc2NoZW1lcyB3aGVuIGNvbXBpbGluZyBh
IGNvbnRlbnQgcnVsZSBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKaW5kZXggNTM1ZTM1NzQ2MTkxZmRmMjE1N2I3
OWE1M2NjMjY2ZmFiMjI3YzQ1OC4uYTBjZDI5YzU1ZTQ3MTlkNTQ5YjRhMDAxOGIyZmFmNTFkYjkz
YmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdy
b3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJp
bmRHcm91cERlc2NyaXB0b3IuaApAQCAtNDAsMTMgKzQwLDkgQEAgc3RydWN0IEdQVUJpbmRHcm91
cERlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgICAgICBy
ZXR1cm4gewogICAgICAgICAgICAgeyBsYWJlbCB9LAogICAgICAgICAgICAgbGF5b3V0LT5iYWNr
aW5nKCksCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8
UEFMOjpXZWJHUFU6OkJpbmRHcm91cEVudHJ5PiBlbnRyaWVzOwotICAgICAgICAgICAgICAgIGVu
dHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7Ci0gICAg
ICAgICAgICAgICAgZm9yIChhdXRvJiBiaW5kR3JvdXBFbnRyeSA6IHRoaXMtPmVudHJpZXMpCi0g
ICAgICAgICAgICAgICAgICAgIGVudHJpZXMudW5jaGVja2VkQXBwZW5kKGJpbmRHcm91cEVudHJ5
LmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJpZXM7Ci0g
ICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgZW50cmllcy5tYXAoW10gKGF1dG8mIGJpbmRH
cm91cEVudHJ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmRHcm91cEVudHJ5LmNvbnZl
cnRUb0JhY2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDNkY2I1NDA3MDE0YmI5YjIzMmE4NzQ5NWI2ZWVkOTFm
NzI1ZmE1NzUuLjZiMTQxNTFhOTQ5MTEzYmRmMTZjZGIxMGQ4ODM1ZWZmZGI2YmQ0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTM3LDEzICszNyw5IEBAIHN0cnVjdCBHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIEdQVU9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAg
ICB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICB7IGxhYmVsIH0sCi0gICAgICAgICAg
ICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRH
cm91cExheW91dEVudHJ5PiBlbnRyaWVzOwotICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5lbnRyaWVzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IHRoaXMtPmVudHJpZXMpCi0gICAgICAgICAgICAgICAgICAgIGVu
dHJpZXMudW5jaGVja2VkQXBwZW5kKGVudHJ5LmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIGVudHJpZXM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAg
ZW50cmllcy5tYXAoW10gKGF1dG8mIGVudHJ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVu
dHJ5LmNvbnZlcnRUb0JhY2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGls
YXRpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0
aW9uSW5mby5jcHAKaW5kZXggMGI3YmIxYzU5MjI5ZDVlZDA3YmQ3Njk1Njc5ZDg2ZmU2YjhmNmQ0
ZC4uZDJkZjMwYTM2Nzg2ZDVkZDFkZjQzZDQ3ZWNiZGY3MzQ5NGIyY2VhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwCkBA
IC0zMCwxMiArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZlY3RvcjxSZWY8R1BVQ29t
cGlsYXRpb25NZXNzYWdlPj4gR1BVQ29tcGlsYXRpb25JbmZvOjptZXNzYWdlcygpIGNvbnN0CiB7
Ci0gICAgYXV0byBtZXNzYWdlcyA9IG1fYmFja2luZy0+bWVzc2FnZXMoKTsKLSAgICBWZWN0b3I8
UmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShtZXNzYWdlcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgbWVzc2FnZSA6
IG1lc3NhZ2VzKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEdQVUNvbXBpbGF0aW9u
TWVzc2FnZTo6Y3JlYXRlKFdURk1vdmUobWVzc2FnZSkpKTsKLSAgICByZXR1cm4gcmVzdWx0Owor
ICAgIHJldHVybiBtX2JhY2tpbmctPm1lc3NhZ2VzKCkubWFwKFtdIChjb25zdCBhdXRvJiBtZXNz
YWdlKSB7CisgICAgICAgIHJldHVybiBHUFVDb21waWxhdGlvbk1lc3NhZ2U6OmNyZWF0ZShtZXNz
YWdlKTsKKyAgICB9KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2UuaAppbmRleCBiYTk0YmYyODE1OGYxYTFiMTA5
OTM4OTdhNmFhNzdiMTg2NGUyYmRjLi5kZDU3OTRiMDYyMjljOGMzZGI4NGM0YmNhNjBiN2Y2YTc5
MTY5NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21w
aWxhdGlvbk1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVD
b21waWxhdGlvbk1lc3NhZ2UuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdQVUNvbXBpbGF0aW9uTWVzc2FnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNv
bXBpbGF0aW9uTWVzc2FnZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8R1BVQ29tcGlsYXRp
b25NZXNzYWdlPiBjcmVhdGUoUmVmPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYg
YmFja2luZykKKyAgICBzdGF0aWMgUmVmPEdQVUNvbXBpbGF0aW9uTWVzc2FnZT4gY3JlYXRlKFBB
TDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UmIGJhY2tpbmcpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21waWxhdGlvbk1lc3NhZ2UoV1RGTW92ZShiYWNraW5n
KSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb21waWxhdGlvbk1lc3NhZ2Uo
YmFja2luZykpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0OwpA
QCAtNTIsOCArNTIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXBpbGF0
aW9uTWVzc2FnZSYgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiBwcml2
YXRlOgotICAgIEdQVUNvbXBpbGF0aW9uTWVzc2FnZShSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0
aW9uTWVzc2FnZT4mJiBiYWNraW5nKQotICAgICAgICA6IG1fYmFja2luZyhXVEZNb3ZlKGJhY2tp
bmcpKQorICAgIEdQVUNvbXBpbGF0aW9uTWVzc2FnZShQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25N
ZXNzYWdlJiBiYWNraW5nKQorICAgICAgICA6IG1fYmFja2luZyhiYWNraW5nKQogICAgIHsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1
dGVQYXNzVGltZXN0YW1wV3JpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUuaAppbmRleCAyYzk0NTY4ODEzNmFkN2Q5ZGJmNTFi
NTQ5M2M1Y2JmYjQ1ZTkwMjA0Li4zYTVmMWFhODk2MmEyOWYzOTgwODVjOGZmM2Q4YzIzMzEzMzky
NWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRl
UGFzc1RpbWVzdGFtcFdyaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oCkBAIC01NCwxMSArNTQsOSBAQCB1c2luZyBH
UFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlPjsKIAogaW5saW5lIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdy
aXRlcyBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVz
JiBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcykKIHsKLSAgICBQQUw6OldlYkdQVTo6Q29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMgcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRv
JiBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlIDogY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMp
Ci0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZS5jb252ZXJ0VG9CYWNraW5nKCkpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNv
bXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLm1hcChbXSAoYXV0byYgY29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZSkgeworICAgICAgICByZXR1cm4gY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5jb252
ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaAppbmRleCAyZmY1MmI5ZDlmMWJk
MWU5NTE2OWZiODlmMTU1MTliNDE0MDRkZmQzLi41NmZkZGNhNjcyNTI5NjI3MWU1YzY2MmU0MDJl
NTM0NDM4NzMwMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVEZXZpY2VEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVRGV2aWNlRGVzY3JpcHRvci5oCkBAIC00MSwxMyArNDEsOSBAQCBzdHJ1Y3QgR1BVRGV2aWNl
RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgewogICAg
ICAgICByZXR1cm4gewogICAgICAgICAgICAgeyBsYWJlbCB9LAotICAgICAgICAgICAgKFt0aGlz
XSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpGZWF0dXJlTmFtZT4g
cmVxdWlyZWRGZWF0dXJlczsKLSAgICAgICAgICAgICAgICByZXF1aXJlZEZlYXR1cmVzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+cmVxdWlyZWRGZWF0dXJlcy5zaXplKCkpOwotICAgICAg
ICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVxdWlyZWRGZWF0dXJlIDogdGhpcy0+cmVxdWly
ZWRGZWF0dXJlcykKLSAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRGZWF0dXJlcy51bmNoZWNr
ZWRBcHBlbmQoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhyZXF1aXJlZEZlYXR1cmUpKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWlyZWRGZWF0dXJlczsKLSAgICAgICAgICAgIH0pKCks
CisgICAgICAgICAgICByZXF1aXJlZEZlYXR1cmVzLm1hcChbXSAoY29uc3QgYXV0byYgcmVxdWly
ZWRGZWF0dXJlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcocmVxdWlyZWRGZWF0dXJlKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21l
bnRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21lbnRTdGF0
ZS5oCmluZGV4IDliMjBlMmVmODhiNTA1YzVlNDI4ODdkZTg5YzgwMzBhYjIyMzU5ZGEuLmU5YjY5
YWNiNWFjYjA2Y2E2OWI4NzE3MmU5OTNlNTE4ZWY5NWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUZyYWdtZW50U3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0YXRlLmgKQEAgLTQwLDIxICs0MCwxMSBA
QCBzdHJ1Y3QgR1BVRnJhZ21lbnRTdGF0ZSA6IHB1YmxpYyBHUFVQcm9ncmFtbWFibGVTdGFnZSB7
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCiAgICAg
ICAgICAgICAgICAgZW50cnlQb2ludCwKLSAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAg
ICAgICAgICAgICAgICAgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BV
OjpQaXBlbGluZUNvbnN0YW50VmFsdWU+PiBjb25zdGFudHM7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnN0YW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkp
OwotICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogdGhpcy0+
Y29uc3RhbnRzKQotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFw
cGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50czsKLSAgICAgICAgICAgICAgICB9KSgp
LAorICAgICAgICAgICAgICAgIGNvbnN0YW50cywKICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkNvbG9y
VGFyZ2V0U3RhdGU+IHRhcmdldHM7Ci0gICAgICAgICAgICAgICAgdGFyZ2V0cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHRoaXMtPnRhcmdldHMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3Ig
KGF1dG8mIHRhcmdldCA6IHRoaXMtPnRhcmdldHMpCi0gICAgICAgICAgICAgICAgICAgIHRhcmdl
dHMudW5jaGVja2VkQXBwZW5kKHRhcmdldC5jb252ZXJ0VG9CYWNraW5nKCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiB0YXJnZXRzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIHRh
cmdldHMubWFwKFtdIChhdXRvJiB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFy
Z2V0LmNvbnZlcnRUb0JhY2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9OwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuaAppbmRleCBhMjRiOTdkNzM5NTA2YzFjYjkzYjRiYTA4
NGFlZWRjOWQzZjgxYzk0Li41YmZiNTU4OWRkNWU2NjRhOThhYTE5M2NhOWFjNzNhYWQyNWZmZTNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IuaApAQCAtMzcsMTUgKzM3LDEwIEBAIHN0cnVjdCBHUFVQ
aXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogICAgIHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAg
ICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PiBiaW5kR3JvdXBMYXlvdXRz
OwotICAgICAgICAgICAgICAgIGJpbmRHcm91cExheW91dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh0aGlzLT5iaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBiaW5kR3JvdXBMYXlvdXQgOiB0aGlzLT5iaW5kR3JvdXBMYXlvdXRzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChiaW5kR3JvdXBMYXlvdXQpOwotICAgICAgICAgICAg
ICAgICAgICBiaW5kR3JvdXBMYXlvdXRzLnVuY2hlY2tlZEFwcGVuZChiaW5kR3JvdXBMYXlvdXQt
PmJhY2tpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBi
aW5kR3JvdXBMYXlvdXRzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIGJpbmRHcm91
cExheW91dHMubWFwKFtdIChjb25zdCBhdXRvJiBiaW5kR3JvdXBMYXlvdXQpIC0+IHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4geworICAgICAgICAg
ICAgICAgIEFTU0VSVChiaW5kR3JvdXBMYXlvdXQpOworICAgICAgICAgICAgICAgIHJldHVybiBi
aW5kR3JvdXBMYXlvdXQtPmJhY2tpbmcoKTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICB9Owog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJv
Z3JhbW1hYmxlU3RhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByb2dy
YW1tYWJsZVN0YWdlLmgKaW5kZXggYTExNWE2YzA5OGQxZTkzNGNiNzFiNDUyNzdhYmU0OGI1NmQ3
YTI1My4uODRjMWQwODYzMDQ1N2M5YmI1OGVmYmU3OWRhYzk3NWMyOWQwMDI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcm9ncmFtbWFibGVTdGFnZS5o
CkBAIC00MiwxMyArNDIsNyBAQCBzdHJ1Y3QgR1BVUHJvZ3JhbW1hYmxlU3RhZ2UgewogICAgICAg
ICByZXR1cm4gewogICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCiAgICAgICAgICAgICBl
bnRyeVBvaW50LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0YW50VmFs
dWU+PiBjb25zdGFudHM7Ci0gICAgICAgICAgICAgICAgY29uc3RhbnRzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodGhpcy0+Y29uc3RhbnRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBjb25zdGFudCA6IHRoaXMtPmNvbnN0YW50cykKLSAgICAgICAgICAgICAgICAg
ICAgY29uc3RhbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlS2V5VmFsdWVQYWlyKGNvbnN0YW50Lmtl
eSwgY29uc3RhbnQudmFsdWUpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RhbnRzOwot
ICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIGNvbnN0YW50cywKICAgICAgICAgfTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlT
ZXREZXNjcmlwdG9yLmgKaW5kZXggMDI4ZGE1Y2JkMTM3ZTMwZGE5NDE0MDU0NGE4MTZiZTExZjFm
YzUwMS4uMGRhOTA0MzhjZGMwNDAyM2Y1MDcwY2IwNmIzZGQ1MWNkODRlZGRiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9y
LmgKQEAgLTQyLDEzICs0Miw5IEBAIHN0cnVjdCBHUFVRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJs
aWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgICAgICAgICAgeyBsYWJlbCB9LAogICAg
ICAgICAgICAgV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyh0eXBlKSwKICAgICAgICAgICAgIGNv
dW50LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFBB
TDo6V2ViR1BVOjpQaXBlbGluZVN0YXRpc3RpY05hbWU+IHBpcGVsaW5lU3RhdGlzdGljczsKLSAg
ICAgICAgICAgICAgICBwaXBlbGluZVN0YXRpc3RpY3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0
aGlzLT5waXBlbGluZVN0YXRpc3RpY3Muc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHBpcGVsaW5lU3RhdGlzdGljIDogdGhpcy0+cGlwZWxpbmVTdGF0aXN0aWNzKQot
ICAgICAgICAgICAgICAgICAgICBwaXBlbGluZVN0YXRpc3RpY3MudW5jaGVja2VkQXBwZW5kKFdl
YkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcocGlwZWxpbmVTdGF0aXN0aWMpKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcGlwZWxpbmVTdGF0aXN0aWNzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAg
ICAgICAgIHBpcGVsaW5lU3RhdGlzdGljcy5tYXAoW10gKGNvbnN0IGF1dG8mIHBpcGVsaW5lU3Rh
dGlzdGljKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcocGlwZWxpbmVTdGF0aXN0aWMpOworICAgICAgICAgICAgfSksCiAgICAgICAgIH07CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUv
R1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaAppbmRleCA2OTU3ZWE1OTMyMzFlNzFk
ZmU2MTQyN2NkM2UwZmZhM2RlZGViMjZhLi4yMzg5YWQyNDdiNDM2YmQ0MDM1ZGRiNWM4OGQyZGQ3
ZGRmMmI0NjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTM2LDEzICsz
Niw5IEBAIHN0cnVjdCBHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciA6IHB1YmxpYyBH
UFVSZW5kZXJQYXNzTGF5b3V0IHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICB7IGxhYmVsIH0sCi0gICAgICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VGV4dHVyZUZvcm1hdD4gY29s
b3JGb3JtYXRzOwotICAgICAgICAgICAgICAgICAgICBjb2xvckZvcm1hdHMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eSh0aGlzLT5jb2xvckZvcm1hdHMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBjb2xvckZvcm1hdCA6IHRoaXMtPmNvbG9yRm9ybWF0cykKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yRm9ybWF0cy51bmNoZWNrZWRBcHBlbmQoV2ViQ29y
ZTo6Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCkpOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gY29sb3JGb3JtYXRzOwotICAgICAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICAg
ICAgY29sb3JGb3JtYXRzLm1hcChbXSAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tpbmcoY29sb3JGb3Jt
YXQpOworICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZv
cm1hdCA/IHN0ZDo6b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0
ZW5jaWxGb3JtYXQpIH0gOiBzdGQ6Om51bGxvcHQsCiAgICAgICAgICAgICAgICAgc2FtcGxlQ291
bnQsCiAgICAgICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKaW5kZXggYTVmYzgzMDAyMzA0ZmZiMGQ2
MGNmYWI5ZjVjMjQ2MGNlY2Q1ZTJhNC4uNjNhZDYyNjgwOTk5MzFkZGQ4Njg5NTVmNGRlZjYxMjkz
YzBiMmVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC00MiwxMyArNDIsOSBAQCBzdHJ1Y3QgR1BVUmVu
ZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAg
IHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAgICAgICAg
IChbdGhpc10gKCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudD4gY29sb3JBdHRhY2htZW50czsKLSAgICAgICAgICAgICAgICBj
b2xvckF0dGFjaG1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+Y29sb3JBdHRhY2ht
ZW50cy5zaXplKCkpOwotICAgICAgICAgICAgICAgIGZvciAoYXV0byYgY29sb3JBdHRhY2htZW50
IDogdGhpcy0+Y29sb3JBdHRhY2htZW50cykKLSAgICAgICAgICAgICAgICAgICAgY29sb3JBdHRh
Y2htZW50cy51bmNoZWNrZWRBcHBlbmQoY29sb3JBdHRhY2htZW50LmNvbnZlcnRUb0JhY2tpbmco
KSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yQXR0YWNobWVudHM7Ci0gICAgICAgICAg
ICB9KSgpLAorICAgICAgICAgICAgY29sb3JBdHRhY2htZW50cy5tYXAoW10gKGF1dG8mIGNvbG9y
QXR0YWNobWVudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBjb2xvckF0dGFjaG1lbnQuY29u
dmVydFRvQmFja2luZygpOworICAgICAgICAgICAgfSksCiAgICAgICAgICAgICBkZXB0aFN0ZW5j
aWxBdHRhY2htZW50ID8gc3RkOjpvcHRpb25hbCB7IGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQtPmNv
bnZlcnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0LAogICAgICAgICAgICAgb2NjbHVzaW9u
UXVlcnlTZXQgPyAmb2NjbHVzaW9uUXVlcnlTZXQtPmJhY2tpbmcoKSA6IG51bGxwdHIsCiAgICAg
ICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHRpbWVzdGFtcFdyaXRlcyksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzTGF5b3V0LmgK
aW5kZXggNjE0NDdmM2U2NzA5MzE0ZGRhOTI3YmE5ZmI4MjFhYzg5MWUxY2Q2My4uYWYzNWRmZjhj
YzI4MGNjYzg1NTgwYmRmZDU3YTk0ZGE5OGRkZjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NMYXlvdXQuaApAQCAtMzksMTMgKzM5LDkg
QEAgc3RydWN0IEdQVVJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UgewogICAgIHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHsgbGFiZWwgfSwK
LSAgICAgICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6Oldl
YkdQVTo6VGV4dHVyZUZvcm1hdD4gY29sb3JGb3JtYXRzOwotICAgICAgICAgICAgICAgIGNvbG9y
Rm9ybWF0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbG9yRm9ybWF0cy5zaXplKCkp
OwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQgOiB0aGlzLT5j
b2xvckZvcm1hdHMpCi0gICAgICAgICAgICAgICAgICAgIGNvbG9yRm9ybWF0cy51bmNoZWNrZWRB
cHBlbmQoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBjb2xvckZvcm1hdHM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAg
ICAgY29sb3JGb3JtYXRzLm1hcChbXSAoY29uc3QgYXV0byYgY29sb3JGb3JtYXQpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCk7
CisgICAgICAgICAgICB9KSwKICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEZvcm1hdCA/IHN0ZDo6
b3B0aW9uYWwgeyBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKCpkZXB0aFN0ZW5jaWxGb3JtYXQp
IH0gOiBzdGQ6Om51bGxvcHQsCiAgICAgICAgICAgICBzYW1wbGVDb3VudCwKICAgICAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlLmgKaW5kZXggZmMxMmMxNGY5NWRiZDVjZWJmMmQxOWIyMTg3ZDZm
YWNhMGZmMGY3Yi4uY2E1OTI5NTRjZDNmMjE3Y2NkZTNjNDVmMmVjZTcyYzZhZmYwYzExZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVy
UGFzc1RpbWVzdGFtcFdyaXRlLmgKQEAgLTU0LDExICs1NCw5IEBAIHVzaW5nIEdQVVJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8R1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPjsK
IAogaW5saW5lIFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIGNvbnZlcnRU
b0JhY2tpbmcoY29uc3QgR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyYgcmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlcykKIHsKLSAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlcyByZXN1bHQ7Ci0gICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyUGFz
c1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcmVuZGVyUGFzc1RpbWVz
dGFtcFdyaXRlIDogcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykKLSAgICAgICAgcmVzdWx0LnVu
Y2hlY2tlZEFwcGVuZChyZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygp
KTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGVzLm1hcChbXSAoYXV0byYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlKSB7CisgICAgICAgIHJl
dHVybiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuY29udmVydFRvQmFja2luZygpOworICAgIH0p
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZl
cnRleEJ1ZmZlckxheW91dC5oCmluZGV4IGMzOGVhNjMxN2E4OTVmMTg3ZDljNGU3YjVmMTA4YTg0
Njk1Zjc0MDIuLjgyMGJlNWU5OGY4ZWRhNDQ5ZjZjZWMwYmU5OTIzYzJjY2EzNGNlMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxh
eW91dC5oCkBAIC0zOSwxMyArMzksOSBAQCBzdHJ1Y3QgR1BVVmVydGV4QnVmZmVyTGF5b3V0IHsK
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIGFycmF5U3RyaWRlLAogICAgICAgICAgICAg
V2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhzdGVwTW9kZSksCi0gICAgICAgICAgICAoW3RoaXNd
ICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0
ZT4gYXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodGhpcy0+YXR0cmlidXRlcy5zaXplKCkpOwotICAgICAgICAgICAgICAgIGZvciAo
YXV0byYgYXR0cmlidXRlIDogdGhpcy0+YXR0cmlidXRlcykKLSAgICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlcy51bmNoZWNrZWRBcHBlbmQoYXR0cmlidXRlLmNvbnZlcnRUb0JhY2tpbmcoKSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7Ci0gICAgICAgICAgICB9KSgpLAor
ICAgICAgICAgICAgYXR0cmlidXRlcy5tYXAoW10gKGF1dG8mIGF0dHJpYnV0ZSkgeworICAgICAg
ICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUuY29udmVydFRvQmFja2luZygpOworICAgICAgICAg
ICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVmVydGV4U3RhdGUuaAppbmRleCA5Mzg1MjEwZGU4YmVkNmMzNmVjYjA0ODFhODk5
NDJlNjgzYzNlMDMwLi41ODU1OWQ4MTM0NzgxOWE0ZWY4ZmZmMmUzNjdjMDFmMDkwMmZiYmExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmgKQEAg
LTQxLDIxICs0MSwxMyBAQCBzdHJ1Y3QgR1BVVmVydGV4U3RhdGUgOiBwdWJsaWMgR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG1vZHVsZS0+YmFj
a2luZygpLAogICAgICAgICAgICAgICAgIGVudHJ5UG9pbnQsCi0gICAgICAgICAgICAgICAgKFt0
aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBQQUw6OldlYkdQVTo6UGlwZWxpbmVDb25zdGFudFZhbHVlPj4gY29uc3RhbnRzOwotICAgICAg
ICAgICAgICAgICAgICBjb25zdGFudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb25z
dGFudHMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjb25zdGFudCA6
IHRoaXMtPmNvbnN0YW50cykKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy51bmNo
ZWNrZWRBcHBlbmQobWFrZUtleVZhbHVlUGFpcihjb25zdGFudC5rZXksIGNvbnN0YW50LnZhbHVl
KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25zdGFudHM7Ci0gICAgICAgICAgICAg
ICAgfSkoKSwKKyAgICAgICAgICAgICAgICBjb25zdGFudHMsCiAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7Ci0gICAgICAgICAg
ICAgICAgYnVmZmVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmJ1ZmZlcnMuc2l6ZSgp
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IHRoaXMtPmJ1ZmZlcnMpCi0g
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKGJ1ZmZlciA/IHN0ZDo6b3B0aW9uYWwg
eyBidWZmZXItPmNvbnZlcnRUb0JhY2tpbmcoKSB9IDogc3RkOjpudWxsb3B0KTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYnVmZmVyczsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBi
dWZmZXJzLm1hcChbXSAoYXV0byYgYnVmZmVyKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpWZXJ0ZXhCdWZmZXJMYXlvdXQ+IHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmZmVyKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyLT5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIH0pLAogICAgICAg
ICB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcAppbmRleCAyM2Y1
YzlhY2YwOTFkZDg3ZDMzNTA5MDFmNDVlYTA1NmYyZmNhMWIzLi43ZDViMTY1NGVlZDA3NmMxNzYw
MjY4ZGYwMDI2ZGI3MjIwNjU3YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNw
cApAQCAtMTYwLDEwICsxNjAsOSBAQCB2b2lkIEFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNv
bnN0IERldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3RpbwogICAgICAgICBs
YWJlbC5kYXRhKCkKICAgICB9OwogCi0gICAgVmVjdG9yPFdHUFVGZWF0dXJlTmFtZT4gZmVhdHVy
ZXM7Ci0gICAgZmVhdHVyZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLnJlcXVp
cmVkRmVhdHVyZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gZmVhdHVyZU5hbWUgOiBkZXNjcmlw
dG9yLnJlcXVpcmVkRmVhdHVyZXMpCi0gICAgICAgIGZlYXR1cmVzLnVuY2hlY2tlZEFwcGVuZCht
X2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGZlYXR1cmVOYW1lKSk7
CisgICAgYXV0byBmZWF0dXJlcyA9IGRlc2NyaXB0b3IucmVxdWlyZWRGZWF0dXJlcy5tYXAoW3Ro
aXNdIChhdXRvIGZlYXR1cmVOYW1lKSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRUb0JhY2tp
bmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGZlYXR1cmVOYW1lKTsKKyAgICB9KTsKIAogICAg
IFdHUFVSZXF1aXJlZExpbWl0cyBsaW1pdHMgewogICAgICAgICBudWxscHRyLCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFk
YXB0ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVUFkYXB0ZXJJbXBsLmgKaW5kZXggZTg0ZWQ0YTg1YjZiYzNlNDIxM2Q4MzdkOTE4YTdj
MTZkZjk4MmE4OS4uODE0YTI1NzBiMjhlYWU3YmJkY2E5ZmY2YTI4Yzc4NzdiNWVkMzljNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJH
UFVBZGFwdGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaApAQCAtNTgsOSArNTgsOSBAQCBwcml2YXRlOgog
ICAgIFdHUFVBZGFwdGVyIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIAog
ICAgIHZvaWQgcmVxdWVzdERldmljZUNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzLCBX
R1BVRGV2aWNlLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLSAgICB2b2lkIHJlcXVlc3REZXZpY2Uo
Y29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6ZnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYm
KT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0
b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAg
RGVxdWU8V1RGOjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9jYWxsYmFja3M7Cisg
ICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9jYWxsYmFja3M7
CiAKICAgICBXR1BVQWRhcHRlciBtX2JhY2tpbmcgeyBudWxscHRyIH07CiAgICAgUmVmPENvbnZl
cnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZp
Y2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVRGV2aWNlSW1wbC5jcHAKaW5kZXggYWU4MmUwNDUzNzY2MzE4MDM4ZDNhMGM0ZGMzZTdk
NTJjOTE5YjZhMi4uYjNmNTU1ZGIzMTc4NWUyZGI2ZDY0MTZjMmY5Mjk2ZWY0MjQwZDgzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJH
UFVEZXZpY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwuY3BwCkBAIC0xNDQsMTAgKzE0NCw4IEBAIFJlZjxC
aW5kR3JvdXBMYXlvdXQ+IERldmljZUltcGw6OmNyZWF0ZUJpbmRHcm91cExheW91dChjb25zdCBC
aW5kR3JvdXBMYXlvdXREZXNjCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwu
dXRmOCgpOwogCi0gICAgVmVjdG9yPFdHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeT4gYmFja2luZ0Vu
dHJpZXM7Ci0gICAgYmFja2luZ0VudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlw
dG9yLmVudHJpZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogZGVzY3Jp
cHRvci5lbnRyaWVzKSB7Ci0gICAgICAgIGJhY2tpbmdFbnRyaWVzLnVuY2hlY2tlZEFwcGVuZChX
R1BVQmluZEdyb3VwTGF5b3V0RW50cnkgeworICAgIGF1dG8gYmFja2luZ0VudHJpZXMgPSBkZXNj
cmlwdG9yLmVudHJpZXMubWFwKFt0aGlzXSAoY29uc3QgYXV0byYgZW50cnkpIHsKKyAgICAgICAg
cmV0dXJuIFdHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeSB7CiAgICAgICAgICAgICBudWxscHRyLAog
ICAgICAgICAgICAgZW50cnkuYmluZGluZywKICAgICAgICAgICAgIG1fY29udmVydFRvQmFja2lu
Z0NvbnRleHQtPmNvbnZlcnRTaGFkZXJTdGFnZUZsYWdzVG9CYWNraW5nKGVudHJ5LnZpc2liaWxp
dHkpLCB7CkBAIC0xNjksOCArMTY3LDggQEAgUmVmPEJpbmRHcm91cExheW91dD4gRGV2aWNlSW1w
bDo6Y3JlYXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEJpbmRHcm91cExheW91dERlc2MKICAgICAg
ICAgICAgICAgICBlbnRyeS5zdG9yYWdlVGV4dHVyZSA/IG1fY29udmVydFRvQmFja2luZ0NvbnRl
eHQtPmNvbnZlcnRUb0JhY2tpbmcoZW50cnkuc3RvcmFnZVRleHR1cmUtPmZvcm1hdCkgOiBXR1BV
VGV4dHVyZUZvcm1hdF9VbmRlZmluZWQsCiAgICAgICAgICAgICAgICAgZW50cnkuc3RvcmFnZVRl
eHR1cmUgPyBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGVudHJ5
LnN0b3JhZ2VUZXh0dXJlLT52aWV3RGltZW5zaW9uKSA6IFdHUFVUZXh0dXJlVmlld0RpbWVuc2lv
bl9VbmRlZmluZWQsCiAgICAgICAgICAgICB9LAotICAgICAgICB9KTsKLSAgICB9CisgICAgICAg
IH07CisgICAgfSk7CiAKICAgICBXR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBiYWNraW5n
RGVzY3JpcHRvciB7CiAgICAgICAgIG51bGxwdHIsCkBAIC0xODYsMTAgKzE4NCw5IEBAIFJlZjxQ
aXBlbGluZUxheW91dD4gRGV2aWNlSW1wbDo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoY29uc3QgUGlw
ZWxpbmVMYXlvdXREZXNjcmlwCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwu
dXRmOCgpOwogCi0gICAgVmVjdG9yPFdHUFVCaW5kR3JvdXBMYXlvdXQ+IGJhY2tpbmdCaW5kR3Jv
dXBMYXlvdXRzOwotICAgIGJhY2tpbmdCaW5kR3JvdXBMYXlvdXRzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRv
IGJpbmRHcm91cExheW91dCA6IGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykKLSAgICAgICAg
YmFja2luZ0JpbmRHcm91cExheW91dHMudW5jaGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2lu
Z0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoYmluZEdyb3VwTGF5b3V0LmdldCgpKSk7CisgICAg
YXV0byBiYWNraW5nQmluZEdyb3VwTGF5b3V0cyA9IGRlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0
cy5tYXAoW3RoaXNdIChhdXRvIGJpbmRHcm91cExheW91dCkgeworICAgICAgICByZXR1cm4gbV9j
b252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhiaW5kR3JvdXBMYXlvdXQu
Z2V0KCkpOworICAgIH0pOwogCiAgICAgV0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBiYWNr
aW5nRGVzY3JpcHRvciB7CiAgICAgICAgIG51bGxwdHIsCkBAIC0yMDUsMTAgKzIwMiw4IEBAIFJl
ZjxCaW5kR3JvdXA+IERldmljZUltcGw6OmNyZWF0ZUJpbmRHcm91cChjb25zdCBCaW5kR3JvdXBE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFi
ZWwudXRmOCgpOwogCi0gICAgVmVjdG9yPFdHUFVCaW5kR3JvdXBFbnRyeT4gYmFja2luZ0VudHJp
ZXM7Ci0gICAgYmFja2luZ0VudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9y
LmVudHJpZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRHcm91cEVudHJ5IDog
ZGVzY3JpcHRvci5lbnRyaWVzKSB7Ci0gICAgICAgIGJhY2tpbmdFbnRyaWVzLnVuY2hlY2tlZEFw
cGVuZChXR1BVQmluZEdyb3VwRW50cnkgeworICAgIGF1dG8gYmFja2luZ0VudHJpZXMgPSBkZXNj
cmlwdG9yLmVudHJpZXMubWFwKFt0aGlzXSAoY29uc3QgYXV0byYgYmluZEdyb3VwRW50cnkpIHsK
KyAgICAgICAgcmV0dXJuIFdHUFVCaW5kR3JvdXBFbnRyeSB7CiAgICAgICAgICAgICBudWxscHRy
LAogICAgICAgICAgICAgYmluZEdyb3VwRW50cnkuYmluZGluZywKICAgICAgICAgICAgIHN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVzb3VyY2Up
ID8gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhzdGQ6OmdldDxC
dWZmZXJCaW5kaW5nPihiaW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkuYnVmZmVyKSA6IG51bGxwdHIs
CkBAIC0yMTYsOCArMjExLDggQEAgUmVmPEJpbmRHcm91cD4gRGV2aWNlSW1wbDo6Y3JlYXRlQmlu
ZEdyb3VwKGNvbnN0IEJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyaXB0b3IKICAgICAgICAgICAg
IHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVz
b3VyY2UpID8gc3RkOjpnZXQ8QnVmZmVyQmluZGluZz4oYmluZEdyb3VwRW50cnkucmVzb3VyY2Up
LnNpemUudmFsdWVfb3IoV0dQVV9XSE9MRV9TSVpFKSA6IDAsCiAgICAgICAgICAgICBzdGQ6Omhv
bGRzX2FsdGVybmF0aXZlPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8U2FtcGxlcj4+KGJpbmRHcm91
cEVudHJ5LnJlc291cmNlKSA/IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0Jh
Y2tpbmcoc3RkOjpnZXQ8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxTYW1wbGVyPj4oYmluZEdyb3Vw
RW50cnkucmVzb3VyY2UpLmdldCgpKSA6IG51bGxwdHIsCiAgICAgICAgICAgICBzdGQ6OmhvbGRz
X2FsdGVybmF0aXZlPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+PihiaW5kR3Jv
dXBFbnRyeS5yZXNvdXJjZSkgPyBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9C
YWNraW5nKHN0ZDo6Z2V0PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VGV4dHVyZVZpZXc+PihiaW5k
R3JvdXBFbnRyeS5yZXNvdXJjZSkuZ2V0KCkpIDogbnVsbHB0ciwKLSAgICAgICAgfSk7Ci0gICAg
fQorICAgICAgICB9OworICAgIH0pOwogCiAgICAgV0dQVUJpbmRHcm91cERlc2NyaXB0b3IgYmFj
a2luZ0Rlc2NyaXB0b3IgewogICAgICAgICBudWxscHRyLApAQCAtMjU5LDEwICsyNTQsOSBAQCBh
dXRvIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgQ29udmVydFRvQmFjawogCiAgICAgYXV0byBlbnRyeVBvaW50ID0gZGVzY3JpcHRv
ci5jb21wdXRlLmVudHJ5UG9pbnQudXRmOCgpOwogCi0gICAgVmVjdG9yPENTdHJpbmc+IGNvbnN0
YW50TmFtZXM7Ci0gICAgY29uc3RhbnROYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2Ny
aXB0b3IuY29tcHV0ZS5jb25zdGFudHMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNv
bnN0YW50IDogZGVzY3JpcHRvci5jb21wdXRlLmNvbnN0YW50cykKLSAgICAgICAgY29uc3RhbnRO
YW1lcy51bmNoZWNrZWRBcHBlbmQoY29uc3RhbnQua2V5LnV0ZjgoKSk7CisgICAgYXV0byBjb25z
dGFudE5hbWVzID0gZGVzY3JpcHRvci5jb21wdXRlLmNvbnN0YW50cy5tYXAoW10gKGNvbnN0IGF1
dG8mIGNvbnN0YW50KSB7CisgICAgICAgIHJldHVybiBjb25zdGFudC5rZXkudXRmOCgpOworICAg
IH0pOwogCiAgICAgVmVjdG9yPFdHUFVDb25zdGFudEVudHJ5PiBiYWNraW5nQ29uc3RhbnRFbnRy
aWVzOwogICAgIGJhY2tpbmdDb25zdGFudEVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShk
ZXNjcmlwdG9yLmNvbXB1dGUuY29uc3RhbnRzLnNpemUoKSk7CkBAIC0zMDQsMTAgKzI5OCw5IEBA
IGF1dG8gY29udmVydFRvQmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIENvbnZlcnRUb0JhY2tpCiAKICAgICBhdXRvIHZlcnRleEVudHJ5UG9pbnQgPSBk
ZXNjcmlwdG9yLnZlcnRleC5lbnRyeVBvaW50LnV0ZjgoKTsKIAotICAgIFZlY3RvcjxDU3RyaW5n
PiB2ZXJ0ZXhDb25zdGFudE5hbWVzOwotICAgIHZlcnRleENvbnN0YW50TmFtZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLnZlcnRleC5jb25zdGFudHMuc2l6ZSgpKTsKLSAgICBm
b3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogZGVzY3JpcHRvci52ZXJ0ZXguY29uc3RhbnRzKQot
ICAgICAgICB2ZXJ0ZXhDb25zdGFudE5hbWVzLnVuY2hlY2tlZEFwcGVuZChjb25zdGFudC5rZXku
dXRmOCgpKTsKKyAgICBhdXRvIHZlcnRleENvbnN0YW50TmFtZXMgPSBkZXNjcmlwdG9yLnZlcnRl
eC5jb25zdGFudHMubWFwKFtdIChjb25zdCBhdXRvJiBjb25zdGFudCkgeworICAgICAgICByZXR1
cm4gY29uc3RhbnQua2V5LnV0ZjgoKTsKKyAgICB9KTsKIAogICAgIFZlY3RvcjxXR1BVQ29uc3Rh
bnRFbnRyeT4gdmVydGV4Q29uc3RhbnRFbnRyaWVzOwogICAgIHZlcnRleENvbnN0YW50RW50cmll
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IudmVydGV4LmNvbnN0YW50cy5zaXpl
KCkpOwpAQCAtMzIwLDIzICszMTMsMTggQEAgYXV0byBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29udmVydFRvQmFja2kKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgVmVjdG9yPFZlY3RvcjxXR1BVVmVydGV4QXR0cmlidXRlPj4g
YmFja2luZ0F0dHJpYnV0ZXM7Ci0gICAgYmFja2luZ0F0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShkZXNjcmlwdG9yLnZlcnRleC5idWZmZXJzLnNpemUoKSk7Ci0gICAgZm9yIChjb25z
dCBhdXRvJiBidWZmZXIgOiBkZXNjcmlwdG9yLnZlcnRleC5idWZmZXJzKSB7CisgICAgYXV0byBi
YWNraW5nQXR0cmlidXRlcyA9IGRlc2NyaXB0b3IudmVydGV4LmJ1ZmZlcnMubWFwKFsmY29udmVy
dFRvQmFja2luZ0NvbnRleHRdIChjb25zdCBhdXRvJiBidWZmZXIpIC0+IFZlY3RvcjxXR1BVVmVy
dGV4QXR0cmlidXRlPiB7CiAgICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIFZlY3Rv
cjxXR1BVVmVydGV4QXR0cmlidXRlPiBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgYXR0cmlidXRl
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGJ1ZmZlci0+YXR0cmlidXRlcy5zaXplKCkpOwotICAg
ICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBhdHRyaWJ1dGUgOiBidWZmZXItPmF0dHJpYnV0ZXMp
IHsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnVuY2hlY2tlZEFwcGVuZChXR1BVVmVydGV4
QXR0cmlidXRlIHsKKyAgICAgICAgICAgIHJldHVybiBidWZmZXItPmF0dHJpYnV0ZXMubWFwKFsm
Y29udmVydFRvQmFja2luZ0NvbnRleHRdIChjb25zdCBhdXRvJiBhdHRyaWJ1dGUpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV0dQVVZlcnRleEF0dHJpYnV0ZSB7CiAgICAgICAgICAgICAgICAg
ICAgIGNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmNvbnZlcnRUb0JhY2tpbmcoYXR0cmlidXRlLmZv
cm1hdCksCiAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS5vZmZzZXQsCiAgICAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZS5zaGFkZXJMb2NhdGlvbiwKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJhY2tpbmdBdHRyaWJ1dGVzLnVuY2hlY2tlZEFw
cGVuZChXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYmFja2luZ0F0dHJpYnV0ZXMudW5j
aGVja2VkQXBwZW5kKHsgfSk7Ci0gICAgfQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9
KTsKIAogICAgIFZlY3RvcjxXR1BVVmVydGV4QnVmZmVyTGF5b3V0PiBiYWNraW5nQnVmZmVyczsK
ICAgICBiYWNraW5nQnVmZmVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IudmVy
dGV4LmJ1ZmZlcnMuc2l6ZSgpKTsKQEAgLTM3Niw5ICszNjQsOSBAQCBhdXRvIGNvbnZlcnRUb0Jh
Y2tpbmcoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0
VG9CYWNraQogCiAgICAgVmVjdG9yPENTdHJpbmc+IGZyYWdtZW50Q29uc3RhbnROYW1lczsKICAg
ICBpZiAoZGVzY3JpcHRvci5mcmFnbWVudCkgewotICAgICAgICBmcmFnbWVudENvbnN0YW50TmFt
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmZyYWdtZW50LT5jb25zdGFudHMu
c2l6ZSgpKTsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb25zdGFudCA6IGRlc2NyaXB0b3Iu
ZnJhZ21lbnQtPmNvbnN0YW50cykKLSAgICAgICAgICAgIGZyYWdtZW50Q29uc3RhbnROYW1lcy51
bmNoZWNrZWRBcHBlbmQoY29uc3RhbnQua2V5LnV0ZjgoKSk7CisgICAgICAgIGZyYWdtZW50Q29u
c3RhbnROYW1lcyA9IGRlc2NyaXB0b3IuZnJhZ21lbnQtPmNvbnN0YW50cy5tYXAoW10gKGNvbnN0
IGF1dG8mIGNvbnN0YW50KSB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RhbnQua2V5LnV0Zjgo
KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgVmVjdG9yPFdHUFVDb25zdGFudEVudHJ5PiBm
cmFnbWVudENvbnN0YW50RW50cmllczsKQEAgLTM5NiwxMCArMzg0LDkgQEAgYXV0byBjb252ZXJ0
VG9CYWNraW5nKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29u
dmVydFRvQmFja2kKIAogICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFdHUFVCbGVuZFN0YXRlPj4g
YmxlbmRTdGF0ZXM7CiAgICAgaWYgKGRlc2NyaXB0b3IuZnJhZ21lbnQpIHsKLSAgICAgICAgYmxl
bmRTdGF0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmZyYWdtZW50LT50YXJn
ZXRzLnNpemUoKSk7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgdGFyZ2V0IDogZGVzY3JpcHRv
ci5mcmFnbWVudC0+dGFyZ2V0cykgeworICAgICAgICBibGVuZFN0YXRlcyA9IGRlc2NyaXB0b3Iu
ZnJhZ21lbnQtPnRhcmdldHMubWFwKFsmY29udmVydFRvQmFja2luZ0NvbnRleHRdIChjb25zdCBh
dXRvJiB0YXJnZXQpIC0+IHN0ZDo6b3B0aW9uYWw8V0dQVUJsZW5kU3RhdGU+IHsKICAgICAgICAg
ICAgIGlmICh0YXJnZXQuYmxlbmQpIHsKLSAgICAgICAgICAgICAgICBibGVuZFN0YXRlcy51bmNo
ZWNrZWRBcHBlbmQoV0dQVUJsZW5kU3RhdGUgeworICAgICAgICAgICAgICAgIHJldHVybiBXR1BV
QmxlbmRTdGF0ZSB7CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmNvbnZlcnRUb0JhY2tpbmcodGFyZ2V0LmJsZW5k
LT5jb2xvci5vcGVyYXRpb24pLAogICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFRvQmFj
a2luZ0NvbnRleHQuY29udmVydFRvQmFja2luZyh0YXJnZXQuYmxlbmQtPmNvbG9yLnNyY0ZhY3Rv
ciksCkBAIC00MDksMTAgKzM5NiwxMCBAQCBhdXRvIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUmVu
ZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0VG9CYWNraQogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udmVydFRvQmFja2luZ0NvbnRleHQuY29udmVydFRvQmFja2lu
Zyh0YXJnZXQuYmxlbmQtPmFscGhhLnNyY0ZhY3RvciksCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb252ZXJ0VG9CYWNraW5nQ29udGV4dC5jb252ZXJ0VG9CYWNraW5nKHRhcmdldC5ibGVuZC0+
YWxwaGEuZHN0RmFjdG9yKSwKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICBibGVuZFN0YXRlcy51bmNoZWNrZWRBcHBlbmQoc3RkOjpudWxsb3B0KTsKLSAgICAgICAg
fQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIH0pOwogICAg
IH0KIAogICAgIFZlY3RvcjxXR1BVQ29sb3JUYXJnZXRTdGF0ZT4gY29sb3JUYXJnZXRzOwpAQCAt
NTQwLDEwICs1MjcsOSBAQCBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rlcj4gRGV2aWNlSW1wbDo6Y3Jl
YXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBSZW5kZXJCdW5kbAogewogICAgIGF1dG8gbGFi
ZWwgPSBkZXNjcmlwdG9yLmxhYmVsLnV0ZjgoKTsKIAotICAgIFZlY3RvcjxXR1BVVGV4dHVyZUZv
cm1hdD4gYmFja2luZ0NvbG9yRm9ybWF0czsKLSAgICBiYWNraW5nQ29sb3JGb3JtYXRzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoZGVzY3JpcHRvci5jb2xvckZvcm1hdHMuc2l6ZSgpKTsKLSAgICBm
b3IgKGF1dG8gY29sb3JGb3JtYXQgOiBkZXNjcmlwdG9yLmNvbG9yRm9ybWF0cykKLSAgICAgICAg
YmFja2luZ0NvbG9yRm9ybWF0cy51bmNoZWNrZWRBcHBlbmQobV9jb252ZXJ0VG9CYWNraW5nQ29u
dGV4dC0+Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCkpOworICAgIGF1dG8gYmFja2luZ0Nv
bG9yRm9ybWF0cyA9IGRlc2NyaXB0b3IuY29sb3JGb3JtYXRzLm1hcChbdGhpc10gKGF1dG8gY29s
b3JGb3JtYXQpIHsKKyAgICAgICAgcmV0dXJuIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNv
bnZlcnRUb0JhY2tpbmcoY29sb3JGb3JtYXQpOworICAgIH0pOwogCiAgICAgV0dQVVJlbmRlckJ1
bmRsZUVuY29kZXJEZXNjcmlwdG9yIGJhY2tpbmdEZXNjcmlwdG9yIHsKICAgICAgICAgbnVsbHB0
ciwKQEAgLTU2MSwxMCArNTQ3LDkgQEAgUmVmPFF1ZXJ5U2V0PiBEZXZpY2VJbXBsOjpjcmVhdGVR
dWVyeVNldChjb25zdCBRdWVyeVNldERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgYXV0
byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwogCi0gICAgVmVjdG9yPFdHUFVQaXBl
bGluZVN0YXRpc3RpY05hbWU+IGJhY2tpbmdQaXBlbGluZVN0YXRpc3RpY3M7Ci0gICAgYmFja2lu
Z1BpcGVsaW5lU3RhdGlzdGljcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IucGlw
ZWxpbmVTdGF0aXN0aWNzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvIHBpcGVsaW5lU3RhdGlzdGlj
IDogZGVzY3JpcHRvci5waXBlbGluZVN0YXRpc3RpY3MpCi0gICAgICAgIGJhY2tpbmdQaXBlbGlu
ZVN0YXRpc3RpY3MudW5jaGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNv
bnZlcnRUb0JhY2tpbmcocGlwZWxpbmVTdGF0aXN0aWMpKTsKKyAgICBhdXRvIGJhY2tpbmdQaXBl
bGluZVN0YXRpc3RpY3MgPSBkZXNjcmlwdG9yLnBpcGVsaW5lU3RhdGlzdGljcy5tYXAoW3RoaXNd
IChhdXRvIHBpcGVsaW5lU3RhdGlzdGljKSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRUb0Jh
Y2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKHBpcGVsaW5lU3RhdGlzdGljKTsKKyAgICB9
KTsKIAogICAgIFdHUFVRdWVyeVNldERlc2NyaXB0b3IgYmFja2luZ0Rlc2NyaXB0b3IgewogICAg
ICAgICBudWxscHRyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVRdWV1ZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVRdWV1ZUltcGwuY3BwCmluZGV4IGUzNjQ0ZjQz
MzJjMDRmN2RkZjk1MTYyMjJlMGQ0ZDU1ZGY5MzM1NzQuLjYzOWZhNGFiZTY2ZGJkMTNkZGY4YzQ0
NTRmMzhmMDYzZmM1NTE5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5jcHAKQEAgLTQ5
LDEwICs0OSw5IEBAIFF1ZXVlSW1wbDo6flF1ZXVlSW1wbCgpCiAKIHZvaWQgUXVldWVJbXBsOjpz
dWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Q29tbWFuZEJ1ZmZlcj4+JiYgY29t
bWFuZEJ1ZmZlcnMpCiB7Ci0gICAgVmVjdG9yPFdHUFVDb21tYW5kQnVmZmVyPiBiYWNraW5nQ29t
bWFuZEJ1ZmZlcnM7Ci0gICAgYmFja2luZ0NvbW1hbmRCdWZmZXJzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoY29tbWFuZEJ1ZmZlcnMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gY29tbWFuZEJ1ZmZl
ciA6IGNvbW1hbmRCdWZmZXJzKQotICAgICAgICBiYWNraW5nQ29tbWFuZEJ1ZmZlcnMudW5jaGVj
a2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoY29t
bWFuZEJ1ZmZlci5nZXQoKSkpOworICAgIGF1dG8gYmFja2luZ0NvbW1hbmRCdWZmZXJzID0gY29t
bWFuZEJ1ZmZlcnMubWFwKFt0aGlzXSAoYXV0byBjb21tYW5kQnVmZmVyKSB7CisgICAgICAgIHJl
dHVybiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGNvbW1hbmRC
dWZmZXIpOworICAgIH0pOwogCiAgICAgd2dwdVF1ZXVlU3VibWl0KG1fYmFja2luZywgYmFja2lu
Z0NvbW1hbmRCdWZmZXJzLnNpemUoKSwgYmFja2luZ0NvbW1hbmRCdWZmZXJzLmRhdGEoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAKaW5k
ZXggNDRhYTgzMTg4NmExYjBlZGNkMGY3OTk5ZGMxMjA4ZDc1NDRkZGRmMC4uNWExZjkyNDY2ZWJi
ODIyZjA3NzE5ZGU3ZGViNDNmOGYwODNlOGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVSZW5kZXJQYXNzRW5jb2RlckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVUmVuZGVyUGFzc0VuY29kZXJJbXBsLmNwcApAQCAtMTY4LDEwICsxNjgsOSBAQCB2b2lkIFJl
bmRlclBhc3NFbmNvZGVySW1wbDo6ZW5kUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkoKQogCiB2b2lk
IFJlbmRlclBhc3NFbmNvZGVySW1wbDo6ZXhlY3V0ZUJ1bmRsZXMoVmVjdG9yPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8UmVuZGVyQnVuZGxlPj4mJiByZW5kZXJCdW5kbGVzKQogewotICAgIFZlY3Rv
cjxXR1BVUmVuZGVyQnVuZGxlPiBiYWNraW5nQnVuZGxlczsKLSAgICBiYWNraW5nQnVuZGxlcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlbmRlckJ1bmRsZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1
dG8gcmVuZGVyQnVuZGxlIDogcmVuZGVyQnVuZGxlcykKLSAgICAgICAgYmFja2luZ0J1bmRsZXMu
dW5jaGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tp
bmcocmVuZGVyQnVuZGxlLmdldCgpKSk7CisgICAgYXV0byBiYWNraW5nQnVuZGxlcyA9IHJlbmRl
ckJ1bmRsZXMubWFwKFt0aGlzXSAoYXV0byByZW5kZXJCdW5kbGUpIHsKKyAgICAgICAgcmV0dXJu
IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcocmVuZGVyQnVuZGxl
LmdldCgpKTsKKyAgICB9KTsKIAogICAgIHdncHVSZW5kZXJQYXNzRW5jb2RlckV4ZWN1dGVCdW5k
bGVzKG1fYmFja2luZywgYmFja2luZ0J1bmRsZXMuc2l6ZSgpLCBiYWNraW5nQnVuZGxlcy5kYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVUZXh0dXJlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcAppbmRleCA4NWY2MzBjYzA5
NTAxNThhMmU0NDhlZTlhMDcwYmVkNDU0ZDdkYjNiLi40MDc3NTZiNDQ3MWNkMTQ4YmVjNjQzOTBj
OTA2M2Q2NzQ4N2QxOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcApAQCAt
NDksNyArNDksNyBAQCBUZXh0dXJlSW1wbDo6flRleHR1cmVJbXBsKCkKICAgICB3Z3B1VGV4dHVy
ZVJlbGVhc2UobV9iYWNraW5nKTsKIH0KIAotUmVmPFRleHR1cmVWaWV3PiBUZXh0dXJlSW1wbDo6
Y3JlYXRlVmlldyhjb25zdCBzdGQ6Om9wdGlvbmFsPFRleHR1cmVWaWV3RGVzY3JpcHRvcj4mIGRl
c2NyaXB0b3IpIGNvbnN0CitSZWY8VGV4dHVyZVZpZXc+IFRleHR1cmVJbXBsOjpjcmVhdGVWaWV3
KGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikK
IHsKICAgICBDU3RyaW5nIGxhYmVsID0gZGVzY3JpcHRvciA/IGRlc2NyaXB0b3ItPmxhYmVsLnV0
ZjgoKSA6IENTdHJpbmcoIiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCmlu
ZGV4IDAxNjA0YzEzODFhZTk1OTUxOGY4MDBjYjZjY2M1OGYxZjlmNjYzZjIuLmM1YWVmZWM4YThm
YzBkY2FjOGY4NDNiYzlhYWY0M2MxOGQ0YTZlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5oCkBAIC00MCw2ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENvbXBpbGF0aW9uTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpLCB0eXBlLCBsaW5l
TnVtLCBsaW5lUG9zLCBvZmZzZXQsIGxlbmd0aCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8
Q29tcGlsYXRpb25NZXNzYWdlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBDb21waWxh
dGlvbk1lc3NhZ2VUeXBlIHR5cGUsIHVpbnQ2NF90IGxpbmVOdW0sIHVpbnQ2NF90IGxpbmVQb3Ms
IHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ29tcGlsYXRpb25NZXNzYWdlKG1lc3NhZ2UsIHR5cGUsIGxpbmVOdW0s
IGxpbmVQb3MsIG9mZnNldCwgbGVuZ3RoKSk7CisgICAgfQorCiAgICAgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgQ29tcGlsYXRpb25NZXNz
YWdlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdWludDY0X3QgbGlu
ZU51bSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bTsgfQpAQCAtNDcsNyArNTIsNyBAQCBwdWJs
aWM6CiAgICAgdWludDY0X3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAg
ICB1aW50NjRfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogCi1wcm90ZWN0
ZWQ6Citwcml2YXRlOgogICAgIENvbXBpbGF0aW9uTWVzc2FnZShTdHJpbmcmJiBtZXNzYWdlLCBD
b21waWxhdGlvbk1lc3NhZ2VUeXBlIHR5cGUsIHVpbnQ2NF90IGxpbmVOdW0sIHVpbnQ2NF90IGxp
bmVQb3MsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgbGVuZ3RoKQogICAgICAgICA6IG1fbWVz
c2FnZShXVEZNb3ZlKG1lc3NhZ2UpKQogICAgICAgICAsIG1fdHlwZSh0eXBlKQpAQCAtNTgsNyAr
NjMsMTYgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLXByaXZhdGU6CisgICAgQ29tcGls
YXRpb25NZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgQ29tcGlsYXRpb25NZXNzYWdlVHlw
ZSB0eXBlLCB1aW50NjRfdCBsaW5lTnVtLCB1aW50NjRfdCBsaW5lUG9zLCB1aW50NjRfdCBvZmZz
ZXQsIHVpbnQ2NF90IGxlbmd0aCkKKyAgICAgICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAg
ICAgLCBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2xpbmVOdW0obGluZU51bSkKKyAgICAgICAg
LCBtX2xpbmVQb3MobGluZVBvcykKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgICAg
ICwgbV9sZW5ndGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKICAgICBDb21waWxhdGlvbk1lc3Nh
Z2UoY29uc3QgQ29tcGlsYXRpb25NZXNzYWdlJikgPSBkZWxldGU7CiAgICAgQ29tcGlsYXRpb25N
ZXNzYWdlKENvbXBpbGF0aW9uTWVzc2FnZSYmKSA9IGRlbGV0ZTsKICAgICBDb21waWxhdGlvbk1l
c3NhZ2UmIG9wZXJhdG9yPShjb25zdCBDb21waWxhdGlvbk1lc3NhZ2UmKSA9IGRlbGV0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1
cHBvcnRlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCmluZGV4IGVlMGIyNGQ1NTc5ZmVhMDY5OTEyZmEw
YzhiOTRhOTBmZGY4YmIwYmUuLmI2YzlmNmQ4OTJhZDFkNTYzZmNlMDRjMTMxMzA0NTFhODUzZDBh
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaApAQCAtMzgsNiArMzgsMTEgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdXBwb3J0ZWRGZWF0dXJlcyhX
VEZNb3ZlKGZlYXR1cmVzKSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8U3VwcG9ydGVkRmVh
dHVyZXM+IGNyZWF0ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmVhdHVyZXMpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdXBwb3J0ZWRGZWF0dXJlcyhmZWF0dXJlcykpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+IGNsb25lKGNvbnN0IFN1
cHBvcnRlZEZlYXR1cmVzJiBmZWF0dXJlcykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFN1cHBvcnRlZEZlYXR1cmVzKFZlY3RvcjxTdHJpbmc+KGZlYXR1cmVzLmZlYXR1cmVz
KCkpKSk7CkBAIC00NSwxMyArNTAsMTcgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCi1wcm90ZWN0
ZWQ6Citwcml2YXRlOgogICAgIFN1cHBvcnRlZEZlYXR1cmVzKFZlY3RvcjxTdHJpbmc+JiYgZmVh
dHVyZXMpCiAgICAgICAgIDogbV9mZWF0dXJlcyhXVEZNb3ZlKGZlYXR1cmVzKSkKICAgICB7CiAg
ICAgfQogCi1wcml2YXRlOgorICAgIFN1cHBvcnRlZEZlYXR1cmVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmZWF0dXJlcykKKyAgICAgICAgOiBtX2ZlYXR1cmVzKGZlYXR1cmVzKQorICAgIHsKKyAg
ICB9CisKICAgICBTdXBwb3J0ZWRGZWF0dXJlcyhjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYpID0g
ZGVsZXRlOwogICAgIFN1cHBvcnRlZEZlYXR1cmVzKFN1cHBvcnRlZEZlYXR1cmVzJiYpID0gZGVs
ZXRlOwogICAgIFN1cHBvcnRlZEZlYXR1cmVzJiBvcGVyYXRvcj0oY29uc3QgU3VwcG9ydGVkRmVh
dHVyZXMmKSA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKaW5kZXggY2E0ZmNh
YmU5ZjIyMzJiYTk3OGQwM2I1NzllYjI0YmNlNjNhMjk5OC4uY2MwODMzM2YyNGZjODM1MzMyZGYz
MmFlMjg0YTI4ZDIyZmExNGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTE0
OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgbWF4Q29tcHV0ZVdvcmtncm91cFNp
emVaKCkgY29uc3QgeyByZXR1cm4gbV9tYXhDb21wdXRlV29ya2dyb3VwU2l6ZVo7IH0KICAgICB1
aW50MzJfdCBtYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVuc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG1fbWF4Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb247IH0KIAotcHJvdGVjdGVkOgorcHJp
dmF0ZToKICAgICBTdXBwb3J0ZWRMaW1pdHMoCiAgICAgICAgIHVpbnQzMl90IG1heFRleHR1cmVE
aW1lbnNpb24xRCwKICAgICAgICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjJELApAQCAt
MjA1LDcgKzIwNSw2IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi1wcml2YXRlOgogICAg
IFN1cHBvcnRlZExpbWl0cyhjb25zdCBTdXBwb3J0ZWRMaW1pdHMmKSA9IGRlbGV0ZTsKICAgICBT
dXBwb3J0ZWRMaW1pdHMoU3VwcG9ydGVkTGltaXRzJiYpID0gZGVsZXRlOwogICAgIFN1cHBvcnRl
ZExpbWl0cyYgb3BlcmF0b3I9KGNvbnN0IFN1cHBvcnRlZExpbWl0cyYpID0gZGVsZXRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmFs
aWRhdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuaAppbmRleCA0ZjJmMTc1YjdkOTMwMWQzMzUzZGNjMmMxOWIz
NDNmNGY0NzU3ZDRjLi42NTEyN2U4NTUxYTAzNTgzZDUxOWY2ZjBhMjg4YWNhNWFmZTM1ODFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVW
YWxpZGF0aW9uRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaApAQCAtMzgsNiArMzgsMTEgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWYWxpZGF0aW9uRXJyb3IoV1RGTW92ZShtZXNz
YWdlKSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8VmFsaWRhdGlvbkVycm9yPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UpKTsKKyAgICB9CisKICAgICBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KIAogcHJpdmF0ZToKQEAgLTQ2
LDYgKzUxLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAorICAgIFZhbGlkYXRpb25FcnJv
cihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9tZXNzYWdlKG1lc3NhZ2UpCisg
ICAgeworICAgIH0KKwogICAgIFZhbGlkYXRpb25FcnJvcihjb25zdCBWYWxpZGF0aW9uRXJyb3Im
KSA9IGRlbGV0ZTsKICAgICBWYWxpZGF0aW9uRXJyb3IoVmFsaWRhdGlvbkVycm9yJiYpID0gZGVs
ZXRlOwogICAgIFZhbGlkYXRpb25FcnJvciYgb3BlcmF0b3I9KGNvbnN0IFZhbGlkYXRpb25FcnJv
ciYpID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5jcHAKaW5kZXggYzYwZTk0ZjZjMjEw
YjBiMGMwOWFhZmE4OTY2NDdlZDFmZjc2OTU5NS4uMDkxMjIxOTRlY2M3ZWY2OTBmMDYyN2M4OGFk
Mjk0ZTUzOTNhNzMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0VuY29k
ZXIuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGlu
ZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmg+CisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmUuaD4KICNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0Lmg+CiAjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldC5oPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUuaD4KQEAgLTYwLDcgKzYxLDcgQEAgT2JqZWN0SGVh
cDo6fk9iamVjdEhlYXAoKQogewogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciogT2Jq
ZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCitQQUw6OldlYkdQVTo6QWRhcHRlciogT2JqZWN0SGVhcDo6Y29udmVydEFkYXB0ZXJG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVy
YXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBt
X29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BV
OjpBZGFwdGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTY4LDcgKzY5LDcgQEAgY29uc3QgUEFM
OjpXZWJHUFU6OkFkYXB0ZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmkKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkJp
bmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIE9iamVjdEhlYXA6
OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAg
IGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRp
dmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXA+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtNzYs
NyArNzcsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBPYmplY3RIZWFwOjpjb252
ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbgogICAgIHJldHVybiBzdGQ6OmdldDxS
ZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAK
LWNvbnN0IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRC
aW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQ
QUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3Vw
TGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1
dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0
b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0Pj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTg0LDcgKzg1
LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogT2JqZWN0SGVhcDo6Y29u
dmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW4KICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBB
TDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQog
Ci1jb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QnVmZmVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkJ1ZmZl
ciogT2JqZWN0SGVhcDo6Y29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRp
Zmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkp
CkBAIC05Miw3ICs5Myw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIE9iamVjdEhlYXA6
OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyCiAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsK
IH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZl
cnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQor
UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kQnVm
ZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6Oldl
YkdQVTo6Q29tbWFuZEJ1ZmZlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMDAsNyArMTAxLDcg
QEAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRD
b21tYW5kQnVmZmVyRnJvbUJhY2tpbmcoV2UKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29u
c3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tbWFu
ZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6Oldl
YkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJh
dG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1f
b2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6
OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTEwOCw3ICsxMDksNyBAQCBj
b25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21t
YW5kRW5jb2RlckZyb21CYWNraW5nKAogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3Qg
UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1
dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BB
TDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRl
UGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAt
MTE2LDcgKzExNyw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIE9i
amVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9tCiAgICAgcmV0dXJuIHN0ZDo6
Z2V0PFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVyPj4oaXRlcmF0b3ItPnZhbHVl
KS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0
SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNv
bnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwog
ICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUp
KQpAQCAtMTI0LDcgKzEyNSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmUq
IE9iamVjdEhlYXA6OmNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luCiAgICAgcmV0dXJu
IHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPj4oaXRlcmF0b3ItPnZh
bHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZSogT2JqZWN0SGVhcDo6
Y29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BB
TDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2Jq
ZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5k
KCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+Pihp
dGVyYXRvci0+dmFsdWUpKQpAQCAtMTMyLDcgKzEzMywxNSBAQCBjb25zdCBQQUw6OldlYkdQVTo6
RGV2aWNlKiBPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcgogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4+KGl0ZXJh
dG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIE9iamVjdEhl
YXA6OmNvbnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQ
QUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0RXh0ZXJuYWxU
ZXh0dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1
dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0
b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6
OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6RXh0ZXJu
YWxUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKK30KKworUEFMOjpXZWJHUFU6OkdQ
VSogT2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmll
cik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0x
NDAsNyArMTQ5LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVy
dEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnQKICAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpHUFU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1j
b25zdCBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQqIE9iamVjdEhlYXA6OmNvbnZlcnRQaXBl
bGluZUxheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRl
cmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQ
VTo6UGlwZWxpbmVMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTQ4LDcgKzE1Nyw3IEBA
IGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogT2JqZWN0SGVhcDo6Y29udmVydFBp
cGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6Oldl
YkdQVTo6UGlwZWxpbmVMYXlvdXQ+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25z
dCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIE9iamVjdEhlYXA6OmNvbnZlcnRRdWVyeVNldEZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpRdWVyeVNl
dCogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
ciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVu
dGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6Omhv
bGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+PihpdGVyYXRvci0+dmFs
dWUpKQpAQCAtMTU2LDcgKzE2NSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogT2Jq
ZWN0SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpCiAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UXVlcnlTZXQ+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UXVldWUqIE9iamVjdEhlYXA6OmNvbnZl
cnRRdWV1ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2Vi
R1BVOjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmlu
ZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFz
dGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+
dmFsdWUpKQpAQCAtMTY0LDcgKzE3Myw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogT2Jq
ZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpCiAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UXVldWU+PihpdGVyYXRvci0+dmFsdWUp
LnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogT2Jq
ZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogT2Jq
ZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5k
KGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0
ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVy
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTE3Miw3ICsxODEsNyBAQCBjb25zdCBQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVu
Y29kZXJGcgogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJh
dG9yLT52YWx1ZSkpCkBAIC0xODAsNyArMTg5LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkcK
ICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGU+PihpdGVy
YXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Vu
Y29kZXIqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rl
ciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMu
ZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8
ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29k
ZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTg4LDcgKzE5Nyw3IEBAIGNvbnN0IFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBhc3NFbmNv
ZGVyRnJvbUJhCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGFz
c0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQ
VTo6UmVuZGVyUGlwZWxpbmUqIE9iamVjdEhlYXA6OmNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpSZW5kZXJQ
aXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVj
dHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgp
IHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxp
bmU+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTk2LDcgKzIwNSw3IEBAIGNvbnN0IFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJv
bUJhY2tpbmcoCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlw
ZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6
U2FtcGxlciogT2JqZWN0SGVhcDo6Y29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6U2FtcGxlciogT2JqZWN0SGVhcDo6Y29u
dmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpTYW1wbGVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTIwNCw3ICsyMTMs
NyBAQCBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogT2JqZWN0SGVhcDo6Y29udmVydFNhbXBs
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFM
OjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQ
QUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmplY3RIZWFwOjpjb252ZXJ0U2hhZGVyTW9kdWxl
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlNo
YWRlck1vZHVsZSogT2JqZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmpl
Y3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQo
KSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVs
ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0yMTIsNyArMjIxLDcgQEAgY29uc3QgUEFMOjpXZWJH
UFU6OlNoYWRlck1vZHVsZSogT2JqZWN0SGVhcDo6Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNr
aW5nKFdlYkcKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1
bGU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6VGV4
dHVyZSogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6VGV4dHVyZSogT2JqZWN0SGVhcDo6Y29udmVy
dFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAg
YXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVy
YXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBB
TDo6V2ViR1BVOjpUZXh0dXJlPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTIyMCw3ICsyMjksNyBA
QCBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZSogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaQogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6
OldlYkdQVTo6VGV4dHVyZVZpZXcqIE9iamVjdEhlYXA6OmNvbnZlcnRUZXh0dXJlVmlld0Zyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpUZXh0dXJl
VmlldyogT2JqZWN0SGVhcDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmlu
ZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFz
dGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXc+PihpdGVy
YXRvci0+dmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVPYmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaAppbmRleCA1NDZkMWU1MTc5N2I2NmEw
ZTM2ZTY4YjdjNTEwYmI1MDJiZDAxOTY0Li45ZDhmYTEwNDQ3MzU1NTNmOTQ1NmUxNTdjM2ZjNTkx
MTlmMzRmOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaApAQCAtNDcsMjcgKzQ3LDI4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgT2JqZWN0SGVhcCgpOwogCi0gICAgY29uc3QgUEFMOjpXZWJH
UFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogY29udmVydEJpbmRHcm91
cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2Vi
R1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6QnVmZmVyKiBj
b252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29u
c3QgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkNv
bW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVy
KiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogY29udmVydENv
bXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNvbnZlcnREZXZpY2VGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BV
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJH
UFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UXVlcnlTZXQqIGNv
bnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29k
ZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJl
bmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0
IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVy
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJH
UFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6U2FtcGxlciogY29u
dmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25z
dCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1
cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Ci0g
ICAgY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6QWRhcHRl
ciogY29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCog
Y29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogY29u
dmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIGNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpDb21wdXRl
UGFzc0VuY29kZXIqIGNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252
ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7Cisg
ICAgUEFMOjpXZWJHUFU6OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUqIGNvbnZl
cnRFeHRlcm5hbFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBQQUw6OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxp
bmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6Oldl
YkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1ZXVlRnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRs
ZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZSogY29udmVydFJl
bmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6
V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogY29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBp
cGVsaW5lKiBjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
KSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6U2hhZGVyTW9k
dWxlKiBjb252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmlu
YWw7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBj
b252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKIAog
ICAgIHVzaW5nIE9iamVjdCA9IHN0ZDo6dmFyaWFudDwKICAgICAgICAgUmVmPFBBTDo6V2ViR1BV
OjpBZGFwdGVyPiwKQEAgLTc5LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXI+LAogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkNv
bXB1dGVQaXBlbGluZT4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPiwKKyAgICAg
ICAgUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+LAogICAgICAgICBSZWY8UEFMOjpX
ZWJHUFU6OkdQVT4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQ+LAog
ICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCmluZGV4IDg1MmMyNThjN2U0YzJj
MzI4ZDUwN2I5ZjUyYWM0Nzg1OWYzMWJkZTguLmM2N2UyZDFlM2Q1ZGQwYjk4YTg3NzVjZWE2ZWQ5
Yjc4ZTU5M2ViMGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11
bmlmaWVkLXNvdXJjZXMuc2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVu
aWZpZWQtc291cmNlcy5zaApAQCAtMTQsNyArMTQsNyBAQCBpZiBbIC16ICIke0JVSUxEX1NDUklQ
VFNfRElSfSIgXTsgdGhlbgogICAgIGZpCiBmaQogCi1VbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50
PTEwMworVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0xMTEKIFVuaWZpZWRTb3VyY2VNbUZpbGVD
b3VudD04MAogCiBpZiBbICQjIC1lcSAwIF07IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMjY2YmQxYjczNzliMDRkNTJkYjBjZDFiOTQwNjliZTFhOTRmZWU5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2Ny
aXB0b3IuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3Jp
cHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3VwRGVzY3JpcHRvciYgYmluZEdyb3Vw
RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGlj
X2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihiaW5kR3JvdXBEZXNjcmlwdG9yKSk7
CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0
byogYmluZEdyb3VwTGF5b3V0ID0gY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKGJp
bmRHcm91cERlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0KTsKKyAgICBpZiAoIWJpbmRHcm91cExh
eW91dCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3RvcjxQQUw6Oldl
YkdQVTo6QmluZEdyb3VwRW50cnk+IGVudHJpZXM7CisgICAgZW50cmllcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGJpbmRHcm91cERlc2NyaXB0b3IuZW50cmllcy5zaXplKCkpOworICAgIGZvciAo
Y29uc3QgYXV0byYgYmFja2luZ0VudHJ5IDogYmluZEdyb3VwRGVzY3JpcHRvci5lbnRyaWVzKSB7
CisgICAgICAgIGF1dG8gZW50cnkgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmFja2luZ0VudHJ5KTsK
KyAgICAgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIGVudHJpZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmVudHJ5KSk7CisgICAgfQor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgKmJpbmRHcm91cExheW91dCwgV1RGTW92
ZShlbnRyaWVzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKaW5kZXggYmNjZTViOTM4NmQ4OWY3YzBh
MTNjOGNhNTNkZDkzYmZlMjVkM2FkZC4uNmEzNGQxOWQyZDM3OGRjYWQ3NGE0OGJhYzBmMzI0NDU5
N2I3Y2RjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC0yNSw5ICsyNSwxMiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91
cEVudHJ5LmgiCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNjUsMyArNjgs
NSBAQCBzdHJ1Y3QgQmluZEdyb3VwRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDgzMmRkMDU3YjU1OGE5Yjkw
MThkMDc2Yzc5MjM0ODYyMjg5N2M0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3Jv
dXBFbnRyeS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwRW50cnk+IENvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBFbnRyeSYg
YmluZEdyb3VwRW50cnkpCit7CisgICAgc3dpdGNoIChiaW5kR3JvdXBFbnRyeS50eXBlKSB7Cisg
ICAgY2FzZSBCaW5kaW5nUmVzb3VyY2VUeXBlOjpTYW1wbGVyOiB7CisgICAgICAgIGF1dG8qIHNh
bXBsZXIgPSBjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKGJpbmRHcm91cEVudHJ5LmlkZW50aWZp
ZXIpOworICAgICAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICByZXR1cm4geyB7IGJpbmRHcm91cEVudHJ5LmJpbmRpbmcsIHsgKnNhbXBs
ZXIgfSB9IH07CisgICAgfQorICAgIGNhc2UgQmluZGluZ1Jlc291cmNlVHlwZTo6VGV4dHVyZVZp
ZXc6IHsKKyAgICAgICAgYXV0byogdGV4dHVyZVZpZXcgPSBjb252ZXJ0VGV4dHVyZVZpZXdGcm9t
QmFja2luZyhiaW5kR3JvdXBFbnRyeS5pZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCF0ZXh0dXJl
VmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7
IHsgYmluZEdyb3VwRW50cnkuYmluZGluZywgeyAqdGV4dHVyZVZpZXcgfSB9IH07CisgICAgfQor
ICAgIGNhc2UgQmluZGluZ1Jlc291cmNlVHlwZTo6QnVmZmVyQmluZGluZzogeworICAgICAgICBh
dXRvIGJ1ZmZlckJpbmRpbmcgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmluZEdyb3VwRW50cnkuYnVm
ZmVyQmluZGluZyk7CisgICAgICAgIGlmICghYnVmZmVyQmluZGluZykKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50cnkuYmlu
ZGluZywgeyAqYnVmZmVyQmluZGluZyB9IH0gfTsKKyAgICB9CisgICAgY2FzZSBCaW5kaW5nUmVz
b3VyY2VUeXBlOjpFeHRlcm5hbFRleHR1cmU6IHsKKyAgICAgICAgYXV0byogZXh0ZXJuYWxUZXh0
dXJlID0gY29udmVydEV4dGVybmFsVGV4dHVyZUZyb21CYWNraW5nKGJpbmRHcm91cEVudHJ5Lmlk
ZW50aWZpZXIpOworICAgICAgICBpZiAoIWV4dGVybmFsVGV4dHVyZSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdyb3VwRW50cnkuYmlu
ZGluZywgeyAqZXh0ZXJuYWxUZXh0dXJlIH0gfSB9OworICAgIH0KKyAgICB9CisKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmgKaW5kZXggZDJmNDlkNTA4NDM3ZGJjOWRm
YmFkN2JlZDg2MTEzMWFjN2Q0ZThlMC4uNTNhMWI0MjMwYTIwZWIyNGI5YmM2NjRhYjlmZTBmOTU4
ZjZmZDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cEVudHJ5LmgKQEAgLTI1LDkgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyQmluZGluZy5oIgog
I2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdy
YWxUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtOTQsMyArOTcsNSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2ViR1BVOjpCaW5kaW5nUmVz
b3VyY2VUeXBlPiB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MDY0ODRlOWQyYzBjYjNkZWQ0MmZhMmQwZjFlZjhlOTU4MDIyOTQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5n
Q29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvciYgYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJh
c2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPihiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpCaW5k
R3JvdXBMYXlvdXRFbnRyeT4gZW50cmllczsKKyAgICBlbnRyaWVzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5lbnRyaWVzLnNpemUoKSk7CisgICAgZm9y
IChjb25zdCBhdXRvJiBiYWNraW5nRW50cnkgOiBiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmVu
dHJpZXMpIHsKKyAgICAgICAgYXV0byBlbnRyeSA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5n
RW50cnkpOworICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgZW50cmllcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZW50cnkpKTsK
KyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKGVudHJpZXMp
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaAppbmRleCBiNGYwY2I0YzY2MmVmM2Fm
MmRhNTU4MjA5ZjJjNzA4YTUwOWM0NTViLi40N2EyZTAyYzNjNjVhZWQ0NTNiZmZjMTE5MmE5YTY1
NWI2N2Y1YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0
IEJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NTcxMjYxMzE5
ZTU3N2Q3ZjkzMTAxZWQ4YjBlMWMzMzliYjc2ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwCkBAIC0w
LDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5Lmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJp
bmRHcm91cExheW91dEVudHJ5PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgQmluZEdyb3VwTGF5b3V0RW50cnkmIGJpbmRHcm91cExheW91dEVudHJ5
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQ+
IGJ1ZmZlcjsKKyAgICBpZiAoYmluZEdyb3VwTGF5b3V0RW50cnkuYnVmZmVyKSB7CisgICAgICAg
IGJ1ZmZlciA9IGNvbnZlcnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkuYnVmZmVy
KTsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5n
TGF5b3V0PiBzYW1wbGVyOworICAgIGlmIChiaW5kR3JvdXBMYXlvdXRFbnRyeS5zYW1wbGVyKSB7
CisgICAgICAgIHNhbXBsZXIgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJpbmRHcm91cExheW91dEVu
dHJ5LnNhbXBsZXIpOworICAgICAgICBpZiAoIXNhbXBsZXIpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRl
eHR1cmVCaW5kaW5nTGF5b3V0PiB0ZXh0dXJlOworICAgIGlmIChiaW5kR3JvdXBMYXlvdXRFbnRy
eS50ZXh0dXJlKSB7CisgICAgICAgIHRleHR1cmUgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJpbmRH
cm91cExheW91dEVudHJ5LnRleHR1cmUpOworICAgICAgICBpZiAoIXRleHR1cmUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4gc3RvcmFnZVRleHR1cmU7Cisg
ICAgaWYgKGJpbmRHcm91cExheW91dEVudHJ5LnN0b3JhZ2VUZXh0dXJlKSB7CisgICAgICAgIHN0
b3JhZ2VUZXh0dXJlID0gY29udmVydEZyb21CYWNraW5nKCpiaW5kR3JvdXBMYXlvdXRFbnRyeS5z
dG9yYWdlVGV4dHVyZSk7CisgICAgICAgIGlmICghc3RvcmFnZVRleHR1cmUpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGV4dGVybmFsVGV4dHVyZTsKKyAg
ICBpZiAoYmluZEdyb3VwTGF5b3V0RW50cnkuZXh0ZXJuYWxUZXh0dXJlKSB7CisgICAgICAgIGV4
dGVybmFsVGV4dHVyZSA9IGNvbnZlcnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnku
ZXh0ZXJuYWxUZXh0dXJlKTsKKyAgICAgICAgaWYgKCFleHRlcm5hbFRleHR1cmUpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiB7IHsgYmluZEdy
b3VwTGF5b3V0RW50cnkuYmluZGluZywgYmluZEdyb3VwTGF5b3V0RW50cnkudmlzaWJpbGl0eSwg
V1RGTW92ZShidWZmZXIpLCBXVEZNb3ZlKHNhbXBsZXIpLCBXVEZNb3ZlKHRleHR1cmUpLCBXVEZN
b3ZlKHN0b3JhZ2VUZXh0dXJlKSwgV1RGTW92ZShleHRlcm5hbFRleHR1cmUpIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5
b3V0RW50cnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXRFbnRyeS5oCmluZGV4IGI4MzBhNTkxNDg5NmU1ZGY3MjUyZmY0ZDBjNjMyMDVjNTk3ZGRj
MWEuLjdiNTRhMjcwMmJkZTdkYWZkODlmZDA5ZWQxYTQ3MTBlNTdkMjcxYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRF
bnRyeS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oIgogI2lu
Y2x1ZGUgIldlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKICNpbmNsdWRlICJX
ZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oIgpAQCAtOTksMyArMTAxLDUgQEAgc3RydWN0IEJp
bmRHcm91cExheW91dEVudHJ5IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTc2
YjBiZmQwZTRmZTJjMzYxYjUyMDVkYTgwZmU5ZmE3YmEzNTZmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdQVUJsZW5kQ29tcG9uZW50LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZENvbXBvbmVu
dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJs
ZW5kQ29tcG9uZW50JiBibGVuZENvbXBvbmVudCkKK3sKKyAgICByZXR1cm4geyB7IGJsZW5kQ29t
cG9uZW50Lm9wZXJhdGlvbiwgYmxlbmRDb21wb25lbnQuc3JjRmFjdG9yLCBibGVuZENvbXBvbmVu
dC5kc3RGYWN0b3IgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCbGVuZENvbXBvbmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUJsZW5kQ29tcG9uZW50LmgKaW5kZXggZWViZjkzZTc0YjJiNzFjNWQ2ZWQ0NmEwNzY4
MTA3OThhZmNkMDhmZS4uZDJiYjE4YzAxOGJlOWUxYjgzZmE1NWQ0ZTM5NzM4Zjc1MGVlNTllZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9u
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9u
ZW50LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJsZW5kRmFjdG9yLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCbGVuZE9wZXJhdGlvbi5oPgogCkBAIC02NCwzICs2Nyw1IEBAIHN0cnVjdCBCbGVu
ZENvbXBvbmVudCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJsZW5kU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNGQyZTc5YTQ4ZTI4N2E2ODc0
MmUyMzE5MGFkNzZhNjcyMzkxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCbGVuZFN0YXRlLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVC
bGVuZFN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkJsZW5kU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBCbGVuZFN0YXRlJiBibGVuZFN0YXRlKQoreworICAgIGF1
dG8gY29sb3IgPSBjb252ZXJ0RnJvbUJhY2tpbmcoYmxlbmRTdGF0ZS5jb2xvcik7CisgICAgaWYg
KCFjb2xvcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYWxwaGEg
PSBjb252ZXJ0RnJvbUJhY2tpbmcoYmxlbmRTdGF0ZS5hbHBoYSk7CisgICAgaWYgKCFhbHBoYSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgq
Y29sb3IpLCBXVEZNb3ZlKCphbHBoYSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCmluZGV4IDllODRiYWNlOWVhOTliMzA1YTM2OTA2
MmVlYmE2NTlkNjI5ZThmYTguLjk3MzYwZTI3YTJhZjJmOTcwMzFiNDA2ZmEyZDdjZjAwNDBlZjk2
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUu
aApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVCbGVuZENvbXBvbmVudC5oIgorI2luY2x1ZGUgPG9w
dGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCkBAIC01NiwzICs1OSw1IEBA
IHN0cnVjdCBCbGVuZFN0YXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZiYzlk
OTRhOGJiZTEzODEyN2E2ZWM2ZTU5ZDUzYWE3ZGEwNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVUJ1ZmZlckJpbmRpbmcuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZz4gQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckJp
bmRpbmcmIGJ1ZmZlckJpbmRpbmcpCit7CisgICAgYXV0byogYnVmZmVyID0gY29udmVydEJ1ZmZl
ckZyb21CYWNraW5nKGJ1ZmZlckJpbmRpbmcuYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgKmJ1ZmZlciwgYnVm
ZmVyQmluZGluZy5vZmZzZXQsIGJ1ZmZlckJpbmRpbmcuc2l6ZSB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKaW5kZXggMzE2
YjQxNjhhMWQ5YzUxMjI4NGRhM2VmNmE2MjBhMjczNzg1OGIwZi4uYTViMGExZTE2MTkwOTZlOGYz
N2RhYmM2ZjhlYThmZjFkMWNhMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgpAQCAtNjYsMyArNjgsNSBAQCBzdHJ1Y3QgQnVmZmVy
QmluZGluZyB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2OGMz
NDdhNmE5OTQxMDE2ZjgxNWM2ODA2NmJhOTBmNDhhYWUzZmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkJ1ZmZlckJpbmRpbmdMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBCdWZmZXJCaW5kaW5nTGF5b3V0JiBidWZmZXJCaW5kaW5nTGF5b3V0
KQoreworICAgIHJldHVybiB7IHsgYnVmZmVyQmluZGluZ0xheW91dC50eXBlLCBidWZmZXJCaW5k
aW5nTGF5b3V0Lmhhc0R5bmFtaWNPZmZzZXQsIGJ1ZmZlckJpbmRpbmdMYXlvdXQubWluQmluZGlu
Z1NpemUgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCmluZGV4IGY5ZDExMGU0YjBiYmU2NWIzZWY1YTI2
ZGRmMWNlMzJkNDRiZGYyZTUuLmEwODhmMzIyODgxMGM3MjczNGIwYWFhYmMxMTJmY2MwNThkMDBm
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckJpbmRpbmdMYXlvdXQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ1R5cGUuaD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KIApAQCAtNjQsMyAr
NjcsNSBAQCBzdHJ1Y3QgQnVmZmVyQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3Iu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc0NTY2NmFhOTg5ZDYzYmIxOThjZmFiMTE5YTgxYjhiYTI4YjgyZTkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVm
ZmVyRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNj
cmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBidWZmZXJEZXNjcmlw
dG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxj
b25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGJ1ZmZlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAo
IWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKmJhc2UpLCBidWZmZXJEZXNjcmlwdG9yLnNpemUsIGJ1ZmZlckRlc2NyaXB0b3IudXNh
Z2UsIGJ1ZmZlckRlc2NyaXB0b3IubWFwcGVkQXRDcmVhdGlvbiB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5k
ZXggOWM1MzQ0YTI0YmYwZDg5ZDYxZjQ4ZDExZjZmNTc5NDVhOGYwMWMzYi4uZGNhNTZlMWVhNzI3
YTA5ODc3NmE0YzJmYzk3YjJjYjJiZDdmZDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUg
IldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXJVc2FnZS5oPgogI2luY2x1ZGUg
PHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogCkBAIC03MSwzICs3
NCw1IEBAIHN0cnVjdCBCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY2NjdkYWM0
NTZkZjcyZmViZDAyY2RlYmMwMTMzMTFiNmZhMWFlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcApAQCAt
MCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaD4KKworbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q2Fu
dmFzQ29uZmlndXJhdGlvbj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IENhbnZhc0NvbmZpZ3VyYXRpb24mIGNhbnZhc0NvbmZpZ3VyYXRpb24pCit7
CisgICAgYXV0byogZGV2aWNlID0gY29udmVydERldmljZUZyb21CYWNraW5nKGNhbnZhc0NvbmZp
Z3VyYXRpb24uZGV2aWNlKTsKKyAgICBpZiAoIWRldmljZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiBzaXpl
OworICAgIGlmIChjYW52YXNDb25maWd1cmF0aW9uLnNpemUpIHsKKyAgICAgICAgc2l6ZSA9IGNv
bnZlcnRGcm9tQmFja2luZygqY2FudmFzQ29uZmlndXJhdGlvbi5zaXplKTsKKyAgICAgICAgaWYg
KCFzaXplKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBy
ZXR1cm4geyB7ICpkZXZpY2UsIGNhbnZhc0NvbmZpZ3VyYXRpb24uZm9ybWF0LCBjYW52YXNDb25m
aWd1cmF0aW9uLnVzYWdlLCBjYW52YXNDb25maWd1cmF0aW9uLmNvbG9yU3BhY2UsIGNhbnZhc0Nv
bmZpZ3VyYXRpb24uY29tcG9zaXRpbmdBbHBoYU1vZGUsIFdURk1vdmUoc2l6ZSkgfSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5oCmluZGV4IDg0YjRiMDk3NWE4ZDcxOTQ5NDg4NjVhYWU3MTdlZWNlMTg2MGI0
OWMuLjk2NGE5YjU0MTJlYzk2OTUzMjE4OTg2MGFmYjM4MDM1Y2UyZDg3YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRp
b24uaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCiAjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CkBAIC05NSwzICs5Nyw1IEBAIHN0cnVj
dCBDYW52YXNDb25maWd1cmF0aW9uIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWE3MTE5NzhhY2ZlMzUxYmRi
YzI4NDFkM2U4M2VmMDNiNzNmZjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDb2xvckRpY3Q+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBDb2xvckRpY3QmIGNvbG9yRGljdCkKK3sKKyAgICByZXR1cm4geyB7IGNvbG9yRGlj
dC5yLCBjb2xvckRpY3QuZywgY29sb3JEaWN0LmIsIGNvbG9yRGljdC5hIH0gfTsKK30KKworc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgcmV0dXJuIFdU
Rjo6c3dpdGNoT24oY29sb3IsIFtdIChjb25zdCBWZWN0b3I8ZG91YmxlPiYgdmVjdG9yKSAtPiBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xvcj4geworICAgICAgICByZXR1cm4geyB7IHZl
Y3RvciB9IH07CisgICAgfSwgW3RoaXNdIChjb25zdCBDb2xvckRpY3QmIGNvbG9yRGljdCkgLT4g
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3I+IHsKKyAgICAgICAgYXV0byBjb2xvciA9
IGNvbnZlcnRGcm9tQmFja2luZyhjb2xvckRpY3QpOworICAgICAgICBpZiAoIWNvbG9yKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3Zl
KCpjb2xvcikgfSB9OworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb2xvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yLmgKaW5kZXggNGUwZjQzOWRmZjViYThhMjQ2MTViMGIzNzhkMTE0MWE4NThhNzk4
MS4uM2M1OTNmMGQzODQyYWNlZDNkYTA4MzE1MmQ0NjNjODc3MTJmMzJiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25h
bD4KICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTc0LDMgKzc3LDUgQEAgc3RydWN0IENvbG9yRGlj
dCB7CiB1c2luZyBDb2xvciA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8ZG91YmxlPiwgQ29sb3JEaWN0
PjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvclRhcmdldFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb2xvclRhcmdldFN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzljZmJjMWRiMDhlZjc3MGQ4NGNl
NTJiZWFjMWEwMjNkYTNmZjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29sb3JUYXJn
ZXRTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29sb3JUYXJnZXRT
dGF0ZSYgY29sb3JUYXJnZXRTdGF0ZSkKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpCbGVuZFN0YXRlPiBibGVuZDsKKyAgICBpZiAoY29sb3JUYXJnZXRTdGF0ZS5ibGVuZCkgewor
ICAgICAgICBibGVuZCA9IGNvbnZlcnRGcm9tQmFja2luZygqY29sb3JUYXJnZXRTdGF0ZS5ibGVu
ZCk7CisgICAgICAgIGlmICghYmxlbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH0KKworICAgIHJldHVybiB7IHsgY29sb3JUYXJnZXRTdGF0ZS5mb3JtYXQsIFdURk1v
dmUoYmxlbmQpLCBjb2xvclRhcmdldFN0YXRlLndyaXRlTWFzayB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmgKaW5k
ZXggMmUzMDNjNDdlMDUyMWExMjk0NDE0YjA2OWNmZTIzNzkyZDNlNmY5NS4uZmI0NGQ2ZTBkOWJj
ZTBlZmE4ZDFlNmJmZDU3ZTlmMDRlZWZlZmI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oCkBAIC0yNSw2ICsyNSw4IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVQmxlbmRTdGF0ZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3JXcml0ZS5oPgpAQCAtNjcsMyArNjksNSBAQCBzdHJ1
Y3QgQ29sb3JUYXJnZXRTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDJiOTk4ZWRkZTNlNGFiY2M5OGEwZTcyMTRlZDJjZGUwMWVjOGI0Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kQnVmZmVyRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRv
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21t
YW5kQnVmZmVyRGVzY3JpcHRvciYgY29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpCit7CisgICAgYXV0
byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2Ny
aXB0b3JCYXNlJj4oY29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJh
c2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCmluZGV4IGFmYjYwODNjMDU0NTFmMjUz
YzdkMmI1Y2I2YTRiZWI1ZWVmMmMzYmEuLmRmMTczYzQ4ZmUzZGNhZGQxNGFlODdiZWFkMjliYmE4
MmRmYzdkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTQ3LDMgKzUwLDUgQEAgc3RydWN0IENvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVu
Y29kZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MjRkNDE3YTUyMTFkMjk4
MGFlZTI3NTA5YmU2YjVmNTJjODQyNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciYgY29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2lu
ZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSkgfSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRl
c2NyaXB0b3IuaAppbmRleCAzM2JlYjA5ZTZkNWUwNDcxNmZkM2I4ZGM2YWI1MGM4ZTc4NjJhNWY2
Li4xOGU0YTBmMTAzMzgxZmQ0ZWM2MDJjM2Y1OTQzN2M3N2EyMDU3NWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAK
QEAgLTQ3LDMgKzUwLDUgQEAgc3RydWN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciA6IHB1Ymxp
YyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jODRkODhlOTFjNDg2OTM4ZGRkZDRkZTg1YWY4YTE0YzRiYjU2MDU5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9u
TWVzc2FnZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVz
c2FnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitSZWZQdHI8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKGNvbnN0IENvbXBpbGF0aW9uTWVzc2FnZSYgY29tcGlsYXRpb25NZXNzYWdl
KQoreworICAgIHJldHVybiBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlOjpjcmVhdGUo
Y29tcGlsYXRpb25NZXNzYWdlLm1lc3NhZ2UsIGNvbXBpbGF0aW9uTWVzc2FnZS50eXBlLCBjb21w
aWxhdGlvbk1lc3NhZ2UubGluZU51bSwgY29tcGlsYXRpb25NZXNzYWdlLmxpbmVQb3MsIGNvbXBp
bGF0aW9uTWVzc2FnZS5vZmZzZXQsIGNvbXBpbGF0aW9uTWVzc2FnZS5sZW5ndGgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1l
c3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1l
c3NhZ2UuaAppbmRleCA0OGVhNGRiNTRhYzIyOGFiODdjM2I5OGY0NWRiMzg3MWVmYTBlOTI2Li4y
MzViY2M1YTUyNjdlZmE1ODIzMGM1MGE4MTRiM2FjNWEwYWRhM2YzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBA
IC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKwogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTg2LDMgKzg5LDUgQEAgc3RydWN0IENv
bXBpbGF0aW9uTWVzc2FnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xOTI5ZGI1ZjQ0MTc4MWIwYzhlMjc5ZjhkMjk5NTUxMWZiODMyOTMwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQ
YXNzRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGFzc0Rlc2NyaXB0
b3ImIGNvbXB1dGVQYXNzRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJv
bUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihjb21wdXRl
UGFzc0Rlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBhdXRvIHRpbWVzdGFtcFdyaXRlcyA9IGNvbnZlcnRGcm9tQmFja2luZyhj
b21wdXRlUGFzc0Rlc2NyaXB0b3IudGltZXN0YW1wV3JpdGVzKTsKKyAgICBpZiAoIXRpbWVzdGFt
cFdyaXRlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqYmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rl
c2NyaXB0b3IuaAppbmRleCA3YmIzZTMxOGViZWMzM2VjOGY3OGE4M2YxNmQ3NTVjM2QyMTQxY2Q5
Li41Njg5YmUzY2IxMjExMzZhMDU5NTA2OWU4MWEwOTQwM2E0Yjc0MWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVz
LmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxv
cHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBA
QCBzdHJ1Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JC
YXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNmY5Mjk1ODJkZTNkOGVkMmMyYzg5YzkzYzY2MjRlZjE2M2RmMzkxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wV3JpdGVzLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSYgY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZSkKK3sKKyAg
ICBhdXRvKiBxdWVyeVNldCA9IGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKGNvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGUucXVlcnlTZXQpOworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpxdWVyeVNldCwgY29tcHV0ZVBh
c3NUaW1lc3RhbXBXcml0ZS5xdWVyeUluZGV4LCBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmxv
Y2F0aW9uIH0gfTsKK30KKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYgY29tcHV0ZVBhc3NUaW1lc3Rh
bXBXcml0ZXMpCit7CisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlPiB0aW1lc3RhbXBXcml0ZXM7CisgICAgdGltZXN0YW1wV3JpdGVzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuc2l6ZSgpKTsKKyAgICBmb3Ig
KGNvbnN0IGF1dG8mIGJhY2tpbmdUaW1lc3RhbXBXcml0ZSA6IGNvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzKSB7CisgICAgICAgIGF1dG8gdGltZXN0YW1wV3JpdGUgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoYmFja2luZ1RpbWVzdGFtcFdyaXRlKTsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXBXcml0ZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHRpbWVzdGFtcFdyaXRl
cy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqdGltZXN0YW1wV3JpdGUpKTsKKyAgICB9CisgICAg
cmV0dXJuIHRpbWVzdGFtcFdyaXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oCmlu
ZGV4IDRmMjJkOWFhYjFkYjYyOGJmMzEzNjIyYzg0OThjNmE4NGFjMjdkM2YuLmRlN2Q0MDI2NjE0
NmQwMDljNjYzMjU4NTkyM2QzM2NjMGI0ZmE4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
cy5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxvcHRp
b25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGlt
ZXN0YW1wTG9jYXRpb24uaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUlu
dGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC02OSwzICs3Miw1IEBAIHN0
cnVjdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlIHsKIHVzaW5nIENvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzID0gVmVjdG9yPENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1ZGVhZTI1YjVhZmI1MjBk
NDBiMDgzYjJmMzBmYTgyYjA0MGI2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBj
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9t
QmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQaXBlbGluZURlc2NyaXB0b3JCYXNlJj4oY29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gY29tcHV0ZSA9IGNvbnZlcnRGcm9tQmFja2luZyhjb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNvbXB1dGUpOworICAgIGlmICghY29tcHV0ZSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IFBBTDo6V2ViR1BVOjpDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yIHsgV1RGTW92ZSgqYmFzZSksIFdURk1vdmUoKmNvbXB1dGUp
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaAppbmRleCBjZGQ2NWQwOTVmNjhlNWVj
YmViOTg3ZDNhYjMzYjI4YTJjYjY0NjE2Li5lMWIxNjY4Mzc0ZTFkMzk0MDQ3ZjdjY2RiNDkxNTEz
ZTFlOThhOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIgogI2luY2x1ZGUgIldlYkdQVVByb2dyYW1t
YWJsZVN0YWdlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKQEAgLTU2LDMgKzU5LDUgQEAgc3RydWN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IgOiBwdWJsaWMgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgKaW5kZXggNTk1NDVkNjA0NjlhYmVlMjUzMDJmN2M5MzQ3Yjg0MDI1
MjdjY2IxMi4uNjAwNWM4OGY4MWFlMjlhZTFkMDIxM2Q0YmE5M2I1NGQxZTVhYzZkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oCkBAIC0yNyw2MiArMjcsMjY1IEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJXZWJHUFVDb2xvci5oIgorI2luY2x1ZGUgIldlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgiCisjaW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIK
KyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJXZWJHUFVPcmlnaW4yRC5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdpbjNE
LmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oIgorI2luY2x1
ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29sb3Iu
aD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0
YW1wV3JpdGVzLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5o
PgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaD4KKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg+CisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBQQUw6OldlYkdQVSB7CiAKIGNsYXNzIEFkYXB0
ZXI7CiBjbGFzcyBCaW5kR3JvdXA7CitzdHJ1Y3QgQmluZEdyb3VwRGVzY3JpcHRvcjsKK3N0cnVj
dCBCaW5kR3JvdXBFbnRyeTsKIGNsYXNzIEJpbmRHcm91cExheW91dDsKK3N0cnVjdCBCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cExheW91dEVudHJ5Oworc3RydWN0
IEJsZW5kQ29tcG9uZW50Oworc3RydWN0IEJsZW5kU3RhdGU7CiBjbGFzcyBCdWZmZXI7CitzdHJ1
Y3QgQnVmZmVyQmluZGluZzsKK3N0cnVjdCBCdWZmZXJCaW5kaW5nTGF5b3V0Oworc3RydWN0IEJ1
ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ2FudmFzQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBDb2xv
clRhcmdldFN0YXRlOwogY2xhc3MgQ29tbWFuZEJ1ZmZlcjsKK3N0cnVjdCBDb21tYW5kQnVmZmVy
RGVzY3JpcHRvcjsKIGNsYXNzIENvbW1hbmRFbmNvZGVyOworc3RydWN0IENvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcjsKK2NsYXNzIENvbXBpbGF0aW9uTWVzc2FnZTsKK3N0cnVjdCBDb21wdXRlUGFz
c0Rlc2NyaXB0b3I7CiBjbGFzcyBDb21wdXRlUGFzc0VuY29kZXI7CiBjbGFzcyBDb21wdXRlUGlw
ZWxpbmU7CitzdHJ1Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBEZXB0aFN0
ZW5jaWxTdGF0ZTsKIGNsYXNzIERldmljZTsKK3N0cnVjdCBEZXZpY2VEZXNjcmlwdG9yOworc3Ry
dWN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJl
RGVzY3JpcHRvcjsKK2NsYXNzIEV4dGVybmFsVGV4dHVyZTsKK3N0cnVjdCBGcmFnbWVudFN0YXRl
OwogY2xhc3MgR1BVOworc3RydWN0IElkZW50aWZpZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5QnVmZmVy
Oworc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVy
ZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdlRGF0YUxheW91
dDsKK3N0cnVjdCBNdWx0aXNhbXBsZVN0YXRlOworc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNl
OworY2xhc3MgT3V0T2ZNZW1vcnlFcnJvcjsKK3N0cnVjdCBQaXBlbGluZURlc2NyaXB0b3JCYXNl
OwogY2xhc3MgUGlwZWxpbmVMYXlvdXQ7CitzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
Oworc3RydWN0IFByaW1pdGl2ZVN0YXRlOworc3RydWN0IFByb2dyYW1tYWJsZVN0YWdlOwogY2xh
c3MgUXVlcnlTZXQ7CitzdHJ1Y3QgUXVlcnlTZXREZXNjcmlwdG9yOwogY2xhc3MgUXVldWU7Ci1j
bGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVyOwogY2xhc3MgUmVuZGVyQnVuZGxlOworc3RydWN0IFJl
bmRlckJ1bmRsZURlc2NyaXB0b3I7CitjbGFzcyBSZW5kZXJCdW5kbGVFbmNvZGVyOworc3RydWN0
IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0IFJlbmRlclBhc3NDb2xvckF0
dGFjaG1lbnQ7CitzdHJ1Y3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ7CitzdHJ1
Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3I7CiBjbGFzcyBSZW5kZXJQYXNzRW5jb2RlcjsKK3N0cnVj
dCBSZW5kZXJQYXNzTGF5b3V0OwogY2xhc3MgUmVuZGVyUGlwZWxpbmU7CitzdHJ1Y3QgUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yOworc3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9uczsKIGNsYXNz
IFNhbXBsZXI7CitzdHJ1Y3QgU2FtcGxlckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgU2FtcGxlckRl
c2NyaXB0b3I7CiBjbGFzcyBTaGFkZXJNb2R1bGU7CitzdHJ1Y3QgU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvcjsKK3N0cnVjdCBTdGVuY2lsRmFjZVN0YXRlOworc3RydWN0IFN0b3JhZ2VUZXh0dXJlQmlu
ZGluZ0xheW91dDsKK2NsYXNzIFN1cHBvcnRlZEZlYXR1cmVzOworY2xhc3MgU3VwcG9ydGVkTGlt
aXRzOwogY2xhc3MgVGV4dHVyZTsKK3N0cnVjdCBUZXh0dXJlQmluZGluZ0xheW91dDsKK3N0cnVj
dCBUZXh0dXJlRGVzY3JpcHRvcjsKIGNsYXNzIFRleHR1cmVWaWV3Oworc3RydWN0IFRleHR1cmVW
aWV3RGVzY3JpcHRvcjsKK2NsYXNzIFZhbGlkYXRpb25FcnJvcjsKK3N0cnVjdCBWZXJ0ZXhBdHRy
aWJ1dGU7CitzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5b3V0Oworc3RydWN0IFZlcnRleFN0YXRlOwog
CiB9IC8vIG5hbWVzcGFjZSBQQUw6OldlYkdQVQogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewogCitzdHJ1Y3QgQmluZEdyb3VwRGVzY3JpcHRvcjsKK3N0cnVjdCBCaW5kR3JvdXBFbnRyeTsK
K3N0cnVjdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cExheW91
dEVudHJ5Oworc3RydWN0IEJsZW5kQ29tcG9uZW50Oworc3RydWN0IEJsZW5kU3RhdGU7CitzdHJ1
Y3QgQnVmZmVyQmluZGluZzsKK3N0cnVjdCBCdWZmZXJCaW5kaW5nTGF5b3V0Oworc3RydWN0IEJ1
ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ2FudmFzQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBDb2xv
clRhcmdldFN0YXRlOworc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOworc3RydWN0IENv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDb21waWxhdGlvbk1lc3NhZ2U7CitzdHJ1
Y3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yOworc3RydWN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3I7CitzdHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGU7CitzdHJ1Y3QgRGV2aWNlRGVzY3JpcHRvcjsK
K3N0cnVjdCBFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IEV4dGVybmFsVGV4
dHVyZURlc2NyaXB0b3I7CitzdHJ1Y3QgRnJhZ21lbnRTdGF0ZTsKK3N0cnVjdCBJZGVudGlmaWVy
Oworc3RydWN0IEltYWdlQ29weUJ1ZmZlcjsKK3N0cnVjdCBJbWFnZUNvcHlFeHRlcm5hbEltYWdl
Oworc3RydWN0IEltYWdlQ29weVRleHR1cmU7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZVRhZ2dl
ZDsKK3N0cnVjdCBJbWFnZURhdGFMYXlvdXQ7CitzdHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZTsKK3N0
cnVjdCBPYmplY3REZXNjcmlwdG9yQmFzZTsKK3N0cnVjdCBPdXRPZk1lbW9yeUVycm9yOworc3Ry
dWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CitzdHJ1Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yOworc3RydWN0IFByaW1pdGl2ZVN0YXRlOworc3RydWN0IFByb2dyYW1tYWJsZVN0YWdlOwor
c3RydWN0IFF1ZXJ5U2V0RGVzY3JpcHRvcjsKK3N0cnVjdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9y
Oworc3RydWN0IFJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0IFJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnQ7CitzdHJ1Y3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQ7CitzdHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGFzc0xheW91
dDsKK3N0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CitzdHJ1Y3QgUmVxdWVzdEFkYXB0
ZXJPcHRpb25zOworc3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0Oworc3RydWN0IFNhbXBsZXJE
ZXNjcmlwdG9yOworc3RydWN0IFNoYWRlck1vZHVsZURlc2NyaXB0b3I7CitzdHJ1Y3QgU3RlbmNp
bEZhY2VTdGF0ZTsKK3N0cnVjdCBTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3Qg
U3VwcG9ydGVkRmVhdHVyZXM7CitzdHJ1Y3QgU3VwcG9ydGVkTGltaXRzOworc3RydWN0IFRleHR1
cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yOworc3RydWN0IFRleHR1
cmVWaWV3RGVzY3JpcHRvcjsKK3N0cnVjdCBWYWxpZGF0aW9uRXJyb3I7CitzdHJ1Y3QgVmVydGV4
QXR0cmlidXRlOworc3RydWN0IFZlcnRleEJ1ZmZlckxheW91dDsKK3N0cnVjdCBWZXJ0ZXhTdGF0
ZTsKKwogY2xhc3MgQ29udmVydEZyb21CYWNraW5nQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVk
PENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCBjb25zdCBQ
QUw6OldlYkdQVTo6QWRhcHRlciogY29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBj
b252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZp
cnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogY29udmVydEJpbmRHcm91
cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNv
bnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1
ZmZlciogY29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9
IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIGNvbnZl
cnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2
aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRDb21w
dXRlUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmly
dHVhbCBjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBp
cGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29u
c3QgUEFMOjpXZWJHUFU6OkRldmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZl
cnRHUFVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25z
dCBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQqIGNvbnZlcnRQaXBlbGluZUxheW91dEZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2Vi
R1BVOjpRdWVyeVNldCogY29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
cikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBjb252ZXJ0UXVl
dWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogY29udmVydFJlbmRlckJ1bmRsZUVuY29k
ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmco
V2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlJl
bmRlclBhc3NFbmNvZGVyKiBjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVy
UGlwZWxpbmUqIGNvbnZlcnRSZW5kZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBjb252ZXJ0
U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNv
bnN0IFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUqIGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQ
VTo6VGV4dHVyZSogY29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9
IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIGNvbnZlcnRU
ZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgQmluZEdyb3VwRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkJpbmRHcm91cEVudHJ5PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3Vw
RW50cnkmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVu
dHJ5PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmluZEdyb3VwTGF5b3V0RW50cnkmKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZENvbXBvbmVudD4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IEJsZW5kQ29tcG9uZW50Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6QmxlbmRTdGF0ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJsZW5kU3RhdGUmKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJCaW5kaW5nPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgQnVmZmVyQmluZGluZyYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OkJ1ZmZlckJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCdWZm
ZXJCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVy
RGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uPiBjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ2FudmFzQ29uZmlndXJhdGlvbiYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29sb3Im
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xvckRpY3Q+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBDb2xvckRpY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDb2xvclRhcmdldFN0YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29sb3JUYXJnZXRT
dGF0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXJEZXNj
cmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3Im
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0
b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21tYW5kRW5jb2RlckRlc2NyaXB0b3ImKTsK
KyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IENvbXBpbGF0aW9uTWVzc2FnZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0
IENvbXB1dGVQYXNzRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXM+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlcyYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
RGVwdGhTdGVuY2lsU3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBEZXB0aFN0ZW5jaWxT
dGF0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3I+
IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBEZXZpY2VEZXNjcmlwdG9yJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFcnJv
ciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgRXh0ZW50M0QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpFeHRlbnQzRERpY3Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlbnQzRERpY3QmKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5
b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2Ny
aXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RnJhZ21lbnRTdGF0ZT4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IEZyYWdtZW50U3RhdGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpJZGVudGlmaWVyPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSWRlbnRpZmll
ciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weUJ1ZmZlcj4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29weUJ1ZmZlciYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weUV4dGVybmFsSW1hZ2U+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBJbWFnZUNvcHlFeHRlcm5hbEltYWdlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdl
Q29weVRleHR1cmUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlU
ZXh0dXJlVGFnZ2VkPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5VGV4dHVyZVRh
Z2dlZCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlRGF0YUxheW91dD4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlRGF0YUxheW91dCYpOworICAgIHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6Ok11bHRpc2FtcGxlU3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBNdWx0aXNhbXBsZVN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
T2JqZWN0RGVzY3JpcHRvckJhc2U+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiBj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luMkQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4y
RERpY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IE9yaWdpbjNEJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6T3JpZ2luM0REaWN0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luM0REaWN0
Jik7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVycm9yPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgT3V0T2ZNZW1vcnlFcnJvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRvckJhc2U+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBQaXBlbGluZURlc2NyaXB0b3JCYXNlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
UHJpbWl0aXZlU3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBQcmltaXRpdmVTdGF0ZSYp
OworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlPiBjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2UmKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFBBTDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBRdWVyeVNldERlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVy
QnVuZGxlRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRl
ckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVy
QnVuZGxlRW5jb2RlckRlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQmKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNv
bnN0IFJlbmRlclBhc3NEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6UmVuZGVyUGFzc0xheW91dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NM
YXlvdXQmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzVGltZXN0YW1wV3Jp
dGUmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cyYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYp
OworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlcXVlc3RBZGFwdGVyT3B0aW9ucz4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYpOworICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJCaW5kaW5nTGF5b3V0PiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgU2FtcGxlckJpbmRpbmdMYXlvdXQmKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0
IFNhbXBsZXJEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2hh
ZGVyTW9kdWxlRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFNoYWRlck1vZHVs
ZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsRmFj
ZVN0YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3RlbmNpbEZhY2VTdGF0ZSYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dCYpOwor
ICAgIFJlZlB0cjxQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM+IGNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYpOworICAgIFJlZlB0cjxQQUw6OldlYkdQVTo6
U3VwcG9ydGVkTGltaXRzPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3VwcG9ydGVkTGltaXRz
Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdMYXlvdXQ+
IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0dXJlQmluZGluZ0xheW91dCYpOworICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgVGV4dHVyZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBU
ZXh0dXJlVmlld0Rlc2NyaXB0b3ImKTsKKyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6OlZhbGlkYXRp
b25FcnJvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFZhbGlkYXRpb25FcnJvciYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IFZlcnRleEF0dHJpYnV0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFZlcnRl
eEJ1ZmZlckxheW91dCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleFN0
YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4U3RhdGUmKTsKKworICAgIHZpcnR1
YWwgUEFMOjpXZWJHUFU6OkFkYXB0ZXIqIGNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkJpbmRHcm91cCogY29u
dmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0
dWFsIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQ
VTo6QnVmZmVyKiBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXIqIGNvbnZlcnRDb21tYW5k
QnVmZmVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFM
OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyKiBjb252ZXJ0Q29tbWFuZEVuY29kZXJGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6Q29tcHV0
ZVBhc3NFbmNvZGVyKiBjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGlu
ZSogY29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0g
MDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpEZXZpY2UqIGNvbnZlcnREZXZpY2VGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6RXh0
ZXJuYWxUZXh0dXJlKiBjb252ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dCogY29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBjb252
ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVh
bCBQQUw6OldlYkdQVTo6UXVldWUqIGNvbnZlcnRRdWV1ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVy
KiBjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
ID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUqIGNvbnZlcnRSZW5k
ZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIqIGNvbnZlcnRSZW5kZXJQYXNzRW5jb2RlckZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BV
OjpSZW5kZXJQaXBlbGluZSogY29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlNhbXBsZXIqIGNvbnZl
cnRTYW1wbGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwg
UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSogY29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpUZXh0dXJl
KiBjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2
aXJ0dWFsIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogY29udmVydFRleHR1cmVWaWV3RnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
OjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVE
ZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
RGVwdGhTdGVuY2lsU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiY2JiMDZlYTI0MDc0NWMwOWI0YzYy
YmMwMDhlYWI4OWQ0M2M0ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVRGVwdGhTdGVu
Y2lsU3RhdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkRlcHRoU3RlbmNpbFN0YXRlPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRGVwdGhTdGVu
Y2lsU3RhdGUmIGRlcHRoU3RlbmNpbFN0YXRlKQoreworICAgIGF1dG8gc3RlbmNpbEZyb250ID0g
Y29udmVydEZyb21CYWNraW5nKGRlcHRoU3RlbmNpbFN0YXRlLnN0ZW5jaWxGcm9udCk7CisgICAg
aWYgKCFzdGVuY2lsRnJvbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBh
dXRvIHN0ZW5jaWxCYWNrID0gY29udmVydEZyb21CYWNraW5nKGRlcHRoU3RlbmNpbFN0YXRlLnN0
ZW5jaWxCYWNrKTsKKyAgICBpZiAoIXN0ZW5jaWxCYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBkZXB0aFN0ZW5jaWxTdGF0ZS5mb3JtYXQsIGRlcHRo
U3RlbmNpbFN0YXRlLmRlcHRoV3JpdGVFbmFibGVkLCBkZXB0aFN0ZW5jaWxTdGF0ZS5kZXB0aENv
bXBhcmUsIFdURk1vdmUoKnN0ZW5jaWxGcm9udCksIFdURk1vdmUoKnN0ZW5jaWxCYWNrKSwgZGVw
dGhTdGVuY2lsU3RhdGUuc3RlbmNpbFJlYWRNYXNrLCBkZXB0aFN0ZW5jaWxTdGF0ZS5zdGVuY2ls
V3JpdGVNYXNrLCBkZXB0aFN0ZW5jaWxTdGF0ZS5kZXB0aEJpYXMsIGRlcHRoU3RlbmNpbFN0YXRl
LmRlcHRoQmlhc1Nsb3BlU2NhbGUsIGRlcHRoU3RlbmNpbFN0YXRlLmRlcHRoQmlhc0NsYW1wIH0g
fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVw
dGhTdGVuY2lsU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0
aFN0ZW5jaWxTdGF0ZS5oCmluZGV4IGE1OTdkZjA5NjEzNmRiMzQyOGMyYzY3ZDUyZWM5NjFmZmJj
ZjYzYWEuLmY2NTI0Mjk0MzRiOWY2ZjEwZTQ4MmE1MjM5ZDIwYjcyYzE4NTY0NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIgogI2luY2x1ZGUg
PG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29tcGFyZUZ1
bmN0aW9uLmg+CkBAIC0xMjAsMyArMTIyLDUgQEAgc3RydWN0IERlcHRoU3RlbmNpbFN0YXRlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBhNGQ2ZDg2ZWFhZmVmNzM4MThh
ODE1ZTRjOTUyZGI0NGFlMGUwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVURldmljZURl
c2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQ
VUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvcj4gQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IERldmljZURlc2Ny
aXB0b3ImIGRldmljZURlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21C
YWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oZGV2aWNlRGVz
Y3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGRldmljZURlc2NyaXB0b3IucmVxdWly
ZWRGZWF0dXJlcyB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKaW5kZXggNmEyNTIzNmRjODljNjY5ODkwNDc3ZWRk
ZDFkMjMzYTRiMmI0MjRjNC4uNjA2YmRmYjczZjYzNDg3OGNmZGEzZjliZGExYWUzZWUxNGQ1OWZm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURl
c2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1cmVOYW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvS2V5VmFsdWVQYWlyLmg+CkBAIC02MSwzICs2NCw1IEBA
IHN0cnVjdCBEZXZpY2VEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRXJyb3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOGY3ZGI3ZGZmNmRmNjI2YTc1MDU5ZGU4YmMxNjM3YzYzYWM4ODM3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9y
LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkdQVUVycm9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFcnJvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEVycm9yJiBlcnJvcikKK3sKKyAg
ICByZXR1cm4gV1RGOjpzd2l0Y2hPbihlcnJvciwgW3RoaXNdIChjb25zdCBPdXRPZk1lbW9yeUVy
cm9yJiBvdXRPZk1lbW9yeUVycm9yKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJv
cj4geworICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbnZlcnRGcm9tQmFja2luZyhvdXRPZk1lbW9y
eUVycm9yKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICByZXR1cm4geyByZXN1bHQucmVsZWFzZU5vbk51bGwoKSB9OworICAg
IH0sIFt0aGlzXSAoY29uc3QgVmFsaWRhdGlvbkVycm9yJiB2YWxpZGF0aW9uRXJyb3IpIC0+IHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
Y29udmVydEZyb21CYWNraW5nKHZhbGlkYXRpb25FcnJvcik7CisgICAgICAgIGlmICghcmVzdWx0
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgcmVz
dWx0LnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVFcnJvci5oCmluZGV4IDcyZWQyYmRlYjI0N2JjMmE5NzcyODk5ZjdiYzBh
NTk4ZDY2NDU0OGYuLmFjZjAxYTE0NDk5NDdkODk5MDNjNzhjODEyM2MzMGYxMzJjNzU0YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oCkBAIC0yNSw2ICsyNSw4
IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVk
ZSAiV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIgogI2luY2x1ZGUgIldlYkdQVVZhbGlkYXRpb25F
cnJvci5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+CkBAIC0zNCwzICszNiw1IEBAIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CiB1c2luZyBFcnJvciA9IHN0ZDo6dmFyaWFudDxPdXRPZk1lbW9yeUVy
cm9yLCBWYWxpZGF0aW9uRXJyb3I+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzNDgyMDQxOTUzOTQzOTNl
ZjdmNDA5YTUzZDY4ZDg1MDc5MzE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlbnQzRC5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21C
YWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRXh0
ZW50M0QuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6RXh0ZW50M0REaWN0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZW50M0REaWN0JiBleHRlbnQzRERpY3QpCit7CisgICAg
cmV0dXJuIHsgeyBleHRlbnQzRERpY3Qud2lkdGgsIGV4dGVudDNERGljdC5oZWlnaHQsIGV4dGVu
dDNERGljdC5kZXB0aE9yQXJyYXlMYXllcnMgfSB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpFeHRlbnQzRD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IEV4dGVudDNEJiBleHRlbnQzRCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihleHRlbnQzRCwgW10gKGNvbnN0IFZlY3RvcjxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3Jk
aW5hdGU+JiB2ZWN0b3IpIC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiB7
CisgICAgICAgIHJldHVybiB7IHsgdmVjdG9yIH0gfTsKKyAgICB9LCBbdGhpc10gKGNvbnN0IEV4
dGVudDNERGljdCYgZXh0ZW50M0REaWN0KSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpF
eHRlbnQzRD4geworICAgICAgICBhdXRvIGV4dGVudDNEID0gY29udmVydEZyb21CYWNraW5nKGV4
dGVudDNERGljdCk7CisgICAgICAgIGlmICghZXh0ZW50M0QpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmV4dGVudDNEKSB9IH07
CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUV4dGVudDNELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50
M0QuaAppbmRleCAxOTM4MzQyMDk0MmI4ZjA0ZjY0ZGI2NmY4YWI2NWZhYzVmNTdiODg1Li4yODUy
OTljNzA5MTMyOWFiMWY2ZmI4YjM1ZDk1N2JjNmFkMDVmNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFs
PgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgog
I2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsMyArNzAs
NSBAQCBzdHJ1Y3QgRXh0ZW50M0REaWN0IHsKIHVzaW5nIEV4dGVudDNEID0gc3RkOjp2YXJpYW50
PFZlY3RvcjxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+LCBFeHRlbnQzRERpY3Q+Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNj
NWI5MWE1YWE2Y2M5NWQ3NGYyN2VkOWNmMTM3MTM2ZTJlOWRiOWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGlu
Z0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRl
cm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0JiBleHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0
KQoreworICAgIHJldHVybiB7IHsgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5oCmluZGV4IDJkNWMyZmZkZGE4NGE2YTQ2MmE4ZDdjZDVkZDhhN2RhYzY3MmY3MTMuLjVhYWQ0
YWVlZGE1ODRmM2MxNGM5YWM3YWE4MzhlNDZkNjI3MTIwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaApAQCAtMjUsNiArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KKwogbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKIAogc3RydWN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQgewpA
QCAtMzksMyArNDMsNSBAQCBzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dCB7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTFj
NmJkZDUzMzQ5MjFjODgxYmU4ZjNhOGZmOTdmNDI1ZTE0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRv
ci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3I+IENvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlcm5hbFRleHR1cmVE
ZXNjcmlwdG9yJiBleHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9
IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KGV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBl
eHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNvbG9yU3BhY2UgfSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
RGVzY3JpcHRvci5oCmluZGV4IDkzYzc0NTEyZTQyZTg0ZmI1ZjIwNmM2NzFjNjgzNjdlZTQzZGRj
ZmUuLmY4MDRiZDVhOWVhMWJmZjI4ZTdhNjI4NGI3ZTdjMjQ5NTIxYTJmOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4
dHVyZURlc2NyaXB0b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKQEAgLTU2LDMgKzU5LDUgQEAgc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3Ig
OiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ODA2YjQxMjIyNzA0ZGQwYzFhNDA5ZDJlMTFmZjE3ZGY3N2FhNGRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUu
Y3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcmFnbWVu
dFN0YXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgRnJhZ21lbnRTdGF0ZSYgZnJhZ21lbnRTdGF0ZSkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252
ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3RhZ2UmPihmcmFn
bWVudFN0YXRlKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpDb2xvclRhcmdldFN0YXRlPiB0YXJnZXRzOwor
ICAgIHRhcmdldHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmcmFnbWVudFN0YXRlLnRhcmdldHMu
c2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdUYXJnZXQgOiBmcmFnbWVudFN0
YXRlLnRhcmdldHMpIHsKKyAgICAgICAgYXV0byB0YXJnZXQgPSBjb252ZXJ0RnJvbUJhY2tpbmco
YmFja2luZ1RhcmdldCk7CisgICAgICAgIGlmICghdGFyZ2V0KQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgq
dGFyZ2V0KSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92
ZSh0YXJnZXRzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVGcmFnbWVudFN0YXRlLmgKaW5kZXggOWY5NmVlMTZkY2I2Y2E0N2FhODJjYzI4NDY2OTNl
OTY2ZTFjZWY1NC4uMjg3YmNjNDdkOTRiNGRlZjUxY2NmNmIxMGJhYzY5NzlmOGQyNTM5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5o
CkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCIKICNpbmNsdWRlICJX
ZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYw
LDUgQEAgc3RydWN0IEZyYWdtZW50U3RhdGUgOiBwdWJsaWMgUHJvZ3JhbW1hYmxlU3RhZ2Ugewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlCdWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUltYWdlQ29weUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ0NzAwNTUxOGE4MzQ0MTRhOTg1MDIy
OWMxMjFhZmQxZGUxMmU1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5QnVm
ZmVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVJbWFnZUNvcHlCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VDb3B5QnVmZmVyPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5QnVmZmVyJiBp
bWFnZUNvcHlCdWZmZXIpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0
YXRpY19jYXN0PGNvbnN0IEltYWdlRGF0YUxheW91dCY+KGltYWdlQ29weUJ1ZmZlcikpOworICAg
IGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gYnVm
ZmVyID0gY29udmVydEJ1ZmZlckZyb21CYWNraW5nKGltYWdlQ29weUJ1ZmZlci5idWZmZXIpOwor
ICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgKmJ1ZmZlciB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCmluZGV4IDExODY2
MGU3N2Q2OTU2NThiODcyMmIzZTQ3ZTJmYTJmZjVjZWU0MGMuLjhmZDI3ODU5YzIzNTJiYzg5ZmM1
ZDMyYzcyZTA3NzBhZmM5MzI0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgorI2luY2x1ZGUg
PG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0IEltYWdlQ29weUJ1ZmZlciA6IHB1YmxpYyBJ
bWFnZURhdGFMYXlvdXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMGNhM2JmMzU5YzllYjYwOTEyOGVmYWVmMjI2YzYzNmU4ZGU3ZTQwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4
dGVybmFsSW1hZ2UuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VD
b3B5RXh0ZXJuYWxJbWFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlFeHRlcm5hbEltYWdlPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5RXh0ZXJu
YWxJbWFnZSYgaW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZSkKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpPcmlnaW4yRD4gb3JpZ2luOworICAgIGlmIChpbWFnZUNvcHlFeHRlcm5hbElt
YWdlLm9yaWdpbikgeworICAgICAgICBhdXRvIG9yaWdpbiA9IGNvbnZlcnRGcm9tQmFja2luZygq
aW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5vcmlnaW4pOworICAgICAgICBpZiAoIW9yaWdpbikKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKG9yaWdpbikgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oCmluZGV4IDFlNTUyOGI5
YzU0Y2MxZDk3ZGVmZmRjMTkzMmYyZWExMTA5YTljY2IuLjVmMjk2NmMyNmVjZjJlZmJlNThkYmIz
OTQzMWZhM2JhYjVhOGYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaApAQCAtMjUsNiArMjUsOCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUg
IldlYkdQVU9yaWdpbjJELmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8dmFyaWFu
dD4KQEAgLTUyLDMgKzU0LDUgQEAgc3RydWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2UgewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZUNvcHlUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZUNvcHlUZXh0dXJlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2RkZDk4OWFhMDRlZDE1NzEyZWYwNTFk
MzEzMGM2OWEyNTExYWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVSW1hZ2VDb3B5VGV4
dHVyZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5VGV4dHVy
ZSYgaW1hZ2VDb3B5VGV4dHVyZSkKK3sKKyAgICBhdXRvIHRleHR1cmUgPSBjb252ZXJ0VGV4dHVy
ZUZyb21CYWNraW5nKGltYWdlQ29weVRleHR1cmUudGV4dHVyZSk7CisgICAgaWYgKCF0ZXh0dXJl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6T3JpZ2luM0Q+IG9yaWdpbjsKKyAgICBpZiAoaW1hZ2VDb3B5VGV4dHVyZS5vcmln
aW4pIHsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmltYWdlQ29w
eVRleHR1cmUub3JpZ2luKTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiB7IHsgKnRleHR1cmUsIGltYWdl
Q29weVRleHR1cmUubWlwTGV2ZWwsIFdURk1vdmUob3JpZ2luKSwgaW1hZ2VDb3B5VGV4dHVyZS5h
c3BlY3QgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZS5oCmluZGV4IDhhMjMwNmE4NDQzMWZjZDU4MDExZjVlYzg4ZmE3
YWEwYzQ4OTk3M2YuLmEyOWMzNTIxZDRlOTUyMjM3ZjAwYmZlZjcwOTM1Zjk5ZWZkMTczN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRl
eHR1cmUuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJX
ZWJHUFVPcmlnaW4zRC5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgpAQCAtNzUsMyArNzcsNSBAQCBz
dHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlN2UzZmNjYjQzMjVlMDM1MzMyNGJjMzg1MjFlMzE3ZWVhOGRmMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2Vk
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBJbWFnZUNv
cHlUZXh0dXJlVGFnZ2VkJiBpbWFnZUNvcHlUZXh0dXJlVGFnZ2VkKQoreworICAgIGF1dG8gYmFz
ZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBJbWFnZUNvcHlUZXh0dXJl
Jj4oaW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGltYWdl
Q29weVRleHR1cmVUYWdnZWQuY29sb3JTcGFjZSwgaW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5wcmVt
dWx0aXBsaWVkQWxwaGEgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oCmluZGV4IDg0OWJjNGU4
NjFjMzM2M2E2OTA5M2VjZmY5MWIwZjVkNTIwZTQ2NTcuLjAxOGI2OGFhNGZkZmE1Y2JkN2RkZjA3
M2YyZmY0ZDRiY2QwZjc0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaApAQCAtMjUsNyArMjUsMTAg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
ICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNjMsMyArNjYsNSBAQCBzdHJ1Y3QgSW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZCA6IHB1YmxpYyBJbWFnZUNvcHlUZXh0dXJlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRh
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFM
YXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiMjEwYjliMWIzNzQ3YzJiNDUwM2QzMTUyODMxZjZmNzU0
M2JlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUltYWdlRGF0YUxheW91dC5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW1hZ2VE
YXRhTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkltYWdlRGF0YUxheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlRGF0YUxheW91dCYgaW1hZ2VEYXRhTGF5
b3V0KQoreworICAgIHJldHVybiB7IHsgaW1hZ2VEYXRhTGF5b3V0Lm9mZnNldCwgaW1hZ2VEYXRh
TGF5b3V0LmJ5dGVzUGVyUm93LCBpbWFnZURhdGFMYXlvdXQucm93c1BlckltYWdlIH0gfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRh
TGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5
b3V0LmgKaW5kZXggY2U0Y2UzOTE0NzMwM2ZlNzBlMjdmNjlhYWJlMGNlNWMxYTE1N2IzOS4uMDQ3
MDdiNmMwZDkzMDYzOWE1Njc5NzBmNWRmYTVlZmM5NzM1ZDYyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaApAQCAtMjUsNiAr
MjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogCkBAIC02NCwzICs2Niw1IEBAIHN0cnVjdCBJbWFnZURhdGFMYXlvdXQg
ewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDZlNzkwZjg5YmRjMzllYTE1
M2YwNmIxODJjNDcxZjk4YTYxYmNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVTXVsdGlz
YW1wbGVTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2Vi
R1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlPiBDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgTXVsdGlzYW1w
bGVTdGF0ZSYgbXVsdGlzYW1wbGVTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IG11bHRpc2FtcGxl
U3RhdGUuY291bnQsIG11bHRpc2FtcGxlU3RhdGUubWFzaywgbXVsdGlzYW1wbGVTdGF0ZS5hbHBo
YVRvQ292ZXJhZ2VFbmFibGVkIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaAppbmRleCA4ZGU1ZDU4ZDk4MzE5Zjhk
OTE4ODg4NmM0NDEwMDk2MDFjM2Y5NzE4Li5mMTYyODVjZTYwY2E2MDg5N2IwODhhN2ZhZWQwMjgx
OWY3MGE1MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
TXVsdGlzYW1wbGVTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVNdWx0aXNhbXBsZVN0YXRlLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KIAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKQEAgLTYzLDMgKzY2LDUgQEAgc3RydWN0IE11bHRpc2FtcGxlU3Rh
dGUgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMTU0ZWJk
ODZjZDczMjU4ZmExYzU4ZmQwYjA4YjYyMDYyYjc2NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
Ok9iamVjdERlc2NyaXB0b3JCYXNlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmIG9iamVjdERlc2NyaXB0b3JC
YXNlKQoreworICAgIHJldHVybiB7IHsgb2JqZWN0RGVzY3JpcHRvckJhc2UubGFiZWwgfSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmgKaW5kZXggNGZjYjlmNTU4Nzc2ZjQzYzE2OGJlNDBlMjcyMTZiNGU0
OTMwYTM2YS4uNjExM2M1MmFlNmY5NDI4ZTYwYzYxMDllZTNiNzkzZDU3NzFlMjI3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2Ny
aXB0b3JCYXNlLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTQ5LDMgKzUy
LDUgQEAgc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ODA4OGUzMmJjYzhjMDAwMWFiY2MyMjUzY2U0YjEzNmM2NGU2ZWY1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmNwcApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVU9yaWdpbjJELmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJX
ZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewor
CitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4yRERpY3Q+IENvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4yRERpY3QmIG9yaWdp
bjJERGljdCkKK3sKKyAgICByZXR1cm4geyB7IG9yaWdpbjJERGljdC54LCBvcmlnaW4yRERpY3Qu
eSB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luMkQmIG9y
aWdpbjJEKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG9yaWdpbjJELCBbXSAoY29uc3Qg
VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6T3JpZ2luMkQ+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0
b3IgfSB9OworICAgIH0sIFt0aGlzXSAoY29uc3QgT3JpZ2luMkREaWN0JiBvcmlnaW4yRERpY3Qp
IC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiB7CisgICAgICAgIGF1dG8g
b3JpZ2luMkQgPSBjb252ZXJ0RnJvbUJhY2tpbmcob3JpZ2luMkREaWN0KTsKKyAgICAgICAgaWYg
KCFvcmlnaW4yRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqb3JpZ2luMkQpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4yRC5oCmluZGV4IGRmMWZmZmQ1Nzg0Mzk1
MjNiZGM3MjExNDMzMjdiMGM2ZmUzYTc3N2QuLjczMWZlOWI0NTYwNDE0YjhlYTE4NWIzYzYwOGI2
MWRiYzJhNGJiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVPcmlnaW4yRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmln
aW4yRC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02MCwzICs2Myw1IEBAIHN0cnVjdCBPcmlnaW4yRERpY3Qg
ewogdXNpbmcgT3JpZ2luMkQgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4sIE9yaWdpbjJERGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2JhMWI2NWJi
MjFmZjQ4YzU0YmE2MzEyZjJkYTkzODNjNTQzOTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdp
bjNELmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVPcmlnaW4zRC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRERpY3Q+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4zRERpY3QmIG9yaWdpbjNERGljdCkK
K3sKKyAgICByZXR1cm4geyB7IG9yaWdpbjNERGljdC54LCBvcmlnaW4zRERpY3QueSwgb3JpZ2lu
M0REaWN0LnogfSB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4g
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IE9yaWdp
bjNEJiBvcmlnaW4zRCkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihvcmlnaW4zRCwgW10g
KGNvbnN0IFZlY3RvcjxQQUw6OldlYkdQVTo6SW50ZWdlckNvb3JkaW5hdGU+JiB2ZWN0b3IpIC0+
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiB7CisgICAgICAgIHJldHVybiB7
IHsgdmVjdG9yIH0gfTsKKyAgICB9LCBbdGhpc10gKGNvbnN0IE9yaWdpbjNERGljdCYgb3JpZ2lu
M0REaWN0KSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4geworICAgICAg
ICBhdXRvIG9yaWdpbjNEID0gY29udmVydEZyb21CYWNraW5nKG9yaWdpbjNERGljdCk7CisgICAg
ICAgIGlmICghb3JpZ2luM0QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICByZXR1cm4geyB7IFdURk1vdmUoKm9yaWdpbjNEKSB9IH07CisgICAgfSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuaAppbmRleCBjZjc0NWE0
MjA3NGFjYjIwZmU3NTE0NmMwZTk0NTMwZTY3NGM4ZTg0Li4zNzZhZTI1MmQ5ZGFmYWM5OWI5NmY4
YWNjNWIzNzgyNGFhMWE2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVT3JpZ2luM0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVT3JpZ2luM0QuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHZhcmlhbnQ+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNjcsMyArNzAsNSBAQCBzdHJ1Y3QgT3JpZ2lu
M0REaWN0IHsKIHVzaW5nIE9yaWdpbjNEID0gc3RkOjp2YXJpYW50PFZlY3RvcjxQQUw6OldlYkdQ
VTo6SW50ZWdlckNvb3JkaW5hdGU+LCBPcmlnaW4zRERpY3Q+OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmEzYzQ5NWY4Yzg0MzU3MzAyOTdhMmRjZDViNmMxN2JjNGY1YWViNmUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZN
ZW1vcnlFcnJvci5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVy
cm9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQ
VTo6T3V0T2ZNZW1vcnlFcnJvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IE91dE9mTWVtb3J5RXJyb3ImIG91dE9mTWVtb3J5RXJyb3IpCit7Cisg
ICAgcmV0dXJuIHsgUEFMOjpXZWJHUFU6Ok91dE9mTWVtb3J5RXJyb3I6OmNyZWF0ZSgpIH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVt
b3J5RXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9y
eUVycm9yLmgKaW5kZXggNmM2OTM1NzU3MWFmMTdlZjllN2Y3NjQyMzg3N2ZmMzQ4NGFhNjY1YS4u
NzU0NTM3NmI4MWZiOTM2ODNlNDUwZTQ0M2RjODUzNGM0YmY5MzExMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oCkBAIC0y
NSw2ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgPG9wdGlvbmFsPgorCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBz
dHJ1Y3QgT3V0T2ZNZW1vcnlFcnJvciB7CkBAIC0zOSwzICs0Myw1IEBAIHN0cnVjdCBPdXRPZk1l
bW9yeUVycm9yIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWJiOGE4Yzk0NmZiYzAzZGE0MTFkMjQ5M2YwY2M5NDJhNzBjMGMyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJh
c2UmIHBpcGVsaW5lRGVzY3JpcHRvckJhc2UpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZy
b21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxp
bmVEZXNjcmlwdG9yQmFzZSkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCogbGF5b3V0ID0gbnVs
bHB0cjsKKyAgICBpZiAocGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5sYXlvdXQpIHsKKyAgICAgICAg
bGF5b3V0ID0gY29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcocGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5sYXlvdXQpOworICAgICAgICBpZiAoIWxheW91dCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwg
bGF5b3V0IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaAppbmRleCA1YzRiNzA3OTAwNTFjZmMx
ZjdjNTU5NTE2NjhiOWY0NWIwNTVlMjJiLi40ZDA3MWYxY2Q2M2VlYTEyYzlhZTA0YjYxOTZiMjUz
OThiMDc5YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisj
aW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTU2
LDMgKzU5LDUgQEAgc3RydWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDdhMjgyMTBmODE0OTFmODQxYTVmMDIwMGYwYjZkNTJjZjMyNzY1MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yJiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IpCit7CisgICAg
YXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERl
c2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNl
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4+IGJpbmRHcm91cExheW91
dHM7CisgICAgYmluZEdyb3VwTGF5b3V0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBiYWNraW5nQmluZEdyb3VwTGF5b3V0IDogcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
LmJpbmRHcm91cExheW91dHMpIHsKKyAgICAgICAgYXV0byogZW50cnkgPSBjb252ZXJ0QmluZEdy
b3VwTGF5b3V0RnJvbUJhY2tpbmcoYmFja2luZ0JpbmRHcm91cExheW91dCk7CisgICAgICAgIGlm
ICghZW50cnkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBiaW5k
R3JvdXBMYXlvdXRzLnVuY2hlY2tlZEFwcGVuZCgqZW50cnkpOworICAgIH0KKworICAgIHJldHVy
biB7IHsgV1RGTW92ZSgqYmFzZSksIFdURk1vdmUoYmluZEdyb3VwTGF5b3V0cykgfSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBl
bGluZUxheW91dERlc2NyaXB0b3IuaAppbmRleCA4MGEyMDE3ZmJjZjlkODRlZTM0MDI0OTdhNmNi
YjQ3OTg2ZjA1NzdhLi41ZTQzMDI4MWFmMmI1MTg0NWI4OWI5ZDJkMGVkZjE1ZDBiNzg3MTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlv
dXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBp
cGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUg
PG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0IFBpcGVsaW5lTGF5b3V0RGVzY3JpcHRv
ciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGI1YTkzZGIxN2NkOTFmYzJjZDQzNTkwMzUzMWI5MGYzMDAxYmZhOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVT
dGF0ZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVQcmltaXRpdmVTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
UHJpbWl0aXZlU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBQcmltaXRpdmVTdGF0ZSYgcHJpbWl0aXZlU3RhdGUpCit7CisgICAgcmV0dXJu
IHsgeyBwcmltaXRpdmVTdGF0ZS50b3BvbG9neSwgcHJpbWl0aXZlU3RhdGUuc3RyaXBJbmRleEZv
cm1hdCwgcHJpbWl0aXZlU3RhdGUuZnJvbnRGYWNlLCBwcmltaXRpdmVTdGF0ZS5jdWxsTW9kZSwg
cHJpbWl0aXZlU3RhdGUudW5jbGlwcGVkRGVwdGggfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKaW5kZXggZDE4MjMzMjIz
ZDk3MGE4ZjA5OTA2MjU4NzgxMTVhYTQ3NTRiNDg5Ny4uZWY2NGRlZDdhOTVlYzM5YjgyOGI0MzA0
NDdiODVkMDNiNjk4YWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVByaW1pdGl2ZVN0YXRlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUN1bGxNb2RlLmg+CiAjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVGcm9udEZhY2UuaD4KQEAgLTg0LDMgKzg2LDUgQEAgc3Ry
dWN0IFByaW1pdGl2ZVN0YXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YmMzMzVmZjFkODQyMTZlZTA3MTQzYThlNWQ1ZTdhMjI0MDIxZmYwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdl
LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpQcm9ncmFtbWFibGVTdGFnZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IFByb2dyYW1tYWJsZVN0YWdlJiBwcm9ncmFtbWFibGVTdGFnZSkKK3sK
KyAgICBhdXRvIG1vZHVsZSA9IGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhwcm9ncmFt
bWFibGVTdGFnZS5tb2R1bGUpOworICAgIGlmICghbW9kdWxlKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqbW9kdWxlLCBwcm9ncmFtbWFibGVTdGFnZS5l
bnRyeVBvaW50LCBwcm9ncmFtbWFibGVTdGFnZS5jb25zdGFudHMgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgK
aW5kZXggZTFmMGFlMGQ2OWYyOWJiOWZmNzgyZWVkNjJkMzZkMzg1N2MxOWZlYy4uYzhiYzJjZDc3
MTZiNDA3ZGM1ZDdhNTk2ZDZmNDQzNzZlMWE1ZGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgKQEAgLTI1LDcgKzI1
LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5j
bHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUg
PHd0Zi9LZXlWYWx1ZVBhaXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNjgsMyArNzEsNSBAQCBzdHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2Ugewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVRdWVyeVNldERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZTM3MWM1NWY2OGU3MmI1
NWFkNWQzNmI3YzBlY2M3YzJiMzZmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUXVl
cnlTZXREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UXVlcnlTZXREZXNjcmlw
dG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3Qg
UXVlcnlTZXREZXNjcmlwdG9yJiBxdWVyeVNldERlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNl
ID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JC
YXNlJj4ocXVlcnlTZXREZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgcXVlcnlT
ZXREZXNjcmlwdG9yLnR5cGUsIHF1ZXJ5U2V0RGVzY3JpcHRvci5jb3VudCwgcXVlcnlTZXREZXNj
cmlwdG9yLnBpcGVsaW5lU3RhdGlzdGljcyB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCmluZGV4IGJlMTEy
ZDkyNTY2NWRiYTRhMDIzYWY0N2VlZDlmODI0YWI5M2I5Y2UuLmU5ZDEzNzVjOGRlMmFjNjYxMTFh
NDBjZGQ2ZWM2Y2FmMDhlMDM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lU3RhdGlzdGljTmFtZS5oPgogI2luY2x1
ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVlcnlUeXBlLmg+CkBAIC03MywzICs3Niw1
IEBAIHN0cnVjdCBRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2Rl
OTJlYzE2ZTQxMDI3ZWVhM2QxYjZiNjQ2OTczZWVmNGI4YTZjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3Iu
Y3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3Jp
cHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvciYgcmVu
ZGVyQnVuZGxlRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihyZW5kZXJCdW5kbGVE
ZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSB9IH07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmgKaW5kZXggYzA5NjI4MDc2NDFiZjljYTQwMWQ4MTJiYTIwMDMxYjJlYTkwMGE2ZS4uNzNh
MmYwODEyMGM3M2I0Njk2MjNlMGI0OGE2ZmQxMmQ1MDBjOTkxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRv
ci5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTQ3LDMg
KzUwLDUgQEAgc3RydWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI2NzQxZTJiMWZmM2JiYjMzNzNjNDk3ZTA4NWVhMWMyMjM1MGM4
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyQnVuZGxl
RW5jb2RlckRlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3ImIHJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJQYXNzTGF5b3V0Jj4ocmVuZGVyQnVu
ZGxlRW5jb2RlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCByZW5kZXJCdW5k
bGVFbmNvZGVyRGVzY3JpcHRvci5kZXB0aFJlYWRPbmx5LCByZW5kZXJCdW5kbGVFbmNvZGVyRGVz
Y3JpcHRvci5zdGVuY2lsUmVhZE9ubHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNj
cmlwdG9yLmgKaW5kZXggZTI5Y2Q1NGI5NWNhNDBhYzBhZDhiZTU5ZTc0ODMyZDJkZThkYjQxYS4u
YzlkMDcxMWUzYmE3ZDE1YTU5NGMwNWMwMTEyNGY2MmMzNGRmZWIyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlw
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRs
ZUVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0xh
eW91dC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewogCkBAIC02MiwzICs2NSw1IEBAIHN0cnVjdCBSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRv
ciA6IHB1YmxpYyBSZW5kZXJQYXNzTGF5b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg4NzM4YjUwOWFhNGI3MTc1NzA4ODdkMDk1Mjk4
Y2I2ZGY0MjliMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBh
c3NDb2xvckF0dGFjaG1lbnQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaD4KKworbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVy
UGFzc0NvbG9yQXR0YWNobWVudD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQmIHJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnQpCit7CisgICAgYXV0byB2aWV3ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJh
Y2tpbmcocmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC52aWV3KTsKKyAgICBpZiAoIXZpZXcpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZVZp
ZXcqIHJlc29sdmVUYXJnZXQgPSBudWxscHRyOworICAgIGlmIChyZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50LnJlc29sdmVUYXJnZXQpIHsKKyAgICAgICAgcmVzb2x2ZVRhcmdldCA9IGNvbnZlcnRU
ZXh0dXJlVmlld0Zyb21CYWNraW5nKHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQucmVzb2x2ZVRh
cmdldCk7CisgICAgICAgIGlmICghcmVzb2x2ZVRhcmdldCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgYXV0byBsb2FkVmFsdWUgPSBXVEY6OnN3aXRjaE9u
KHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQubG9hZFZhbHVlLCBbXSAoUEFMOjpXZWJHUFU6Okxv
YWRPcCBsb2FkT3ApIC0+IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpM
b2FkT3AsIFZlY3Rvcjxkb3VibGU+LCBQQUw6OldlYkdQVTo6Q29sb3JEaWN0Pj4geworICAgICAg
ICByZXR1cm4geyB7IGxvYWRPcCB9IH07CisgICAgfSwgW10gKGNvbnN0IFZlY3Rvcjxkb3VibGU+
JiB2ZWN0b3IpIC0+IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFBBTDo6V2ViR1BVOjpMb2Fk
T3AsIFZlY3Rvcjxkb3VibGU+LCBQQUw6OldlYkdQVTo6Q29sb3JEaWN0Pj4geworICAgICAgICBy
ZXR1cm4geyB7IHZlY3RvciB9IH07CisgICAgfSwgW3RoaXNdIChjb25zdCBDb2xvckRpY3QmIG9y
aWdpbkNvbG9yRGljdCkgLT4gc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6
OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIFBBTDo6V2ViR1BVOjpDb2xvckRpY3Q+PiB7CisgICAg
ICAgIGF1dG8gY29sb3JEaWN0ID0gY29udmVydEZyb21CYWNraW5nKG9yaWdpbkNvbG9yRGljdCk7
CisgICAgICAgIGlmICghY29sb3JEaWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpjb2xvckRpY3QpIH0gfTsKKyAgICB9KTsK
KyAgICBpZiAoIWxvYWRWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHJldHVybiB7IHsgKnZpZXcsIHJlc29sdmVUYXJnZXQsIFdURk1vdmUoKmxvYWRWYWx1ZSksIHJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnQuc3RvcmVPcCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRh
Y2htZW50LmgKaW5kZXggYjBkODkyN2VmMmJhOGEzMGI5ZWE2YjZkNWRmNDdlMTQ4NjRlYzdkYS4u
YThjNmQ2YWVmMzIyYzYwYjgwZTY2NTZiOTA2YWJlYTcyZGZiNWEyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudC5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUNvbG9yLmgiCiAjaW5jbHVkZSAi
V2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVTG9hZE9wLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVTdG9yZU9wLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KQEAgLTc3LDMgKzgwLDUg
QEAgc3RydWN0IFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Y2E0MmYy
ZDM3NjIyODVmMjJmZjYyMDFjYmFjNDRmODllMTAzOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFj
aG1lbnQuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5j
aWxBdHRhY2htZW50PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQmIHJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50KQoreworICAgIGF1dG8gdmlldyA9IGNvbnZlcnRUZXh0dXJlVmll
d0Zyb21CYWNraW5nKHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LnZpZXcpOworICAg
IGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7
IHsgKnZpZXcsIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmRlcHRoTG9hZFZhbHVl
LCByZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5kZXB0aFN0b3JlT3AsIHJlbmRlclBh
c3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmRlcHRoUmVhZE9ubHksIHJlbmRlclBhc3NEZXB0aFN0
ZW5jaWxBdHRhY2htZW50LnN0ZW5jaWxMb2FkVmFsdWUsIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxB
dHRhY2htZW50LnN0ZW5jaWxTdG9yZU9wLCByZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVu
dC5zdGVuY2lsUmVhZE9ubHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50LmgKaW5kZXggZTgyZWQ2YzgxZThhY2E3ODVjODA1OGMwMzI0MjZlZTVmMGMyYmI0Mi4u
YjFjNTViYWNlMDA1ZDYxOGZlYzM4MDhiNWIzOTAxODgwNDU4NzE0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVTG9hZE9wLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdG9y
ZU9wLmg+CkBAIC05OCwzICsxMDEsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0
dGFjaG1lbnQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
YmRmY2EwNTc4MzljNWFlMzk5Y2IzYjA5Y2I1NzZiYjliYjY4MGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
Y3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIK
KyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3ImIHJlbmRlclBhc3NE
ZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBhc3NEZXNjcmlwdG9yKSk7
CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVj
dG9yPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBjb2xvckF0dGFjaG1l
bnRzOworICAgIGNvbG9yQXR0YWNobWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZW5kZXJQ
YXNzRGVzY3JpcHRvci5jb2xvckF0dGFjaG1lbnRzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBiYWNraW5nQ29sb3JBdHRhY2htZW50IDogcmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29sb3JB
dHRhY2htZW50cykgeworICAgICAgICBhdXRvIGNvbG9yQXR0YWNobWVudCA9IGNvbnZlcnRGcm9t
QmFja2luZyhiYWNraW5nQ29sb3JBdHRhY2htZW50KTsKKyAgICAgICAgaWYgKCFjb2xvckF0dGFj
aG1lbnQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBjb2xvckF0
dGFjaG1lbnRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCpjb2xvckF0dGFjaG1lbnQpKTsKKyAg
ICB9CisKKyAgICBhdXRvIGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQgPSAoWyZdICgpIC0+IHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50PiB7
CisgICAgICAgIGlmIChyZW5kZXJQYXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2htZW50
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGFzc0Rlc2Ny
aXB0b3IuZGVwdGhTdGVuY2lsQXR0YWNobWVudCk7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfSkoKTsKKyAgICBpZiAocmVuZGVyUGFzc0Rlc2NyaXB0b3IuZGVwdGhTdGVuY2ls
QXR0YWNobWVudCAmJiAhZGVwdGhTdGVuY2lsQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIFBBTDo6V2ViR1BVOjpRdWVyeVNldCogb2NjbHVzaW9uUXVlcnlT
ZXQgPSBudWxscHRyOworICAgIGlmIChyZW5kZXJQYXNzRGVzY3JpcHRvci5vY2NsdXNpb25RdWVy
eVNldCkgeworICAgICAgICBvY2NsdXNpb25RdWVyeVNldCA9IGNvbnZlcnRRdWVyeVNldEZyb21C
YWNraW5nKHJlbmRlclBhc3NEZXNjcmlwdG9yLm9jY2x1c2lvblF1ZXJ5U2V0KTsKKyAgICAgICAg
aWYgKCFvY2NsdXNpb25RdWVyeVNldCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfQorCisgICAgYXV0byB0aW1lc3RhbXBXcml0ZXMgPSBjb252ZXJ0RnJvbUJhY2tpbmco
cmVuZGVyUGFzc0Rlc2NyaXB0b3IudGltZXN0YW1wV3JpdGVzKTsKKyAgICBpZiAoIXRpbWVzdGFt
cFdyaXRlcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqYmFzZSksIFdURk1vdmUoY29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoZGVwdGhT
dGVuY2lsQXR0YWNobWVudCksIG9jY2x1c2lvblF1ZXJ5U2V0LCBXVEZNb3ZlKCp0aW1lc3RhbXBX
cml0ZXMpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCmluZGV4IGJhNGNlZTIxMGNhMDBiZWI5ZThi
ODc3ZmY3OTcyNmM0NWZiZDgxMWIuLmI3ZThmNWQ4NGExNjA5ZDJkYjk1MDJmNzZhM2U0OGU2ZWIw
ZjY1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSAi
V2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIgpAQCAtODIsMyArODQsNSBAQCBzdHJ1
Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjQ4NzFmMGI1OTg5NGEwZThlNjY3
YWU4Yjk0NmJjNzM3OTI2MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFz
c0xheW91dC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
eworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0PiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0xh
eW91dCYgcmVuZGVyUGFzc0xheW91dCkKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihyZW5kZXJQYXNz
TGF5b3V0KSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgcmVuZGVyUGFzc0xheW91dC5jb2xvckZv
cm1hdHMsIHJlbmRlclBhc3NMYXlvdXQuZGVwdGhTdGVuY2lsRm9ybWF0LCByZW5kZXJQYXNzTGF5
b3V0LnNhbXBsZUNvdW50IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaAppbmRleCA0ZWUzMWVlMzZhY2JlOWNjN2Q0
ZjhiYTBkNWI2MmRiMzdhNzE0Mzk1Li4zMTA0MjhkZjZiZTc2YzNiNDkwNjhiZDM4ZmUxNzI0MTVk
MzExMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzTGF5b3V0LmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgpAQCAtNzMsMyArNzUsNSBAQCBzdHJ1Y3QgUmVuZGVy
UGFzc0xheW91dCA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODQ3ZDE1MzM5YzQyNjBm
NGE4NWM2ZWI1YmYwOGJjOGE0OGFmODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSYgcmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlKQoreworICAgIGF1dG8qIHF1ZXJ5U2V0ID0gY29udmVydFF1
ZXJ5U2V0RnJvbUJhY2tpbmcocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLnF1ZXJ5U2V0KTsKKyAg
ICBpZiAoIXF1ZXJ5U2V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHsgeyAqcXVlcnlTZXQsIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5xdWVyeUluZGV4LCBy
ZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUubG9jYXRpb24gfSB9OworfQorCitzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzPiBDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc1RpbWVzdGFtcFdy
aXRlcyYgcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykKK3sKKyAgICBWZWN0b3I8UEFMOjpXZWJH
UFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gdGltZXN0YW1wV3JpdGVzOworICAgIHRpbWVz
dGFtcFdyaXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlbmRlclBhc3NUaW1lc3RhbXBXcml0
ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdUaW1lc3RhbXBXcml0ZSA6
IHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMpIHsKKyAgICAgICAgYXV0byB0aW1lc3RhbXBXcml0
ZSA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nVGltZXN0YW1wV3JpdGUpOworICAgICAgICBp
ZiAoIXRpbWVzdGFtcFdyaXRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgdGltZXN0YW1wV3JpdGVzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCp0aW1lc3RhbXBX
cml0ZSkpOworICAgIH0KKyAgICByZXR1cm4gdGltZXN0YW1wV3JpdGVzOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oCmluZGV4IDhiOTI2M2E3YzQ4MGQwODMxZjU0NDk5NmZlZTExYjI3MDRl
NGVhZWQuLjlkNDkzMmNlODQzMjNhNTU3NzM5ODM3ZTllZThjODYxYTJkMWQ3OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZXMuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzVGltZXN0YW1wTG9jYXRpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC02
OSwzICs3Miw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUgewogdXNpbmcgUmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU+
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzFjNDZm
MDVmYTE4NmI3MmRjZGM3MDViODE2ODI2NDBmOTcyZjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5j
cHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3ImIHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0
RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSY+KHJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gdmVydGV4ID0gY29udmVydEZyb21CYWNraW5nKHJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvci52ZXJ0ZXgpOworICAgIGlmICghdmVydGV4KQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
UHJpbWl0aXZlU3RhdGU+IHByaW1pdGl2ZTsKKyAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLnByaW1pdGl2ZSkgeworICAgICAgICBwcmltaXRpdmUgPSBjb252ZXJ0RnJvbUJhY2tpbmco
KnJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5wcmltaXRpdmUpOworICAgICAgICBpZiAoIXByaW1p
dGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGVwdGhTdGVuY2lsU3RhdGU+IGRlcHRoU3RlbmNpbDsK
KyAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmRlcHRoU3RlbmNpbCkgeworICAgICAg
ICBkZXB0aFN0ZW5jaWwgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKnJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5kZXB0aFN0ZW5jaWwpOworICAgICAgICBpZiAoIWRlcHRoU3RlbmNpbCkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZT4gbXVsdGlzYW1wbGU7CisgICAgaWYgKHJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvci5tdWx0aXNhbXBsZSkgeworICAgICAgICBtdWx0aXNhbXBsZSA9IGNv
bnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLm11bHRpc2FtcGxlKTsK
KyAgICAgICAgaWYgKCFtdWx0aXNhbXBsZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfQorCisgICAgYXV0byBmcmFnbWVudCA9IChbJl0gKCkgLT4gc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6RnJhZ21lbnRTdGF0ZT4geworICAgICAgICBpZiAocmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmZyYWdtZW50KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRGcm9tQmFj
a2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmZyYWdtZW50KTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICB9KSgpOworICAgIGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuZnJhZ21lbnQgJiYgIWZyYWdtZW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSgqdmVydGV4KSwgV1RGTW92
ZShwcmltaXRpdmUpLCBXVEZNb3ZlKGRlcHRoU3RlbmNpbCksIFdURk1vdmUobXVsdGlzYW1wbGUp
LCBXVEZNb3ZlKGZyYWdtZW50KSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oCmluZGV4
IDZjMmVmNzMwOTJhYTI0Y2FmM2Q1OTQxN2I0Y2IwNjFhOTkyZWYxMDYuLjRiYzA1ODg2YzJlYTRm
YjYwMGVmNGI4Yzk1MmQ2M2YwZjI2ZjViMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgKQEAg
LTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICNpbmNsdWRlICJXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIgogI2luY2x1ZGUgIldlYkdQ
VUZyYWdtZW50U3RhdGUuaCIKICNpbmNsdWRlICJXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgiCkBA
IC04OSwzICs5MSw1IEBAIHN0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgOiBwdWJsaWMg
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mZjE0ZTc5ODJjNDQzYjFjNDBlMmUwYzA5NzhiNzFhZDc0MTdlNzY2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJl
cXVlc3RBZGFwdGVyT3B0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnM+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZXF1ZXN0QWRhcHRl
ck9wdGlvbnMmIHJlcXVlc3RBZGFwdGVyT3B0aW9ucykKK3sKKyAgICByZXR1cm4geyB7IHJlcXVl
c3RBZGFwdGVyT3B0aW9ucy5wb3dlclByZWZlcmVuY2UsIHJlcXVlc3RBZGFwdGVyT3B0aW9ucy5m
b3JjZUZhbGxiYWNrQWRhcHRlciB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oCmluZGV4IDA2YjAz
MWM3MTJlZGU4N2Y1ODU5YTNkNTNiM2I0NmVkNTkxMTIzMzcuLmRlNjIxNDU5ODc0ZjE0ZDBlMTE4
YzY5YWE4OGNhNGFmYThlODRkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmgKQEAgLTI1LDYgKzI1LDgg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
IDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBvd2VyUHJl
ZmVyZW5jZS5oPgogCkBAIC01NywzICs1OSw1IEBAIHN0cnVjdCBSZXF1ZXN0QWRhcHRlck9wdGlv
bnMgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5ODQyNzQ5
NGI0NTU4ODFiMzQ1Yjc0MDM2MTBkODcwMmYyN2NmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlNhbXBsZXJCaW5kaW5nTGF5b3V0PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgU2FtcGxlckJpbmRpbmdMYXlvdXQmIHNhbXBsZXJCaW5kaW5nTGF5
b3V0KQoreworICAgIHJldHVybiB7IHsgc2FtcGxlckJpbmRpbmdMYXlvdXQudHlwZSB9IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaAppbmRleCA5NTkyMWVhNTg3NDU1M2Q4ZmJmMGNkNWE1M2I0ZDAwNTAw
NmUzMmYyLi42ZjBkZGMxNDkxYTg3MDYwNzg0NDQ2YTIyZjgxNzdiZjkwNzk1MGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlv
dXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdUeXBlLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CkBAIC00OSwzICs1Miw1IEBAIHN0cnVjdCBTYW1wbGVyQmluZGluZ0xheW91
dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y2NGFhZDBmZjNjYjFl
MDI1MGM3MWY0NDIyYmM3MGE2MmI1NmEzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVT
YW1wbGVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2FtcGxlckRlc2NyaXB0
b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBT
YW1wbGVyRGVzY3JpcHRvciYgc2FtcGxlckRlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0g
Y29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNl
Jj4oc2FtcGxlckRlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBzYW1wbGVyRGVz
Y3JpcHRvci5hZGRyZXNzTW9kZVUsIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJlc3NNb2RlViwgc2Ft
cGxlckRlc2NyaXB0b3IuYWRkcmVzc01vZGVXLCBzYW1wbGVyRGVzY3JpcHRvci5tYWdGaWx0ZXIs
IHNhbXBsZXJEZXNjcmlwdG9yLm1pbkZpbHRlciwgc2FtcGxlckRlc2NyaXB0b3IubWlwbWFwRmls
dGVyLCBzYW1wbGVyRGVzY3JpcHRvci5sb2RNaW5DbGFtcCwgc2FtcGxlckRlc2NyaXB0b3IubG9k
TWF4Q2xhbXAsIHNhbXBsZXJEZXNjcmlwdG9yLmNvbXBhcmUsIHNhbXBsZXJEZXNjcmlwdG9yLm1h
eEFuaXNvdHJvcHkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgKaW5kZXggYjhkODU5NDg3MTQyYmNjZmFjNTEx
NWY5YmZhZDllMzljYjBjNTNhZi4uN2E0NTFlMTk2MTZmM2M2ZDYyZTgwNzZjOWQ3YzBmZGIyMGRk
NzJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBs
ZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNh
bXBsZXJEZXNjcmlwdG9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CkBAIC0xMjMs
MyArMTI1LDUgQEAgc3RydWN0IFNhbXBsZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjU0YWM3ZGQ0ZmNiZWFlMTUwOGJhODc0YWMyZmM5OWQxZWNjNjdhMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVs
ZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFNoYWRlck1vZHVsZURlc2NyaXB0
b3ImIHNoYWRlck1vZHVsZURlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZy
b21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oc2hhZGVy
TW9kdWxlRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHNoYWRlck1vZHVsZURl
c2NyaXB0b3IuY29kZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgKaW5kZXggZGQ3Nzg2Y2U4
Yjk2NjExNmQyNjlhMjUxMGE1ZjJmODIyOWMxNzA0Yy4uYjIxZWExYmIyM2QzZDMxMGI4NDhmYjRl
ZTIxZDQwOGFlZmJhMmE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUg
IldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7
CkBAIC01NywzICs2MCw1IEBAIHN0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIDogcHVibGlj
IE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTdiZDg1N2M2OGVjZTAxMDRiOWE2YzIyZWU1ZjI3NWFiYmQ1NDU5ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRl
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
U3RlbmNpbEZhY2VTdGF0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IFN0ZW5jaWxGYWNlU3RhdGUmIHN0ZW5jaWxGYWNlU3RhdGUpCit7CisgICAg
cmV0dXJuIHsgeyBzdGVuY2lsRmFjZVN0YXRlLmNvbXBhcmUsIHN0ZW5jaWxGYWNlU3RhdGUuZmFp
bE9wLCBzdGVuY2lsRmFjZVN0YXRlLmRlcHRoRmFpbE9wLCBzdGVuY2lsRmFjZVN0YXRlLnBhc3NP
cCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN0ZW5jaWxGYWNlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dGVuY2lsRmFjZVN0YXRlLmgKaW5kZXggZTQwMWI2NGNkMzUyZmZhZDBmNmE1NDg3NTcxMzI1OTcy
ZDM4MjQ4My4uMGExNDEwOGVjMmVmODk4ZTlkZDI0Y2Q5MDg2NWNiMjMxOTg4YzE1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVN0ZW5jaWxPcGVyYXRpb24uaD4KIApAQCAtNzEsMyArNzQsNSBAQCBzdHJ1Y3Qg
U3RlbmNpbEZhY2VTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5
b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iM2E2ZjAyOWNiODM1NjM4ZjVhMTJmZTQ5NzE3YmMyNjc3MDk2
NjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTdG9yYWdlVGV4dHVy
ZUJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdG9yYWdl
VGV4dHVyZUJpbmRpbmdMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQmIHN0b3JhZ2VUZXh0
dXJlQmluZGluZ0xheW91dCkKK3sKKyAgICByZXR1cm4geyB7IHN0b3JhZ2VUZXh0dXJlQmluZGlu
Z0xheW91dC5hY2Nlc3MsIHN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5mb3JtYXQsIHN0b3Jh
Z2VUZXh0dXJlQmluZGluZ0xheW91dC52aWV3RGltZW5zaW9uIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1
cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggYzI1YjFhZjM0MWFhYTA3MDE1OTYwMDU1OGUzY2I2Njcw
MDE4M2E5Zi4uNjc0OTYxMmE2MzVjNjAzNTI2ZTFjMjI5NGQ5OGQ5OTZmOTNmZWU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmlu
ZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9y
YWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVBY2Nlc3MuaD4K
ICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaD4KICNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGltZW5zaW9uLmg+
CkBAIC02NSwzICs2OCw1IEBAIHN0cnVjdCBTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZDZkYzJjM2E2ZjZiNTQ4NmFh
NTlkYzdiZDZjNjQ0NTUyY2I5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU3VwcG9y
dGVkRmVhdHVyZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTdXBwb3J0ZWRGZWF0
dXJlcyYgc3VwcG9ydGVkRmVhdHVyZXMpCit7CisgICAgcmV0dXJuIHsgUEFMOjpXZWJHUFU6OlN1
cHBvcnRlZEZlYXR1cmVzOjpjcmVhdGUoc3VwcG9ydGVkRmVhdHVyZXMuZmVhdHVyZXMpIH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRl
ZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVk
RmVhdHVyZXMuaAppbmRleCAxMGYzODkwM2UwNzI0MzIzOTE4MzZjMjY2MzMzZmM1OTViZGM3NjIw
Li5hNjViNzIyOTExNDc4MjRjMWI5Mzk1ZTk1ZjA1MWMzMTlmNDQ4OWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaApA
QCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTAsMyArNTMsNSBAQCBzdHJ1Y3QgU3Vw
cG9ydGVkRmVhdHVyZXMgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyYzA0
MWY5YzA2M2IxM2UwOWEzNzVlMDY1ZmU5ZmYxYjYwODY1YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR1BVU3VwcG9ydGVkTGltaXRzLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworUmVmUHRyPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTdXBwb3J0
ZWRMaW1pdHMmIHN1cHBvcnRlZExpbWl0cykKK3sKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6
U3VwcG9ydGVkTGltaXRzOjpjcmVhdGUoCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhUZXh0
dXJlRGltZW5zaW9uMUQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhUZXh0dXJlRGltZW5z
aW9uMkQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhUZXh0dXJlRGltZW5zaW9uM0QsCisg
ICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhUZXh0dXJlQXJyYXlMYXllcnMsCisgICAgICAgIHN1
cHBvcnRlZExpbWl0cy5tYXhCaW5kR3JvdXBzLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4
RHluYW1pY1VuaWZvcm1CdWZmZXJzUGVyUGlwZWxpbmVMYXlvdXQsCisgICAgICAgIHN1cHBvcnRl
ZExpbWl0cy5tYXhEeW5hbWljU3RvcmFnZUJ1ZmZlcnNQZXJQaXBlbGluZUxheW91dCwKKyAgICAg
ICAgc3VwcG9ydGVkTGltaXRzLm1heFNhbXBsZWRUZXh0dXJlc1BlclNoYWRlclN0YWdlLAorICAg
ICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4U2FtcGxlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAg
c3VwcG9ydGVkTGltaXRzLm1heFN0b3JhZ2VCdWZmZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAg
IHN1cHBvcnRlZExpbWl0cy5tYXhTdG9yYWdlVGV4dHVyZXNQZXJTaGFkZXJTdGFnZSwKKyAgICAg
ICAgc3VwcG9ydGVkTGltaXRzLm1heFVuaWZvcm1CdWZmZXJzUGVyU2hhZGVyU3RhZ2UsCisgICAg
ICAgIHN1cHBvcnRlZExpbWl0cy5tYXhVbmlmb3JtQnVmZmVyQmluZGluZ1NpemUsCisgICAgICAg
IHN1cHBvcnRlZExpbWl0cy5tYXhTdG9yYWdlQnVmZmVyQmluZGluZ1NpemUsCisgICAgICAgIHN1
cHBvcnRlZExpbWl0cy5taW5Vbmlmb3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50LAorICAgICAgICBz
dXBwb3J0ZWRMaW1pdHMubWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCwKKyAgICAgICAg
c3VwcG9ydGVkTGltaXRzLm1heFZlcnRleEJ1ZmZlcnMsCisgICAgICAgIHN1cHBvcnRlZExpbWl0
cy5tYXhWZXJ0ZXhBdHRyaWJ1dGVzLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VmVydGV4
QnVmZmVyQXJyYXlTdHJpZGUsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhJbnRlclN0YWdl
U2hhZGVyQ29tcG9uZW50cywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVXb3Jr
Z3JvdXBTdG9yYWdlU2l6ZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVJbnZv
Y2F0aW9uc1Blcldvcmtncm91cCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVX
b3JrZ3JvdXBTaXplWCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVXb3JrZ3Jv
dXBTaXplWSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVXb3JrZ3JvdXBTaXpl
WiwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heENvbXB1dGVXb3JrZ3JvdXBzUGVyRGltZW5z
aW9uKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRMaW1pdHMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
dXBwb3J0ZWRMaW1pdHMuaAppbmRleCBmYWNhMDNlZDRmZWUzNTE2Njg1OTM3YmNlMWQ2ZGZkMmEy
Yzk2ZDUwLi4xNGQ5NWZkZTAyNmFhZmVhYmZiNmQ0ODYyYWI1OWI2OWE1ZTc2ZDJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5o
CkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKwogI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTI1MSwzICsyNTQsNSBAQCBzdHJ1Y3QgU3VwcG9y
dGVkTGltaXRzIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NWQ0NTEzMGY1MzVkMWQ0ZWE5MDA3YjJkYzE2MWJhYTczN2IwOTU2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmgi
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91
dC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpUZXh0dXJlQmluZGluZ0xheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVCaW5kaW5nTGF5b3V0JiB0ZXh0dXJlQmlu
ZGluZ0xheW91dCkKK3sKKyAgICByZXR1cm4geyB7IHRleHR1cmVCaW5kaW5nTGF5b3V0LnNhbXBs
ZVR5cGUsIHRleHR1cmVCaW5kaW5nTGF5b3V0LnZpZXdEaW1lbnNpb24sIHRleHR1cmVCaW5kaW5n
TGF5b3V0Lm11bHRpc2FtcGxlZCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAppbmRleCBhMjliOWNm
MmQ3OGU5MjVkMGJhMDNkYzYyMzhhZTc0OWYzMDgwZmZmLi4yNTY2YmRkNzAwMWQ5YWNmOTVjZDM3
YzM5ZWM5NTM1MjMwOWFmYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuaApAQCAtMjUsNiArMjUsOSBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9w
dGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVNhbXBs
ZVR5cGUuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3
RGltZW5zaW9uLmg+CiAKQEAgLTY0LDMgKzY3LDUgQEAgc3RydWN0IFRleHR1cmVCaW5kaW5nTGF5
b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGYzMTY3YjlhNmQy
MmIyMmRhNmE4NGQ4ZjRkYzM0NDkxNDliMGE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQ
VVRleHR1cmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlRGVzY3Jp
cHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IFRleHR1cmVEZXNjcmlwdG9yJiB0ZXh0dXJlRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2Ug
PSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJh
c2UmPih0ZXh0dXJlRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gc2l6ZSA9IGNvbnZlcnRGcm9tQmFja2luZyh0ZXh0
dXJlRGVzY3JpcHRvci5zaXplKTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKCpzaXpl
KSwgdGV4dHVyZURlc2NyaXB0b3IubWlwTGV2ZWxDb3VudCwgdGV4dHVyZURlc2NyaXB0b3Iuc2Ft
cGxlQ291bnQsIHRleHR1cmVEZXNjcmlwdG9yLmRpbWVuc2lvbiwgdGV4dHVyZURlc2NyaXB0b3Iu
Zm9ybWF0LCB0ZXh0dXJlRGVzY3JpcHRvci51c2FnZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaAppbmRleCAz
MzIyMTdiYTYxMjUyYzE0ODA3YmU2NDg4MDI5ZTM1ZDhlYzUyNTIzLi4wYmUwZGZmYTA4ZmNlYTlk
MTllNWU4MGRkNDU4YTE5YTAyYTYxN2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaApAQCAtMjUsOCArMjUsMTEgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJX
ZWJHUFVFeHRlbnQzRC5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgi
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGltZW5zaW9uLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRm9ybWF0Lmg+CkBAIC05NSwzICs5OCw1IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRv
ciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNj
cmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWNjNTUxY2I3NzA1MTY5NmZlNzlkYjA0ZWI0OWE0OTQ4
NGI0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3I+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0
dXJlVmlld0Rlc2NyaXB0b3ImIHRleHR1cmVWaWV3RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJh
c2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRv
ckJhc2UmPih0ZXh0dXJlVmlld0Rlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCB0
ZXh0dXJlVmlld0Rlc2NyaXB0b3IuZm9ybWF0LCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuZGltZW5z
aW9uLCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuYXNwZWN0LCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3Iu
YmFzZU1pcExldmVsLCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IubWlwTGV2ZWxDb3VudCwgdGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLmJhc2VBcnJheUxheWVyLCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuYXJy
YXlMYXllckNvdW50IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKaW5kZXggYTgxNzQzNTVlMWQ2
OWYzMzY4MjlmNjQyM2YwMzEyMmU5OWZlODljNS4uNzk1NGQ3YTg1Yjg3N2ZiNGQyMzgwNzFiZGY1
ODM4YzIyYTliMDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaApAQCAtMjUsNiArMjUsOCBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQ
VU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CkBAIC0xMDIsMyArMTA0
LDUgQEAgc3RydWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlw
dG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjFiY2ZhZDA0Mzgy
N2U5NDViMjVkNGVhMDI1MjdjNjQwYjk2OGE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVW
YWxpZGF0aW9uRXJyb3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgeworCitSZWZQdHI8UEFMOjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcj4gQ29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFZhbGlkYXRpb25FcnJv
ciYgdmFsaWRhdGlvbkVycm9yKQoreworICAgIHJldHVybiB7IFBBTDo6V2ViR1BVOjpWYWxpZGF0
aW9uRXJyb3I6OmNyZWF0ZSh2YWxpZGF0aW9uRXJyb3IubWVzc2FnZSkgfTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgKaW5k
ZXggNDI0ODEwMmRmNmY0MGZhZGFmOGFhZjA2MTljNTgyMTQ1YTU5NmYxNi4uMjY4ZWU1MTU4NzAw
ZDdhNDIyYmE4ZWRlOWEzZGZiNGExNjg2NTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaApAQCAtMjUsNiArMjUsOSBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9w
dGlvbmFsPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewpAQCAtNDksMyArNTIsNSBAQCBzdHJ1Y3QgVmFsaWRhdGlvbkVycm9yIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4QXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZWQ1ZGI2OTNlMDM1ZGVjMDAwNzA4
YTU4NDhkMDUzYzA2ZjM5ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEF0dHJp
YnV0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVmVydGV4QXR0cmlidXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisK
K3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gQ29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFZlcnRleEF0dHJpYnV0ZSYg
dmVydGV4QXR0cmlidXRlKQoreworICAgIHJldHVybiB7IHsgdmVydGV4QXR0cmlidXRlLmZvcm1h
dCwgdmVydGV4QXR0cmlidXRlLm9mZnNldCwgdmVydGV4QXR0cmlidXRlLnNoYWRlckxvY2F0aW9u
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4QXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QXR0cmlidXRlLmgKaW5kZXggZjkzZmJjZDYyYzEyODkwNzNjNGE5NjcxZmIyYjY2MDZkZDBk
ZDM1MS4uYjEzZjhjNmI0YzVjOWExY2I3NTc5ZGJlMjc0ZDg1M2YwOTdlNzM2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaApA
QCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVmVydGV4Rm9ybWF0Lmg+CiAKQEAgLTY1LDMgKzY4LDUgQEAgc3RydWN0IFZlcnRleEF0dHJp
YnV0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTQ4MmQwNjVh
ZWE1ZjhiNjcyZTc0NjE3OGY2ZDhjZGYyMWM3MDcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhC
dWZmZXJMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBWZXJ0ZXhCdWZmZXJMYXlvdXQmIHZlcnRleEJ1ZmZlckxheW91dCkKK3sKKyAgICBW
ZWN0b3I8UEFMOjpXZWJHUFU6OlZlcnRleEF0dHJpYnV0ZT4gYXR0cmlidXRlczsKKyAgICBhdHRy
aWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmVydGV4QnVmZmVyTGF5b3V0LmF0dHJpYnV0
ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdBdHRyaWJ1dGUgOiB2ZXJ0
ZXhCdWZmZXJMYXlvdXQuYXR0cmlidXRlcykgeworICAgICAgICBhdXRvIGF0dHJpYnV0ZSA9IGNv
bnZlcnRGcm9tQmFja2luZyhiYWNraW5nQXR0cmlidXRlKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1
dGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdHRyaWJ1dGVz
LnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCphdHRyaWJ1dGUpKTsKKyAgICB9CisKKyAgICByZXR1
cm4geyB7IHZlcnRleEJ1ZmZlckxheW91dC5hcnJheVN0cmlkZSwgdmVydGV4QnVmZmVyTGF5b3V0
LnN0ZXBNb2RlLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKaW5kZXgg
MjMxMDJkY2RiMzQ0MjRiN2E4MWI1ZGYyMjJmZGNkMDVkMDIzNThlMS4uNGEyOGZlMTNjMjZlMjI1
ZTBjOGVlYTVmNjMwMTViYzQ5NTg1YzBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaApAQCAtMjUsNyArMjUsMTAg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
ICJXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0ZXBNb2RlLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNjYsMyArNjksNSBAQCBzdHJ1Y3QgVmVydGV4QnVmZmVyTGF5b3V0IHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4U3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleFN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjI0MjgxNzI5ZWZjYWZjODkyNzlhNjVhNDAzN2M5
OTUyMDAyOGY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZlcnRleFN0YXRlLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleFN0YXRlLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0
ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpWZXJ0ZXhTdGF0ZT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKGNvbnN0IFZlcnRleFN0YXRlJiB2ZXJ0ZXhTdGF0ZSkKK3sKKyAgICBhdXRvIGJh
c2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUHJvZ3JhbW1hYmxlU3Rh
Z2UmPih2ZXJ0ZXhTdGF0ZSkpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpWZXJ0ZXhC
dWZmZXJMYXlvdXQ+PiBidWZmZXJzOworICAgIGJ1ZmZlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh2ZXJ0ZXhTdGF0ZS5idWZmZXJzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNr
aW5nQnVmZmVyIDogdmVydGV4U3RhdGUuYnVmZmVycykgeworICAgICAgICBpZiAoYmFja2luZ0J1
ZmZlcikgeworICAgICAgICAgICAgYXV0byBidWZmZXIgPSBjb252ZXJ0RnJvbUJhY2tpbmcoKmJh
Y2tpbmdCdWZmZXIpOworICAgICAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIGJ1ZmZlcnMudW5jaGVja2VkQXBwZW5k
KFdURk1vdmUoKmJ1ZmZlcikpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJ1ZmZlcnMu
dW5jaGVja2VkQXBwZW5kKHN0ZDo6bnVsbG9wdCk7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBX
VEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShidWZmZXJzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaAppbmRleCA0NmZmOGM3NTQzZWMw
MmFhMjFkNmRlZDdhZDllMWYxNDgyMDExZTZkLi4zNzBkMjQwM2IwYzY4YjIyMGVjMDA0N2EzYzhl
ZjIyN2M1ZjM1YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVVmVydGV4U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4U3RhdGUuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgi
CiAjaW5jbHVkZSAiV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgiCiAjaW5jbHVkZSA8b3B0aW9u
YWw+CkBAIC01OCwzICs2MCw1IEBAIHN0cnVjdCBWZXJ0ZXhTdGF0ZSA6IHB1YmxpYyBQcm9ncmFt
bWFibGVTdGFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggOTFkMWVhYjg5MDUxODRm
OGUwMjEzZDM5YWU4ZGRiNTQyYzNjOGJjYS4uOGUzYWQxOWM5ZjU3YTVkZjQ4NjA3YjBmM2Y2MzM0
NjkwMDI1MjBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMTUsNiArMzE1LDcwIEBAIFNoYXJlZC9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5jcHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuY3BwCiAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAK
K1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuY3BwCitTaGFyZWQvV2ViR1BVL1dl
YkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cExheW91dEVudHJ5LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENvbXBvbmVu
dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZy5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Z0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAKK1No
YXJlZC9XZWJHUFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAKK1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3Bw
CitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BV
L1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVz
dGFtcFdyaXRlcy5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQ
VUVycm9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5jcHAKK1NoYXJlZC9XZWJH
UFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUv
V2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
RnJhZ21lbnRTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNw
cAorU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVJ
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFM
YXlvdXQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPcmlnaW4yRC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0QuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUu
Y3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcAorU2hhcmVkL1dl
YkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRs
ZUVuY29kZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwCitTaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwCitTaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmlu
ZGluZ0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3Bw
CitTaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCitTaGFyZWQv
V2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVN0
b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9y
dGVkRmVhdHVyZXMuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAK
K1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCitTaGFyZWQvV2Vi
R1BVL1dlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0
dXJlVmlld0Rlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJv
ci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcAorU2hhcmVkL1dl
YkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVZl
cnRleFN0YXRlLmNwcAorCiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCiAKIFNo
YXJlZC9YUi9YUkRldmljZUluZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZp
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBiZDk3MmEyYmVjMjViZTI2N2Y5NTgxYmQwYWVjMjBm
YWVkZjZiNjUwLi5iNThiOWM1NjQ1MDg2NzEwYmZiYzI5MGFiODk0MmQ2Mjk4M2VhZDI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTcs
OCArNywxNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMC5jcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDEu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAzLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3Vy
Y2VzL1VuaWZpZWRTb3VyY2UxMDQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTA2LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDcuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTEwOC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA5LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMS1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEw
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLW1tLm1t
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNv
dXJjZXMvVW5pZmllZFNvdXJjZTEyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5tbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzJm
Mjg2ZTJmNzIwMDE5ZGYyN2UzYjQwZTVmNzgwMDdlYzllYjQ2YS4uNWRiNTYxM2Y4ZDZjMDg4Y2Fj
NzE2ZDA4NTdhODc2MDk5ZjBiYzJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODksOCArMzg5LDc5IEBACiAJCTFDOEUyOTM5MTI3
NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTI5MzcxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVj
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUM4RTJBMzUxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkEz
MTEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJMUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkEzMjEy
Nzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUM5OEMw
OTcyNzQ2MjEwRTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwOTYyNzQ2MjEw
RTAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4
QzBEOTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDk4Mjc0NjI2Nzgw
MDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwICovOyB9OworCQkxQzk4QzBEQTI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5OTI3NDYyNjc4
MDAyQ0NCNzggLyogV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFD
OThDMERCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDlBMjc0
NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcCAqLzsgfTsKKwkJ
MUM5OEMwREMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMDlCMjc0NjI2
NzgwMDJDQ0I3OCAvKiBXZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAgKi87IH07CisJCTFDOThDMERE
Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5QzI3NDYyNjc4MDAy
Q0NCNzggLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwICovOyB9OworCQkxQzk4QzBERTI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzA5RDI3NDYyNjc4
MDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAgKi87IH07CisJCTFD
OThDMERGMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThD
MDlFMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNw
cCAqLzsgfTsKKwkJMUM5OEMwRTAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lRGVz
Y3JpcHRvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUM5OEMwOUYyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRv
ckJhc2UuY3BwICovOyB9OworCQkxQzk4QzBFMTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVT3Jp
Z2luM0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQTAyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCAqLzsgfTsKKwkJ
MUM5OEMwRTIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBBMTI3
NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJ
MUM5OEMwRTMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThD
MEEyMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAg
Ki87IH07CisJCTFDOThDMEU0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZURhdGFMYXlv
dXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5
OEMwQTMyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUltYWdlRGF0YUxheW91dC5jcHAgKi87IH07
CisJCTFDOThDMEU2Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThD
MEE1Mjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcCAqLzsg
fTsKKwkJMUM5OEMwRTcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kU3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTYyNzQ2
MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kU3RhdGUuY3BwICovOyB9OworCQkxQzk4QzBFODI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQTcyNzQ2MjY3QTAw
MkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMw
RTkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThD
MEE4Mjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRv
ci5jcHAgKi87IH07CisJCTFDOThDMEVBMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJE
ZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDOThDMEE5Mjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNw
cCAqLzsgfTsKKwkJMUM5OEMwRUIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZExp
bWl0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Qzk4QzBBQTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcCAqLzsg
fTsKKwkJMUM5OEMwRUMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQUIy
NzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwICovOyB9OworCQkxQzk4
QzBFRDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEFDMjc0NjI2
N0IwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwICovOyB9OworCQkxQzk4
QzBFRTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEFEMjc0NjI2N0Iw
MDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwICovOyB9OworCQkxQzk4QzBFRjI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQUUyNzQ2MjY3QjAwMkND
Qjc4IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMwRjEyNzQ2
MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEIwMjc0NjI2N0MwMDJDQ0I3OCAv
KiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAgKi87IH07CisJCTFDOThDMEYyMjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEIxMjc0NjI2N0MwMDJDQ0I3
OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMw
RjMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEIyMjc0NjI2
N0MwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi87IH07CisJCTFD
OThDMEY0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEIzMjc0NjI2
N0MwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMw
RjUyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjQyNzQ2
MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwICovOyB9Owor
CQkxQzk4QzBGNjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
OThDMEI1Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3Iu
Y3BwICovOyB9OworCQkxQzk4QzBGNzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDOThDMEI2Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTdG9yYWdlVGV4
dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovOyB9OworCQkxQzk4QzBGODI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQjcyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQ
VVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMwRjkyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEI4Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi87IH07CisJCTFDOThDMEZBMjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVFeHRlbnQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzk4QzBCOTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZW50M0Qu
Y3BwICovOyB9OworCQkxQzk4QzBGQjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzk4QzBCQTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0
dXJlRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMEZDMjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCQjI3NDYyNjdFMDAyQ0NCNzgg
LyogV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwICovOyB9OworCQkx
Qzk4QzBGRDI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCQzI3NDYyNjdF
MDAyQ0NCNzggLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAgKi87IH07CisJCTFDOThDMEZFMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQkQyNzQ2MjY3
RTAwMkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAgKi87IH07CisJ
CTFDOThDMEZGMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBCRTI3NDYyNjdFMDAyQ0NC
NzggLyogV2ViR1BVQ29sb3IuY3BwICovOyB9OworCQkxQzk4QzEwMDI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVT3JpZ2luMkQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM5OEMwQkYyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjJELmNw
cCAqLzsgfTsKKwkJMUM5OEMxMDEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEMwMjc0
NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVFcnJvci5jcHAgKi87IH07CisJCTFDOThDMTAyMjc0NjI2
ODMwMDJDQ0I3OCAvKiBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEMxMjc0NjI2N0YwMDJDQ0I3OCAv
KiBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcCAqLzsgfTsKKwkJMUM5OEMxMDMyNzQ2MjY4MzAw
MkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEMyMjc0NjI2N0YwMDJD
Q0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi87IH07CisJCTFD
OThDMTA0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEMzMjc0NjI2
N0YwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcCAqLzsgfTsKKwkJMUM5OEMx
MDUyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5OEMw
QzQyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQu
Y3BwICovOyB9OworCQkxQzk4QzEwNjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRDb21w
b25lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQzUyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmNwcCAqLzsg
fTsKKwkJMUM5OEMxMDcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUV4dGVybmFs
SW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM5OEMwQzYyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2Uu
Y3BwICovOyB9OworCQkxQzk4QzEwODI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBp
cGVsaW5lRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzk4QzBDNzI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lRGVzY3JpcHRvci5jcHAgKi87IH07CisJCTFDOThDMTA5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM5OEMwQzgyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CisJCTFDOThDMTBBMjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDOThDMEM5Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVNdWx0aXNh
bXBsZVN0YXRlLmNwcCAqLzsgfTsKKwkJMUM5OEMxMEIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VVN0ZW5jaWxGYWNlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM5OEMwQ0EyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVN0ZW5jaWxGYWNl
U3RhdGUuY3BwICovOyB9OworCQkxQzk4QzEwQzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVVGV4
dHVyZVZpZXdEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDOThDMENCMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlVmll
d0Rlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzEwRDI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUM5OEMwQ0MyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMxMEUyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VVZlcnRleFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDOThDMENEMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5jcHAg
Ki87IH07CisJCTFDOThDMTBGMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0
dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
OThDMENFMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmNwcCAqLzsg
fTsKKwkJMUM5OEMxMTAyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cExheW91dEVu
dHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
OThDMENGMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHAg
Ki87IH07CisJCTFDOThDMTExMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1
dGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5
OEMwRDAyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAgKi87IH07
CisJCTFDOThDMTEyMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM5
OEMwRDEyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAg
Ki87IH07CisJCTFDOThDMTEzMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rl
c2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUM5OEMwRDIyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRv
ci5jcHAgKi87IH07CisJCTFDOThDMTE0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0
ZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzk4QzBEMzI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
Y3BwICovOyB9OworCQkxQzk4QzExNjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDOThDMEQ1Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IuY3BwICovOyB9OworCQkxQzk4QzExNzI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzk4QzBENjI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BV
UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5jcHAgKi87IH07CisJCTFDOThDMTE4Mjc0NjI2ODMw
MDJDQ0I3OCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQ3Mjc0NjI2ODIwMDJDQ0I3OCAvKiBX
ZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcCAqLzsgfTsKKwkJMUM5OEMxMTkyNzQ2MjY4MzAwMkND
Qjc4IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOThDMEQ4Mjc0NjI2ODIwMDJDQ0I3OCAvKiBX
ZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgKi87IH07CiAJCTFDQThCOTQ1MTI3Qzg4MkEw
MDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQzMTI3Qzg4MkEw
MDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5
NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICovOyB9
OworCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RDI3NDY1
QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi87IH07CisJCTFDQUVDQjY2Mjc0
NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTExLmNwcCAqLzsgfTsKKwkJMUNBRUNCNjcyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMDguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDgu
Y3BwICovOyB9OworCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEx
MC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FF
Q0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi87IH07CisJCTFD
QUVDQjY5Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYxMjc0NjVBRTMwMEFC
NzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLzsgfTsKKwkJMUNBRUNCNkEyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjIyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMDUuY3BwICovOyB9OworCQkxQ0FFQ0I2QjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTEwNi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0FFQ0I2MzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNi5jcHAgKi87
IH07CisJCTFDQUVDQjZDMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA3LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjY0Mjc0
NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA3LmNwcCAqLzsgfTsKIAkJMUNCNzQ2NEQy
NzQzODBDODAwRjE5ODc0IC8qIFdlYkdQVURvd25jYXN0Q29udmVydFRvQmFja2luZ0NvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjc0NjRC
Mjc0MzgwQzgwMEYxOTg3NCAvKiBXZWJHUFVEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0
LmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5z
cGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLzsgfTsKQEAgLTI5NzcsMTAgKzMwNDgsODEgQEAKIAkJMUM5OEMwOTMyNzQ0QkQ5QjAw
MkNDQjc4IC8qIFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVDb21wdXRlUGFzc0VuY29kZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDOThDMDk0Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVHUFUubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlR1BVLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQzk4QzA5NTI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlQ29tbWFuZEVuY29kZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDk2Mjc0NjIxMEUwMDJDQ0I3OCAvKiBXZWJHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cERl
c2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5ODI3NDYy
Njc4MDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVZhbGlkYXRpb25FcnJvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDk5Mjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVT
aGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzA5QTI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVQ2FudmFzQ29u
ZmlndXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVDYW52YXNDb25maWd1cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwOUIyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOUMyNzQ2MjY3ODAwMkNDQjc4
IC8qIFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOUQyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29w
eVRleHR1cmVUYWdnZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDlFMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzA5RjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVQaXBl
bGluZURlc2NyaXB0b3JCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwQTAyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9yaWdpbjNELmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTEyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVVF1ZXJ5
U2V0RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzBBMjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzBBMzI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUltYWdlRGF0YUxheW91dC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEE1Mjc0NjI2N0EwMDJDQ0I3OCAv
KiBXZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBBNjI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRT
dGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCbGVu
ZFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTcyNzQ2MjY3
QTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTgyNzQ2MjY3QTAwMkNDQjc4IC8q
IFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQTkyNzQ2MjY3QjAwMkND
Qjc4IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMEFBMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0
ZWRMaW1pdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
U3VwcG9ydGVkTGltaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
QUIyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVyQmluZGluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEFDMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJH
UFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwQUQyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFnZUNv
cHlCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBRTI3NDYy
NjdCMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCMDI3NDYyNjdDMDAyQ0NCNzggLyogV2Vi
R1BVQmluZEdyb3VwRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVQmluZEdyb3VwRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQzk4QzBCMTI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5k
R3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwQjIyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVRleHR1cmVCaW5k
aW5nTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjMyNzQ2
MjY3QzAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEI0Mjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJH
UFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBCNTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDOThDMEI2Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTdG9yYWdlVGV4
dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjcyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJC
aW5kaW5nTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwQjgyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURlcHRoU3RlbmNp
bFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjkyNzQ2MjY3
RDAwMkNDQjc4IC8qIFdlYkdQVUV4dGVudDNELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkdQVUV4dGVudDNELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQkEyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMEJCMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMEJDMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVGcmFnbWVu
dFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUZy
YWdtZW50U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCRDI3
NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEJFMjc0NjI2
N0UwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMEJGMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4yRC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVPcmlnaW4yRC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEMwMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVF
cnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVFcnJv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEMxMjc0NjI2N0YwMDJD
Q0I3OCAvKiBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBDMjI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0
ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBDMzI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVy
UGFzc0xheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVSZW5kZXJQYXNzTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwQzQyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlv
dXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRXh0ZXJu
YWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDOThDMEM1Mjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCbGVuZENvbXBvbmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEM2Mjc0NjI2N0YwMDJDQ0I3
OCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDNzI3NDYyNjgwMDAyQ0NCNzggLyogV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzgyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQ
VUNvbXBpbGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzBDOTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVTXVsdGlzYW1wbGVTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVNdWx0aXNh
bXBsZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0EyNzQ2
MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMENCMjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJH
UFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0MyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VVNhbXBsZXJEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwQ0QyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleFN0YXRlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVZlcnRleFN0YXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0UyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQ
VUltYWdlQ29weVRleHR1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFDOThDMENGMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXRFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQw
Mjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVVmVydGV4QXR0cmlidXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDEyNzQ2MjY4MTAwMkNDQjc4IC8qIFdl
YkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBEMjI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0
ZVBhc3NEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMEQzMjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0ZWRGZWF0dXJl
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTdXBwb3J0
ZWRGZWF0dXJlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQ1Mjc0
NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDYyNzQ2MjY4
MjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQ3Mjc0NjI2ODIw
MDJDQ0I3OCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURldmljZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBEODI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzlFQkE1QjIwODdFNzRFMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5hdGl2ZVdlYk1v
dXNlRXZlbnRJT1MubW07IHBhdGggPSBpb3MvTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBOEI5MzUxMjdDNzc0RTAwNTc2QzJCIC8qIFdl
Ykluc3BlY3RvclVJUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMy
QiAvKiBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTEwOS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA5
LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9Vbmlm
aWVkU291cmNlMTA5LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTEuY3BwIjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNUYyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMDguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEw
OC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5p
ZmllZFNvdXJjZTEwOC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owor
CQkxQ0FFQ0I2MDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTEwLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNl
cy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEwLmNwcCI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAv
KiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2Ux
MDQuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1Vu
aWZpZWRTb3VyY2UxMDQuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMUNBRUNCNjIyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwNS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNS5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I2MzI3NDY1QUU0MDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTEwNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNl
MTA2LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTA2LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTFDQUVDQjY0Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDcuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDcuY3BwIjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCNzQ2MUEyNzQzNkVFNDAwRjE5ODc0
IC8qIFJlbW90ZVRleHR1cmVWaWV3UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVGV4dHVy
ZVZpZXdQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I3NDYxQjI3NDM2
RUU0MDBGMTk4NzQgLyogUmVtb3RlQmluZEdyb3VwTGF5b3V0UHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQmluZEdyb3VwTGF5b3V0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCNzQ2MUMyNzQzNkVFNTAwRjE5ODc0IC8qIFJlbW90ZUNvbW1hbmRCdWZmZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21tYW5kQnVmZmVyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQwMiw3MSArNzU0NCwxMzQgQEAKIAkJMUNC
NzQ2NDUyNzQzNzlGMTAwRjE5ODc0IC8qIFdlYkdQVSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM5OEMwOTYyNzQ2MjEwRTAwMkNDQjc4IC8qIFdlYkdQ
VUJpbmRHcm91cERlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjhCMjc0MzlDQjcwMEYxOTg3
NCAvKiBXZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQjAyNzQ2MjY3
QzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5LmNwcCAqLywKIAkJCQkxQ0I3NDY4QTI3
NDM5Q0I2MDBGMTk4NzQgLyogV2ViR1BVQmluZEdyb3VwRW50cnkuaCAqLywKKwkJCQkxQzk4QzBC
MTI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAg
Ki8sCiAJCQkJMUNCNzQ2NkEyNzQzOUNBRjAwRjE5ODc0IC8qIFdlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDRjI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BV
QmluZEdyb3VwTGF5b3V0RW50cnkuY3BwICovLAogCQkJCTFDQjc0Njk1Mjc0MzlDQjkwMEYxOTg3
NCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oICovLAorCQkJCTFDOThDMEM1Mjc0NjI2
N0YwMDJDQ0I3OCAvKiBXZWJHUFVCbGVuZENvbXBvbmVudC5jcHAgKi8sCiAJCQkJMUNCNzQ2Nzgy
NzQzOUNCMjAwRjE5ODc0IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmggKi8sCisJCQkJMUM5OEMw
QTYyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kU3RhdGUuY3BwICovLAogCQkJCTFDQjc0
NjdDMjc0MzlDQjMwMEYxOTg3NCAvKiBXZWJHUFVCbGVuZFN0YXRlLmggKi8sCisJCQkJMUM5OEMw
QUIyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwICovLAogCQkJCTFD
Qjc0NjkwMjc0MzlDQjgwMEYxOTg3NCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5nLmggKi8sCisJCQkJ
MUM5OEMwQTUyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3Bw
ICovLAogCQkJCTFDQjc0NjkzMjc0MzlDQjkwMEYxOTg3NCAvKiBXZWJHUFVCdWZmZXJCaW5kaW5n
TGF5b3V0LmggKi8sCisJCQkJMUM5OEMwQTkyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZl
ckRlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjY2Mjc0MzlDQUUwMEYxOTg3NCAvKiBXZWJH
UFVCdWZmZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwOUEyNzQ2MjY3ODAwMkNDQjc4IC8q
IFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTFDQjc0NjdGMjc0MzlDQjQw
MEYxOTg3NCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmggKi8sCisJCQkJMUM5OEMwQkUy
NzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY3NzI3NDM5
Q0IyMDBGMTk4NzQgLyogV2ViR1BVQ29sb3IuaCAqLywKKwkJCQkxQzk4QzBCMzI3NDYyNjdDMDAy
Q0NCNzggLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NzkyNzQz
OUNCMjAwRjE5ODc0IC8qIFdlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaCAqLywKKwkJCQkxQzk4QzBB
MjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwICov
LAogCQkJCTFDQjc0NjgzMjc0MzlDQjUwMEYxOTg3NCAvKiBXZWJHUFVDb21tYW5kQnVmZmVyRGVz
Y3JpcHRvci5oICovLAorCQkJCTFDOThDMEJEMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjkyMjc0MzlDQjkwMEYxOTg3
NCAvKiBXZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDODI3
NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcCAqLywKIAkJCQkx
Qzk4QzA3QjI3NDRCNDE2MDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmggKi8s
CisJCQkJMUM5OEMwRDIyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2OTcyNzQzOUNCQTAwRjE5ODc0IC8qIFdlYkdQVUNvbXB1
dGVQYXNzRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEMyMjc0NjI2N0YwMDJDQ0I3OCAvKiBX
ZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi8sCiAJCQkJMUNCNzQ2ODkyNzQz
OUNCNjAwRjE5ODc0IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8sCisJ
CQkJMUM5OEMwQzcyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuY3BwICovLAogCQkJCTFDQjc0Njc2Mjc0MzlDQjEwMEYxOTg3NCAvKiBXZWJHUFVDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggKi8sCiAJCQkJMUNCNzQ2QTQyNzQzQURCQTAwRjE5ODc0
IC8qIFdlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQ0I3NDY0NzI3
NDM3QTdGMDBGMTk4NzQgLyogV2ViR1BVQ29udmVydFRvQmFja2luZ0NvbnRleHQuaCAqLywKKwkJ
CQkxQzk4QzBCODI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3Bw
ICovLAogCQkJCTFDQjc0NjcxMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVEZXB0aFN0ZW5jaWxT
dGF0ZS5oICovLAorCQkJCTFDOThDMEQ3Mjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVEZXZpY2VE
ZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4NTI3NDM5Q0I1MDBGMTk4NzQgLyogV2ViR1BV
RGV2aWNlRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEMwMjc0NjI2N0UwMDJDQ0I3OCAvKiBX
ZWJHUFVFcnJvci5jcHAgKi8sCiAJCQkJMUM5OEMwN0UyNzQ0QjlEQjAwMkNDQjc4IC8qIFdlYkdQ
VUVycm9yLmggKi8sCisJCQkJMUM5OEMwQjkyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVUV4dGVu
dDNELmNwcCAqLywKIAkJCQkxQ0I3NDY4NzI3NDM5Q0I2MDBGMTk4NzQgLyogV2ViR1BVRXh0ZW50
M0QuaCAqLywKKwkJCQkxQzk4QzBDNDI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2NkYyNzQzOUNCMDAwRjE5ODc0
IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBC
QTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAg
Ki8sCiAJCQkJMUNCNzQ2ODYyNzQzOUNCNTAwRjE5ODc0IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBCQzI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BV
RnJhZ21lbnRTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2N0EyNzQzOUNCMjAwRjE5ODc0IC8qIFdl
YkdQVUZyYWdtZW50U3RhdGUuaCAqLywKIAkJCQkxQ0I3NDY0OTI3NDM3RkM1MDBGMTk4NzQgLyog
V2ViR1BVSWRlbnRpZmllci5oICovLAorCQkJCTFDOThDMEFEMjc0NjI2N0IwMDJDQ0I3OCAvKiBX
ZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwICovLAogCQkJCTFDQjc0NjdEMjc0MzlDQjMwMEYxOTg3
NCAvKiBXZWJHUFVJbWFnZUNvcHlCdWZmZXIuaCAqLywKKwkJCQkxQzk4QzBDNjI3NDYyNjdGMDAy
Q0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAgKi8sCiAJCQkJMUNCNzQ2
NjgyNzQzOUNBRTAwRjE5ODc0IC8qIFdlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuaCAqLywK
KwkJCQkxQzk4QzBDRTI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5j
cHAgKi8sCiAJCQkJMUNCNzQ2OUIyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVUltYWdlQ29weVRl
eHR1cmUuaCAqLywKKwkJCQkxQzk4QzA5RDI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VD
b3B5VGV4dHVyZVRhZ2dlZC5jcHAgKi8sCiAJCQkJMUNCNzQ2NzQyNzQzOUNCMTAwRjE5ODc0IC8q
IFdlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCAqLywKKwkJCQkxQzk4QzBBMzI3NDYyNjdB
MDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY5RjI3
NDM5Q0JDMDBGMTk4NzQgLyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmggKi8sCisJCQkJMUM5OEMw
QzkyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwICovLAogCQkJ
CTFDQjc0NjY5Mjc0MzlDQUUwMEYxOTg3NCAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmggKi8s
CisJCQkJMUM5OEMwRDgyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmNwcCAqLywKIAkJCQkxQ0I3NDY2QzI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaCAqLywKKwkJCQkxQzk4QzBCRjI3NDYyNjdFMDAyQ0NCNzggLyogV2Vi
R1BVT3JpZ2luMkQuY3BwICovLAogCQkJCTFDQjc0NjcwMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJH
UFVPcmlnaW4yRC5oICovLAorCQkJCTFDOThDMEEwMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVP
cmlnaW4zRC5jcHAgKi8sCiAJCQkJMUNCNzQ2QTAyNzQzOUNCRDAwRjE5ODc0IC8qIFdlYkdQVU9y
aWdpbjNELmggKi8sCisJCQkJMUM5OEMwQzEyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVU91dE9m
TWVtb3J5RXJyb3IuY3BwICovLAogCQkJCTFDOThDMDdDMjc0NEI5OTEwMDJDQ0I3OCAvKiBXZWJH
UFVPdXRPZk1lbW9yeUVycm9yLmggKi8sCisJCQkJMUM5OEMwOUYyNzQ2MjY3OTAwMkNDQjc4IC8q
IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwICovLAogCQkJCTFDQjc0Njk0Mjc0MzlD
QjkwMEYxOTg3NCAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggKi8sCisJCQkJMUM5
OEMwQjUyNzQ2MjY3RDAwMkNDQjc4IC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5j
cHAgKi8sCiAJCQkJMUNCNzQ2OTgyNzQzOUNCQjAwRjE5ODc0IC8qIFdlYkdQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMDlCMjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJH
UFVQcmltaXRpdmVTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NkQyNzQzOUNBRjAwRjE5ODc0IC8q
IFdlYkdQVVByaW1pdGl2ZVN0YXRlLmggKi8sCisJCQkJMUM5OEMwOUMyNzQ2MjY3ODAwMkNDQjc4
IC8qIFdlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcCAqLywKIAkJCQkxQ0I3NDY4ODI3NDM5Q0I2
MDBGMTk4NzQgLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCAqLywKKwkJCQkxQzk4QzBBMTI3
NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkx
Q0I3NDY5RTI3NDM5Q0JDMDBGMTk4NzQgLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggKi8s
CisJCQkJMUM5OEMwQjQyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjgyMjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVSZW5k
ZXJCdW5kbGVEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQTgyNzQ2MjY3QTAwMkNDQjc4IC8q
IFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY3
QjI3NDM5Q0IzMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3Iu
aCAqLywKKwkJCQkxQzk4QzBENjI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudC5jcHAgKi8sCiAJCQkJMUNCNzQ2OUQyNzQzOUNCQzAwRjE5ODc0IC8qIFdl
YkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaCAqLywKKwkJCQkxQzk4QzBCQjI3NDYyNjdF
MDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwICov
LAogCQkJCTFDQjc0NjdFMjc0MzlDQjMwMEYxOTg3NCAvKiBXZWJHUFVSZW5kZXJQYXNzRGVwdGhT
dGVuY2lsQXR0YWNobWVudC5oICovLAorCQkJCTFDOThDMEE3Mjc0NjI2N0EwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2NkUyNzQzOUNCMDAw
RjE5ODc0IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQzMy
NzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwICovLAogCQkJCTFD
Qjc0NjkxMjc0MzlDQjgwMEYxOTg3NCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmggKi8sCisJ
CQkJMUM5OEMwOUUyNzQ2MjY3OTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBX
cml0ZXMuY3BwICovLAogCQkJCTFDQjc0Njk5Mjc0MzlDQkIwMEYxOTg3NCAvKiBXZWJHUFVSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGVzLmggKi8sCisJCQkJMUM5OEMwRDUyNzQ2MjY4MjAwMkNDQjc4
IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2OEUy
NzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oICovLAor
CQkJCTFDOThDMEQxMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlv
bnMuY3BwICovLAogCQkJCTFDQjc0NjhDMjc0MzlDQjcwMEYxOTg3NCAvKiBXZWJHUFVSZXF1ZXN0
QWRhcHRlck9wdGlvbnMuaCAqLywKKwkJCQkxQzk4QzBCNzI3NDYyNjdEMDAyQ0NCNzggLyogV2Vi
R1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0NjY3Mjc0MzlDQUUwMEYx
OTg3NCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oICovLAorCQkJCTFDOThDMENDMjc0
NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNC
NzQ2OEQyNzQzOUNCNzAwRjE5ODc0IC8qIFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmggKi8sCisJ
CQkJMUM5OEMwOTkyNzQ2MjY3ODAwMkNDQjc4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuY3BwICovLAogCQkJCTFDQjc0NjZCMjc0MzlDQUYwMEYxOTg3NCAvKiBXZWJHUFVTaGFkZXJN
b2R1bGVEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQ0EyNzQ2MjY4MDAwMkNDQjc4IC8qIFdl
YkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwICovLAogCQkJCTFDQjc0NjczMjc0MzlDQjEwMEYxOTg3
NCAvKiBXZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmggKi8sCisJCQkJMUM5OEMwQjYyNzQ2MjY3RDAw
MkNDQjc4IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJ
MUNCNzQ2OTYyNzQzOUNCQTAwRjE5ODc0IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xh
eW91dC5oICovLAorCQkJCTFDOThDMEQzMjc0NjI2ODIwMDJDQ0I3OCAvKiBXZWJHUFVTdXBwb3J0
ZWRGZWF0dXJlcy5jcHAgKi8sCiAJCQkJMUM5OEMwNzkyNzQ0QTFDQzAwMkNDQjc4IC8qIFdlYkdQ
VVN1cHBvcnRlZEZlYXR1cmVzLmggKi8sCisJCQkJMUM5OEMwQUEyNzQ2MjY3QjAwMkNDQjc4IC8q
IFdlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAgKi8sCiAJCQkJMUM5OEMwN0EyNzQ0QTIwNTAwMkND
Qjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5oICovLAorCQkJCTFDOThDMEIyMjc0NjI2N0Mw
MDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2
NzUyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJ
CQkJMUM5OEMwQUUyNzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yLmNw
cCAqLywKIAkJCQkxQ0I3NDY4MTI3NDM5Q0I0MDBGMTk4NzQgLyogV2ViR1BVVGV4dHVyZURlc2Ny
aXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDQjI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4MDI3NDM5Q0I0MDBGMTk4NzQgLyog
V2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwOTgyNzQ2MjY3ODAw
MkNDQjc4IC8qIFdlYkdQVVZhbGlkYXRpb25FcnJvci5jcHAgKi8sCiAJCQkJMUM5OEMwN0QyNzQ0
QjlCNzAwMkNDQjc4IC8qIFdlYkdQVVZhbGlkYXRpb25FcnJvci5oICovLAorCQkJCTFDOThDMEQw
Mjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwICovLAogCQkJCTFD
Qjc0NjcyMjc0MzlDQjAwMEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaCAqLywKKwkJ
CQkxQzk4QzBBQzI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNw
cCAqLywKIAkJCQkxQ0I3NDY4RjI3NDM5Q0I4MDBGMTk4NzQgLyogV2ViR1BVVmVydGV4QnVmZmVy
TGF5b3V0LmggKi8sCisJCQkJMUM5OEMwQ0QyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRl
eFN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY5QTI3NDM5Q0JCMDBGMTk4NzQgLyogV2ViR1BVVmVy
dGV4U3RhdGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViR1BVOwpAQCAtNzg1Niw2ICs4MDYx
LDE0IEBACiAJCQkJMUM1NjU1N0MyNzQ1QzVBMDAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDEu
Y3BwICovLAogCQkJCTFDNTY1NTdEMjc0NUM1QTEwMDYzMDBBRiAvKiBVbmlmaWVkU291cmNlMTAy
LmNwcCAqLywKIAkJCQkxQzU2NTU3RTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEw
My5jcHAgKi8sCisJCQkJMUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDQuY3BwICovLAorCQkJCTFDQUVDQjYyMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTA1LmNwcCAqLywKKwkJCQkxQ0FFQ0I2MzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTEwNi5jcHAgKi8sCisJCQkJMUNBRUNCNjQyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDcuY3BwICovLAorCQkJCTFDQUVDQjVGMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291
cmNlMTA4LmNwcCAqLywKKwkJCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwOS5jcHAgKi8sCisJCQkJMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTAuY3BwICovLAorCQkJCTFDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTExLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gInVuaWZpZWQtc291cmNlcyI7CiAJ
CQlwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzIjsKQEAgLTE0
ODkwLDYgKzE1MTAzLDE0IEBACiAJCQkJMUM1NjU1N0YyNzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZp
ZWRTb3VyY2UxMDEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1NjU1ODAyNzQ1QzVBMTAwNjMw
MEFGIC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1NjU1ODEy
NzQ1QzVBMTAwNjMwMEFGIC8qIFVuaWZpZWRTb3VyY2UxMDMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUNBRUNCNkEyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2Ux
MDUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUNBRUNCNkIyNzQ2NUFFNDAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMDYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUNBRUNCNkMyNzQ2NUFFNDAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUNBRUNC
NjcyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUNBRUNCNjUyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUNBRUNCNjgyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMTAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4QTFGQzAyM0E1NTFC
RjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNE
NDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTE0OTI0LDYgKzE1MTQ1LDY5IEBACiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYwNjExMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0
aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzBFNjE4
MjEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwOTcyNzQ2MjEwRTAwMkNDQjc4IC8q
IFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMw
RjEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cEVudHJ5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFDOThDMEYyMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlv
dXREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTEwMjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzk4QzEwNjI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRDb21wb25lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRTcyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJsZW5k
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRUMyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVUJ1ZmZlckJpbmRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRTYyNzQ2
MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUM5OEMwRUEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwREIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdl
YkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkYy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFD
OThDMEY0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMEUzMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5k
QnVmZmVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGRTI3NDYyNjgz
MDAyQ0NCNzggLyogV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFDOThDMTA5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVDb21waWxhdGlvbk1l
c3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMTMyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4
QzEwMzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMw
RjkyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDOThDMTE4Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTAxMjc0NjI2ODMwMDJDQ0I3OCAv
KiBXZWJHUFVFcnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGQTI3NDYyNjgzMDAy
Q0NCNzggLyogV2ViR1BVRXh0ZW50M0QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMDUy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkIyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRkQy
NzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM5OEMwRUUyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwNzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BV
SW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwRjI3
NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQzk4QzBERTI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVy
ZVRhZ2dlZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBFNDI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVSW1hZ2VEYXRhTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTBB
Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFDOThDMTE5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVPYmplY3REZXNjcmlw
dG9yQmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwMDI3NDYyNjgzMDAyQ0NCNzgg
LyogV2ViR1BVT3JpZ2luMkQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRTEyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThD
MTAyMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFDOThDMEUwMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEY2Mjc0NjI2ODMwMDJD
Q0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM5OEMwREMyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEREMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVQ
cm9ncmFtbWFibGVTdGFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBFMjI3NDYyNjgz
MDAyQ0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFDOThDMEY1Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEU5Mjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzk4QzExNzI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBGQzI3NDYyNjgzMDAyQ0NCNzggLyog
V2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM5OEMwRTgyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTA0Mjc0NjI2ODMwMDJDQ0I3OCAvKiBX
ZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMERGMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMTE2Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMTIyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQzk4QzBGODI3NDYyNjgzMDAyQ0NCNzggLyogV2ViR1BVU2FtcGxlckJpbmRpbmdM
YXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMxMEQyNzQ2MjY4MzAwMkNDQjc4IC8q
IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMERB
Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFDOThDMTBCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEY3Mjc0NjI2ODMwMDJDQ0I3
OCAvKiBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUM5OEMxMTQyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVz
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEVCMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJH
UFVTdXBwb3J0ZWRMaW1pdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUM5OEMwRjMyNzQ2MjY4
MzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFDOThDMEVGMjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzEwQzI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMEQ5
Mjc0NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUM5OEMxMTEyNzQ2MjY4MzAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEF0dHJpYnV0
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQzk4QzBFRDI3NDYyNjgzMDAyQ0NCNzggLyogV2Vi
R1BVVmVydGV4QnVmZmVyTGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDOThDMTBFMjc0
NjI2ODMwMDJDQ0I3OCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTA1MjM3NTFDNzNEMzhGMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzM0U4MzVCMjNBMUI3NTAwMERF
RjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkVEQkRDRDYxRTY4RDIwMDAwQTU5RjhGIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3Bh
dGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444848</attachid>
            <date>2021-11-19 13:08:21 -0800</date>
            <delta_ts>2021-11-19 14:05:39 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-233310-20211119130820.patch</filename>
            <type>text/plain</type>
            <size>335873</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAzZmM3MTA1ZjExM2Yz
ZDhlYjU2M2Q5ZDEyNDM2ZWFmYzA4ZWQ3Yi4uMDBjMjFhZDEyYzRmZGMwNTE2MDJmM2UyNGE4MjQw
Y2JkNWRiMmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQVV0g
QWRkIGNvbnZlcnRlcnMgZnJvbSBzZXJpYWxpemFibGUgZGVzY3JpcHRvcnMgdG8gaW50ZXJmYWNl
IGRlc2NyaXB0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzMzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAg
ICAgVGhlIFdlYkdQVSBhYnN0cmFjdCBpbnRlcmZhY2UgKGluIFBBTC9ncmFwaGljcy9XZWJHUFUp
IGhhcyBhIHNldCBvZiBzdHJ1Y3RzIGZvciBkZXNjcmlwdG9ycy4gVGhlc2UgZGVzY3JpcHRvcnMg
aG9sZCByZWZlcmVuY2VzIHRvCisgICAgICAgIG9iamVjdHMsIHNvIHRoZXNlIGludGVyZmFjZXMg
Y2FuJ3QgYmUgc2VyaWFsaXplZCBkaXJlY3RseS4gSW5zdGVhZCwgd2UgaGF2ZSBhIHBhcmFsbGVs
IHNldCBvZiBzdHJ1Y3RzIChpbiBXZWJLaXQvU2hhcmVkL1dlYkdQVSkKKyAgICAgICAgd2hpY2gg
cmVwbGFjZSB0aGUgb2JqZWN0IHJlZmVyZW5jZXMgd2l0aCBXZWJHUFVJZGVudGlmaWVycy4gVGhl
IHdlYiBwcm9jZXNzIHNpZGUgd2lsbCBjb252ZXJ0IHRoZSBhYnN0cmFjdCBpbnRlcmZhY2Ugc3Ry
dWN0cworICAgICAgICB0byB0aGUgc2VyaWFsaXphYmxlIG9uZXMsIGFuZCB0aGUgR1BVIHByb2Nl
c3Mgc2lkZSB3aWxsIGNvbnZlcnQgYmFjay4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb252
ZXJ0ZXJzIGJhY2ssIGZyb20gdGhlIHNlcmlhbGl6YWJsZQorICAgICAgICBzdHJ1Y3RzIHRvIHRo
ZSBhYnN0cmFjdCBpbnRlcmZhY2Ugc3RydWN0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL1dl
YkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVCaW5k
R3JvdXBEZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yOjpjb252ZXJ0VG9CYWNraW5nIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVQ29tcGlsYXRpb25JbmZvOjptZXNzYWdlcyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25NZXNzYWdlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpHUFVDb21waWxhdGlvbk1lc3NhZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVDb21waWxhdGlvbk1lc3NhZ2U6OkdQVUNvbXBpbGF0aW9uTWVzc2FnZSk6CisgICAgICAg
ICogTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlRGVzY3Jp
cHRvcjo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUv
R1BVRnJhZ21lbnRTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R1BVRnJhZ21lbnRTdGF0ZTo6
Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvV2ViR1BVL0dQVVByb2dyYW1tYWJsZVN0YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVQ
cm9ncmFtbWFibGVTdGFnZTo6Y29udmVydFRvQmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpH
UFVRdWVyeVNldERlc2NyaXB0b3I6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcjo6Y29udmVydFRv
QmFja2luZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0Rl
c2NyaXB0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yOjpj
b252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJQYXNzTGF5b3V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzTGF5b3V0Ojpj
b252ZXJ0VG9CYWNraW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVSZW5k
ZXJQYXNzVGltZXN0YW1wV3JpdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVVmVydGV4QnVmZmVyTGF5b3V0Ojpjb252ZXJ0VG9CYWNraW5n
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6R1BVVmVydGV4U3RhdGU6OmNvbnZlcnRUb0JhY2tpbmcgY29uc3QpOgor
CiAyMDIxLTExLTE5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIHNlZWtpbmcgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKaW5kZXggYjViNjY0Y2ZkZDJkYzExOWQ3ZDZmNDU1YWRiZTRkNzBmZmI1Y2I5ZC4uZjE4
NjEyZjYyMmQ0YTI2NzFlNDUwNDVhZDk3MjA4MzU3NjEyYWJkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMTEtMTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBBZGQgY29udmVydGVycyBmcm9tIHNl
cmlhbGl6YWJsZSBkZXNjcmlwdG9ycyB0byBpbnRlcmZhY2UgZGVzY3JpcHRvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMxMAorCisgICAgICAg
IFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHA6CisgICAgICAgIChQQUw6OldlYkdQVTo6QWRh
cHRlckltcGw6OnJlcXVlc3REZXZpY2UpOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJ
bXBsOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmlj
ZUltcGw6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZp
Y2VJbXBsOjpjcmVhdGVCaW5kR3JvdXApOgorICAgICAgICAoUEFMOjpXZWJHUFU6OmNvbnZlcnRU
b0JhY2tpbmcpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZVJlbmRl
ckJ1bmRsZUVuY29kZXIpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0
ZVF1ZXJ5U2V0KToKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVl
dWVJbXBsLmNwcDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpRdWV1ZUltcGw6OnN1Ym1pdCk6Cisg
ICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVJlbmRlclBhc3NFbmNvZGVy
SW1wbC5jcHA6CisgICAgICAgIChQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXJJbXBsOjpl
eGVjdXRlQnVuZGxlcyk6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VVRleHR1cmVJbXBsLmNwcDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpUZXh0dXJlSW1wbDo6Y3Jl
YXRlVmlldyk6CisgICAgICAgIChQQUw6OldlYkdQVTo6VGV4dHVyZUltcGw6OmNyZWF0ZVZpZXcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ29t
cGlsYXRpb25NZXNzYWdlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVT
dXBwb3J0ZWRGZWF0dXJlcy5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVW
YWxpZGF0aW9uRXJyb3IuaDoKKwogMjAyMS0xMS0xOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIGFkZCBzdXBwb3J0IGZvciBzZWVraW5nIGFu
aW1hdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGFjNjE1NWE1MDlmYzgwMDBiMmQzNmIxMmJhOWRkMDc3Y2Nm
OWY3MC4uOGU2ZGY2ZTgxZDkxN2RmZTY1OTYyMmJiNTM5ZGMxODI0NWMxZTNmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMjkgQEAKKzIwMjEtMTEtMTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBBZGQgY29udmVydGVycyBmcm9tIHNl
cmlhbGl6YWJsZSBkZXNjcmlwdG9ycyB0byBpbnRlcmZhY2UgZGVzY3JpcHRvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMxMAorCisgICAgICAg
IFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
Ok9iamVjdEhlYXA6OmNvbnZlcnRBZGFwdGVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cExheW91dEZy
b21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0
QnVmZmVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRDb21tYW5kQnVmZmVyRnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVy
RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZl
cnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6
T2JqZWN0SGVhcDo6Y29udmVydERldmljZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpPYmplY3RIZWFwOjpjb252ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJvbUJhY2tpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRHUFVGcm9tQmFja2lu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5l
TGF5b3V0RnJvbUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6
OmNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpP
YmplY3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJGcm9tQmFja2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlckJ1bmRs
ZUZyb21CYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpPYmplY3RIZWFwOjpjb252
ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6T2JqZWN0SGVhcDo6Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6Ok9iamVjdEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1
bGVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0SGVhcDo6Y29u
dmVydFRleHR1cmVGcm9tQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6T2JqZWN0
SGVhcDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaDoKKyAgICAgICAgKiBTY3JpcHRz
L2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJH
UFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVu
dHJ5Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BV
QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXRFbnRyeS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25l
bnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJy
b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQmxl
bmRDb21wb25lbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVQmxlbmRTdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVm
ZmVyQmluZGluZy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbElt
YWdlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUJ1
ZmZlckRlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0Nv
bmZpZ3VyYXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVRnJhZ21lbnRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb2xvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVCbGVuZFN0YXRlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b2xvclRhcmdldFN0YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQ
VTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0
LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21waWxhdGlvbk1lc3NhZ2UuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3Jp
cHRvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmguCisgICAgICAgIChXZWJLaXQ6Oldl
YkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaDoK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dl
YkdQVURldmljZURlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuaC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVUV4dGVudDNELmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcp
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJl
QmluZGluZ0xheW91dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Lmg6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFs
VGV4dHVyZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdt
ZW50U3RhdGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmg6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4
dGVybmFsSW1hZ2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmguCisgICAgICAgIChXZWJL
aXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5n
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRp
bmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdl
YktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VEYXRhTGF5b3V0Lmg6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVTXVsdGlzYW1wbGVTdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luMkQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNj
cmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VU9yaWdpbjJELmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
R1BVL1dlYkdQVU9yaWdpbjNELmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRP
Zk1lbW9yeUVycm9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVUVycm9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BV
OjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmguCisgICAg
ICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZy
b21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVByb2dyYW1tYWJsZVN0
YWdlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3Iu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJH
UFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0
b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJE
ZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFz
c0Rlc2NyaXB0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaC4KKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
cy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRl
clBhc3NUaW1lc3RhbXBXcml0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRh
cHRlck9wdGlvbnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVmFsaWRhdGlvbkVycm9yLmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVy
dEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1w
bGVyQmluZGluZ0xheW91dC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxl
ckRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQmxlbmRTdGF0ZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dl
YkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUv
V2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRp
b25FcnJvci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdGVuY2lsRmFjZVN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdG9y
YWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRl
eHR1cmVCaW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
R1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRp
bmdMYXlvdXQuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNjcmlw
dG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJs
ZW5kU3RhdGUuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2Vi
R1BVVGV4dHVyZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVRl
eHR1cmVWaWV3RGVzY3JpcHRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oLgorICAgICAgICAoV2ViS2l0OjpX
ZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyk6CisgICAgICAgICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaDoK
KyAgICAgICAgKiBTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVC
aW5kaW5nTGF5b3V0LmguCisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6Q29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKToKKyAgICAgICAgKiBTaGFyZWQvV2ViR1BV
L1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4QnVmZmVyTGF5b3V0LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6
OkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyk6CisgICAgICAg
ICogU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViR1BVOjpDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuaDoKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0xMS0x
OSAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEVuYWJs
ZSBtZXNzYWdlIGZpbHRlcmluZyBmb3IgYWxsIFdlYktpdCBwcm9jZXNzZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cERlc2NyaXB0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cERlc2NyaXB0b3IuaApp
bmRleCA1MzVlMzU3NDYxOTFmZGYyMTU3Yjc5YTUzY2MyNjZmYWIyMjdjNDU4Li5hMGNkMjljNTVl
NDcxOWQ1NDliNGEwMDE4YjJmYWY1MWRiOTNiYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCkBAIC00MCwxMyAr
NDAsOSBAQCBzdHJ1Y3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICB7IGxhYmVsIH0s
CiAgICAgICAgICAgICBsYXlvdXQtPmJhY2tpbmcoKSwKLSAgICAgICAgICAgIChbdGhpc10gKCkg
ewotICAgICAgICAgICAgICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwRW50cnk+IGVu
dHJpZXM7Ci0gICAgICAgICAgICAgICAgZW50cmllcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRo
aXMtPmVudHJpZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGJpbmRHcm91
cEVudHJ5IDogdGhpcy0+ZW50cmllcykKLSAgICAgICAgICAgICAgICAgICAgZW50cmllcy51bmNo
ZWNrZWRBcHBlbmQoYmluZEdyb3VwRW50cnkuY29udmVydFRvQmFja2luZygpKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZW50cmllczsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBl
bnRyaWVzLm1hcChbXSAoYXV0byYgYmluZEdyb3VwRW50cnkpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gYmluZEdyb3VwRW50cnkuY29udmVydFRvQmFja2luZygpOworICAgICAgICAgICAgfSks
CiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKaW5kZXggM2RjYjU0
MDcwMTRiYjliMjMyYTg3NDk1YjZlZWQ5MWY3MjVmYTU3NS4uNmIxNDE1MWE5NDkxMTNiZGYxNmNk
YjEwZDg4MzVlZmZkYjZiZDQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuaApAQCAtMzcsMTMg
KzM3LDkgQEAgc3RydWN0IEdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAg
ICAgIHsgbGFiZWwgfSwKLSAgICAgICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAg
IFZlY3RvcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk+IGVudHJpZXM7Ci0gICAg
ICAgICAgICAgICAgZW50cmllcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmVudHJpZXMu
c2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdGhpcy0+ZW50cmll
cykKLSAgICAgICAgICAgICAgICAgICAgZW50cmllcy51bmNoZWNrZWRBcHBlbmQoZW50cnkuY29u
dmVydFRvQmFja2luZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW50cmllczsKLSAgICAg
ICAgICAgIH0pKCksCisgICAgICAgICAgICBlbnRyaWVzLm1hcChbXSAoYXV0byYgZW50cnkpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkuY29udmVydFRvQmFja2luZygpOworICAgICAg
ICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbkluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9XZWJHUFUvR1BVQ29tcGlsYXRpb25JbmZvLmNwcAppbmRleCAwYjdiYjFjNTkyMjlk
NWVkMDdiZDc2OTU2NzlkODZmZTZiOGY2ZDRkLi5kMmRmMzBhMzY3ODZkNWRkMWRmNDNkNDdlY2Jk
ZjczNDk0YjJjZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVDb21waWxhdGlvbkluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVUNvbXBpbGF0aW9uSW5mby5jcHAKQEAgLTMwLDEyICszMCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogVmVjdG9yPFJlZjxHUFVDb21waWxhdGlvbk1lc3NhZ2U+PiBHUFVDb21waWxhdGlv
bkluZm86Om1lc3NhZ2VzKCkgY29uc3QKIHsKLSAgICBhdXRvIG1lc3NhZ2VzID0gbV9iYWNraW5n
LT5tZXNzYWdlcygpOwotICAgIFZlY3RvcjxSZWY8R1BVQ29tcGlsYXRpb25NZXNzYWdlPj4gcmVz
dWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1lc3NhZ2VzLnNpemUoKSk7
Ci0gICAgZm9yIChhdXRvJiBtZXNzYWdlIDogbWVzc2FnZXMpCi0gICAgICAgIHJlc3VsdC51bmNo
ZWNrZWRBcHBlbmQoR1BVQ29tcGlsYXRpb25NZXNzYWdlOjpjcmVhdGUoV1RGTW92ZShtZXNzYWdl
KSkpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIG1fYmFja2luZy0+bWVzc2FnZXMo
KS5tYXAoW10gKGNvbnN0IGF1dG8mIG1lc3NhZ2UpIHsKKyAgICAgICAgcmV0dXJuIEdQVUNvbXBp
bGF0aW9uTWVzc2FnZTo6Y3JlYXRlKG1lc3NhZ2UpOworICAgIH0pOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21waWxhdGlvbk1lc3NhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5o
CmluZGV4IGJhOTRiZjI4MTU4ZjFhMWIxMDk5Mzg5N2E2YWE3N2IxODY0ZTJiZGMuLmRkNTc5NGIw
NjIyOWM4YzNkYjg0YzRiY2E2MGI3ZjZhNzkxNjk1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCkBAIC0zNiw5ICsz
Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1BVQ29tcGlsYXRpb25NZXNzYWdl
IDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29tcGlsYXRpb25NZXNzYWdlPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxHUFVDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZShSZWY8UEFMOjpXZWJH
UFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJiBiYWNraW5nKQorICAgIHN0YXRpYyBSZWY8R1BVQ29t
cGlsYXRpb25NZXNzYWdlPiBjcmVhdGUoUEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZSYg
YmFja2luZykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdQVUNvbXBpbGF0
aW9uTWVzc2FnZShXVEZNb3ZlKGJhY2tpbmcpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEdQVUNvbXBpbGF0aW9uTWVzc2FnZShiYWNraW5nKSk7CiAgICAgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKCkgY29uc3Q7CkBAIC01Miw4ICs1Miw4IEBAIHB1YmxpYzoKICAgICBj
b25zdCBQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlJiBiYWNraW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgR1BVQ29tcGlsYXRpb25NZXNzYWdl
KFJlZjxQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiYmIGJhY2tpbmcpCi0gICAgICAg
IDogbV9iYWNraW5nKFdURk1vdmUoYmFja2luZykpCisgICAgR1BVQ29tcGlsYXRpb25NZXNzYWdl
KFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2UmIGJhY2tpbmcpCisgICAgICAgIDogbV9i
YWNraW5nKGJhY2tpbmcpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5oCmlu
ZGV4IDJjOTQ1Njg4MTM2YWQ3ZDlkYmY1MWI1NDkzYzVjYmZiNDVlOTAyMDQuLjNhNWYxYWE4OTYy
YTI5ZjM5ODA4NWM4ZmYzZDhjMjMzMTMzOTI1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmgK
QEAgLTU0LDExICs1NCw5IEBAIHVzaW5nIEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzID0g
VmVjdG9yPEdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+OwogCiBpbmxpbmUgUEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMmIGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzKQog
ewotICAgIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcyByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0
ZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8mIGNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUgOiBj
b21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcykKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVu
ZChjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLmNvbnZlcnRUb0JhY2tpbmcoKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMubWFwKFtd
IChhdXRvJiBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlKSB7CisgICAgICAgIHJldHVybiBjb21w
dXRlUGFzc1RpbWVzdGFtcFdyaXRlLmNvbnZlcnRUb0JhY2tpbmcoKTsKKyAgICB9KTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlRGVz
Y3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlRGVzY3Jp
cHRvci5oCmluZGV4IDJmZjUyYjlkOWYxYmQxZTk1MTY5ZmI4OWYxNTUxOWI0MTQwNGRmZDMuLjU2
ZmRkY2E2NzI1Mjk2MjcxZTVjNjYyZTQwMmU1MzQ0Mzg3MzAwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZURlc2NyaXB0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VEZXNjcmlwdG9yLmgKQEAgLTQxLDEz
ICs0MSw5IEBAIHN0cnVjdCBHUFVEZXZpY2VEZXNjcmlwdG9yIDogcHVibGljIEdQVU9iamVjdERl
c2NyaXB0b3JCYXNlIHsKICAgICB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICB7IGxh
YmVsIH0sCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8
UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPiByZXF1aXJlZEZlYXR1cmVzOwotICAgICAgICAgICAg
ICAgIHJlcXVpcmVkRmVhdHVyZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5yZXF1aXJl
ZEZlYXR1cmVzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiByZXF1
aXJlZEZlYXR1cmUgOiB0aGlzLT5yZXF1aXJlZEZlYXR1cmVzKQotICAgICAgICAgICAgICAgICAg
ICByZXF1aXJlZEZlYXR1cmVzLnVuY2hlY2tlZEFwcGVuZChXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKHJlcXVpcmVkRmVhdHVyZSkpOwotICAgICAgICAgICAgICAgIHJldHVybiByZXF1aXJlZEZl
YXR1cmVzOwotICAgICAgICAgICAgfSkoKSwKKyAgICAgICAgICAgIHJlcXVpcmVkRmVhdHVyZXMu
bWFwKFtdIChjb25zdCBhdXRvJiByZXF1aXJlZEZlYXR1cmUpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhyZXF1aXJlZEZlYXR1cmUpOworICAgICAg
ICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL1dlYkdQVS9HUFVGcmFnbWVudFN0YXRlLmgKaW5kZXggOWIyMGUyZWY4OGI1MDVjNWU0Mjg4
N2RlODljODAzMGFiMjIzNTlkYS4uZTliNjlhY2I1YWNiMDZjYTY5Yjg3MTcyZTk5M2U1MThlZjk1
YjVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRnJhZ21l
bnRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVUZyYWdtZW50
U3RhdGUuaApAQCAtNDAsMjEgKzQwLDExIEBAIHN0cnVjdCBHUFVGcmFnbWVudFN0YXRlIDogcHVi
bGljIEdQVVByb2dyYW1tYWJsZVN0YWdlIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBtb2R1bGUtPmJhY2tpbmcoKSwKICAgICAgICAgICAgICAgICBlbnRyeVBvaW50LAotICAgICAg
ICAgICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAgICAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgUEFMOjpXZWJHUFU6OlBpcGVsaW5lQ29uc3RhbnRWYWx1ZT4+IGNvbnN0
YW50czsKLSAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkodGhpcy0+Y29uc3RhbnRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgYXV0byYgY29uc3RhbnQgOiB0aGlzLT5jb25zdGFudHMpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdGFudHMudW5jaGVja2VkQXBwZW5kKG1ha2VLZXlWYWx1ZVBhaXIoY29uc3RhbnQu
a2V5LCBjb25zdGFudC52YWx1ZSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3Rh
bnRzOwotICAgICAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICAgICAgY29uc3RhbnRzLAog
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAg
IFZlY3RvcjxQQUw6OldlYkdQVTo6Q29sb3JUYXJnZXRTdGF0ZT4gdGFyZ2V0czsKLSAgICAgICAg
ICAgICAgICB0YXJnZXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhpcy0+dGFyZ2V0cy5zaXpl
KCkpOwotICAgICAgICAgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogdGhpcy0+dGFyZ2V0cykK
LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQodGFyZ2V0LmNvbnZl
cnRUb0JhY2tpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldHM7Ci0gICAgICAg
ICAgICB9KSgpLAorICAgICAgICAgICAgdGFyZ2V0cy5tYXAoW10gKGF1dG8mIHRhcmdldCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQuY29udmVydFRvQmFja2luZygpOworICAgICAg
ICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCmluZGV4
IGEyNGI5N2Q3Mzk1MDZjMWNiOTNiNGJhMDg0YWVlZGM5ZDNmODFjOTQuLjViZmI1NTg5ZGQ1ZTY2
NGE5OGFhMTkzY2E5YWM3M2FhZDI1ZmZlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCkBAIC0z
NywxNSArMzcsMTAgQEAgc3RydWN0IEdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA6IHB1Ymxp
YyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgewogICAgICAgICByZXR1cm4gewogICAg
ICAgICAgICAgeyBsYWJlbCB9LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAg
ICAgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UEFMOjpXZWJHUFU6OkJpbmRHcm91
cExheW91dD4+IGJpbmRHcm91cExheW91dHM7Ci0gICAgICAgICAgICAgICAgYmluZEdyb3VwTGF5
b3V0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmJpbmRHcm91cExheW91dHMuc2l6ZSgp
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGJpbmRHcm91cExheW91dCA6IHRo
aXMtPmJpbmRHcm91cExheW91dHMpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGJpbmRH
cm91cExheW91dCk7Ci0gICAgICAgICAgICAgICAgICAgIGJpbmRHcm91cExheW91dHMudW5jaGVj
a2VkQXBwZW5kKGJpbmRHcm91cExheW91dC0+YmFja2luZygpKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJpbmRHcm91cExheW91dHM7Ci0gICAgICAgICAgICB9
KSgpLAorICAgICAgICAgICAgYmluZEdyb3VwTGF5b3V0cy5tYXAoW10gKGNvbnN0IGF1dG8mIGJp
bmRHcm91cExheW91dCkgLT4gc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwTGF5b3V0PiB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGJpbmRHcm91cExheW91dCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmRHcm91cExheW91dC0+YmFja2luZygpOworICAg
ICAgICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcm9ncmFtbWFibGVTdGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCBhMTE1YTZjMDk4
ZDFlOTM0Y2I3MWI0NTI3N2FiZTQ4YjU2ZDdhMjUzLi44NGMxZDA4NjMwNDU3YzliYjU4ZWZiZTc5
ZGFjOTc1YzI5ZDAwMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVQcm9ncmFtbWFibGVTdGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVByb2dyYW1tYWJsZVN0YWdlLmgKQEAgLTQyLDEzICs0Miw3IEBAIHN0cnVjdCBHUFVQ
cm9ncmFtbWFibGVTdGFnZSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICBtb2R1bGUt
PmJhY2tpbmcoKSwKICAgICAgICAgICAgIGVudHJ5UG9pbnQsCi0gICAgICAgICAgICAoW3RoaXNd
ICgpIHsKLSAgICAgICAgICAgICAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgUEFMOjpX
ZWJHUFU6OlBpcGVsaW5lQ29uc3RhbnRWYWx1ZT4+IGNvbnN0YW50czsKLSAgICAgICAgICAgICAg
ICBjb25zdGFudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5jb25zdGFudHMuc2l6ZSgp
KTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnN0YW50IDogdGhpcy0+Y29u
c3RhbnRzKQotICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMudW5jaGVja2VkQXBwZW5kKG1h
a2VLZXlWYWx1ZVBhaXIoY29uc3RhbnQua2V5LCBjb25zdGFudC52YWx1ZSkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBjb25zdGFudHM7Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAg
Y29uc3RhbnRzLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9XZWJHUFUvR1BVUXVlcnlTZXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVRdWVyeVNldERlc2NyaXB0b3IuaAppbmRleCAwMjhkYTVjYmQx
MzdlMzBkYTk0MTQwNTQ0YTgxNmJlMTFmMWZjNTAxLi4wZGE5MDQzOGNkYzA0MDIzZjUwNzBjYjA2
YjNkZDUxY2Q4NGVkZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVRdWVyeVNldERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dl
YkdQVS9HUFVRdWVyeVNldERlc2NyaXB0b3IuaApAQCAtNDIsMTMgKzQyLDkgQEAgc3RydWN0IEdQ
VVF1ZXJ5U2V0RGVzY3JpcHRvciA6IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgICAgICAgICB7IGxhYmVsIH0sCiAgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNr
aW5nKHR5cGUpLAogICAgICAgICAgICAgY291bnQsCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsK
LSAgICAgICAgICAgICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlBpcGVsaW5lU3RhdGlzdGljTmFt
ZT4gcGlwZWxpbmVTdGF0aXN0aWNzOwotICAgICAgICAgICAgICAgIHBpcGVsaW5lU3RhdGlzdGlj
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPnBpcGVsaW5lU3RhdGlzdGljcy5zaXplKCkp
OwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcGlwZWxpbmVTdGF0aXN0aWMgOiB0
aGlzLT5waXBlbGluZVN0YXRpc3RpY3MpCi0gICAgICAgICAgICAgICAgICAgIHBpcGVsaW5lU3Rh
dGlzdGljcy51bmNoZWNrZWRBcHBlbmQoV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhwaXBlbGlu
ZVN0YXRpc3RpYykpOwotICAgICAgICAgICAgICAgIHJldHVybiBwaXBlbGluZVN0YXRpc3RpY3M7
Ci0gICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgcGlwZWxpbmVTdGF0aXN0aWNzLm1hcChb
XSAoY29uc3QgYXV0byYgcGlwZWxpbmVTdGF0aXN0aWMpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gV2ViQ29yZTo6Y29udmVydFRvQmFja2luZyhwaXBlbGluZVN0YXRpc3RpYyk7CisgICAgICAg
ICAgICB9KSwKICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRv
ci5oCmluZGV4IDY5NTdlYTU5MzIzMWU3MWRmZTYxNDI3Y2QzZTBmZmEzZGVkZWIyNmEuLjIzODlh
ZDI0N2I0MzZiZDQwMzVkZGI1Yzg4ZDJkZDdkZGYyYjQ2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
ckRlc2NyaXB0b3IuaApAQCAtMzYsMTMgKzM2LDkgQEAgc3RydWN0IEdQVVJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yIDogcHVibGljIEdQVVJlbmRlclBhc3NMYXlvdXQgewogICAgICAgICBy
ZXR1cm4gewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHsgbGFiZWwgfSwKLSAgICAg
ICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFBBTDo6
V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBjb2xvckZvcm1hdHM7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbG9yRm9ybWF0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbG9yRm9ybWF0cy5z
aXplKCkpOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbG9yRm9ybWF0
IDogdGhpcy0+Y29sb3JGb3JtYXRzKQotICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JGb3Jt
YXRzLnVuY2hlY2tlZEFwcGVuZChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKGNvbG9yRm9ybWF0
KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xvckZvcm1hdHM7Ci0gICAgICAgICAg
ICAgICAgfSkoKSwKKyAgICAgICAgICAgICAgICBjb2xvckZvcm1hdHMubWFwKFtdIChjb25zdCBh
dXRvJiBjb2xvckZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCk7CisgICAgICAgICAgICAgICAgfSksCiAgICAg
ICAgICAgICAgICAgZGVwdGhTdGVuY2lsRm9ybWF0ID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6
OmNvbnZlcnRUb0JhY2tpbmcoKmRlcHRoU3RlbmNpbEZvcm1hdCkgfSA6IHN0ZDo6bnVsbG9wdCwK
ICAgICAgICAgICAgICAgICBzYW1wbGVDb3VudCwKICAgICAgICAgICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
aAppbmRleCBhNWZjODMwMDIzMDRmZmIwZDYwY2ZhYjlmNWMyNDYwY2VjZDVlMmE0Li42M2FkNjI2
ODA5OTkzMWRkZDg2ODk1NWY0ZGVmNjEyOTNjMGIyZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKQEAgLTQy
LDEzICs0Miw5IEBAIHN0cnVjdCBHUFVSZW5kZXJQYXNzRGVzY3JpcHRvciA6IHB1YmxpYyBHUFVP
YmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgewogICAgICAgICByZXR1cm4gewogICAgICAgICAg
ICAgeyBsYWJlbCB9LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICAgICAg
VmVjdG9yPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBjb2xvckF0dGFj
aG1lbnRzOwotICAgICAgICAgICAgICAgIGNvbG9yQXR0YWNobWVudHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSh0aGlzLT5jb2xvckF0dGFjaG1lbnRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAg
Zm9yIChhdXRvJiBjb2xvckF0dGFjaG1lbnQgOiB0aGlzLT5jb2xvckF0dGFjaG1lbnRzKQotICAg
ICAgICAgICAgICAgICAgICBjb2xvckF0dGFjaG1lbnRzLnVuY2hlY2tlZEFwcGVuZChjb2xvckF0
dGFjaG1lbnQuY29udmVydFRvQmFja2luZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29s
b3JBdHRhY2htZW50czsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBjb2xvckF0dGFj
aG1lbnRzLm1hcChbXSAoYXV0byYgY29sb3JBdHRhY2htZW50KSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbG9yQXR0YWNobWVudC5jb252ZXJ0VG9CYWNraW5nKCk7CisgICAgICAgICAgICB9
KSwKICAgICAgICAgICAgIGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQgPyBzdGQ6Om9wdGlvbmFsIHsg
ZGVwdGhTdGVuY2lsQXR0YWNobWVudC0+Y29udmVydFRvQmFja2luZygpIH0gOiBzdGQ6Om51bGxv
cHQsCiAgICAgICAgICAgICBvY2NsdXNpb25RdWVyeVNldCA/ICZvY2NsdXNpb25RdWVyeVNldC0+
YmFja2luZygpIDogbnVsbHB0ciwKICAgICAgICAgICAgIFdlYkNvcmU6OmNvbnZlcnRUb0JhY2tp
bmcodGltZXN0YW1wV3JpdGVzKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
V2ViR1BVL0dQVVJlbmRlclBhc3NMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2Vi
R1BVL0dQVVJlbmRlclBhc3NMYXlvdXQuaAppbmRleCA2MTQ0N2YzZTY3MDkzMTRkZGE5MjdiYTlm
YjgyMWFjODkxZTFjZDYzLi5hZjM1ZGZmOGNjMjgwY2NjODU1ODBiZGZkNTdhOTRkYTk4ZGRmNzA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNz
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFz
c0xheW91dC5oCkBAIC0zOSwxMyArMzksOSBAQCBzdHJ1Y3QgR1BVUmVuZGVyUGFzc0xheW91dCA6
IHB1YmxpYyBHUFVPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgewogICAgICAgICByZXR1cm4g
ewogICAgICAgICAgICAgeyBsYWJlbCB9LAotICAgICAgICAgICAgKFt0aGlzXSAoKSB7Ci0gICAg
ICAgICAgICAgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpUZXh0dXJlRm9ybWF0PiBjb2xvckZvcm1h
dHM7Ci0gICAgICAgICAgICAgICAgY29sb3JGb3JtYXRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
dGhpcy0+Y29sb3JGb3JtYXRzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBjb2xvckZvcm1hdCA6IHRoaXMtPmNvbG9yRm9ybWF0cykKLSAgICAgICAgICAgICAgICAg
ICAgY29sb3JGb3JtYXRzLnVuY2hlY2tlZEFwcGVuZChXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5n
KGNvbG9yRm9ybWF0KSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yRm9ybWF0czsKLSAg
ICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBjb2xvckZvcm1hdHMubWFwKFtdIChjb25zdCBh
dXRvJiBjb2xvckZvcm1hdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjb252
ZXJ0VG9CYWNraW5nKGNvbG9yRm9ybWF0KTsKKyAgICAgICAgICAgIH0pLAogICAgICAgICAgICAg
ZGVwdGhTdGVuY2lsRm9ybWF0ID8gc3RkOjpvcHRpb25hbCB7IFdlYkNvcmU6OmNvbnZlcnRUb0Jh
Y2tpbmcoKmRlcHRoU3RlbmNpbEZvcm1hdCkgfSA6IHN0ZDo6bnVsbG9wdCwKICAgICAgICAgICAg
IHNhbXBsZUNvdW50LAogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9XZWJHUFUvR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaAppbmRleCBmYzEy
YzE0Zjk1ZGJkNWNlYmYyZDE5YjIxODdkNmZhY2EwZmYwZjdiLi5jYTU5Mjk1NGNkM2YyMTdjY2Rl
M2M0NWYyZWNlNzJjNmFmZjBjMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L1dlYkdQVS9HUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL1dlYkdQVS9HUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUuaApAQCAtNTQsMTEg
KzU0LDkgQEAgdXNpbmcgR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcyA9IFZlY3RvcjxHUFVS
ZW5kZXJQYXNzVGltZXN0YW1wV3JpdGU+OwogCiBpbmxpbmUgUEFMOjpXZWJHUFU6OlJlbmRlclBh
c3NUaW1lc3RhbXBXcml0ZXMgY29udmVydFRvQmFja2luZyhjb25zdCBHUFVSZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGVzJiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzKQogewotICAgIFBBTDo6V2Vi
R1BVOjpSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzIHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShyZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLnNpemUoKSk7Ci0gICAg
Zm9yIChhdXRvJiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUgOiByZW5kZXJQYXNzVGltZXN0YW1w
V3JpdGVzKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKHJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZS5jb252ZXJ0VG9CYWNraW5nKCkpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMubWFwKFtdIChhdXRvJiByZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGUpIHsKKyAgICAgICAgcmV0dXJuIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5j
b252ZXJ0VG9CYWNraW5nKCk7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleEJ1ZmZlckxheW91dC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKaW5kZXggYzM4ZWE2
MzE3YTg5NWYxODdkOWM0ZTdiNWYxMDhhODQ2OTVmNzQwMi4uODIwYmU1ZTk4ZjhlZGE0NDlmNmNl
YzBiZTk5MjNjMmNjYTM0Y2UxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVVmVydGV4QnVmZmVyTGF5b3V0LmgKQEAgLTM5LDEzICszOSw5IEBAIHN0cnVj
dCBHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQgewogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAg
YXJyYXlTdHJpZGUsCiAgICAgICAgICAgICBXZWJDb3JlOjpjb252ZXJ0VG9CYWNraW5nKHN0ZXBN
b2RlKSwKLSAgICAgICAgICAgIChbdGhpc10gKCkgewotICAgICAgICAgICAgICAgIFZlY3RvcjxQ
QUw6OldlYkdQVTo6VmVydGV4QXR0cmlidXRlPiBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aGlzLT5hdHRyaWJ1dGVzLnNpemUo
KSk7Ci0gICAgICAgICAgICAgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGUgOiB0aGlzLT5hdHRyaWJ1
dGVzKQotICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnVuY2hlY2tlZEFwcGVuZChhdHRy
aWJ1dGUuY29udmVydFRvQmFja2luZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmli
dXRlczsKLSAgICAgICAgICAgIH0pKCksCisgICAgICAgICAgICBhdHRyaWJ1dGVzLm1hcChbXSAo
YXV0byYgYXR0cmlidXRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5jb252
ZXJ0VG9CYWNraW5nKCk7CisgICAgICAgICAgICB9KSwKICAgICAgICAgfTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVWZXJ0ZXhTdGF0ZS5oCmluZGV4IDkz
ODUyMTBkZThiZWQ2YzM2ZWNiMDQ4MWE4OTk0MmU2ODNjM2UwMzAuLjU4NTU5ZDgxMzQ3ODE5YTRl
ZjhmZmYyZTM2N2MwMWYwOTAyZmJiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvV2ViR1BVL0dQVVZlcnRleFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVVmVydGV4U3RhdGUuaApAQCAtNDEsMjEgKzQxLDEzIEBAIHN0cnVjdCBHUFVWZXJ0
ZXhTdGF0ZSA6IHB1YmxpYyBHUFVQcm9ncmFtbWFibGVTdGFnZSB7CiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgbW9kdWxlLT5iYWNraW5nKCksCiAgICAgICAgICAgICAgICAgZW50cnlQ
b2ludCwKLSAgICAgICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAgICAgICAgICAgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpQaXBlbGluZUNvbnN0YW50
VmFsdWU+PiBjb25zdGFudHM7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHRoaXMtPmNvbnN0YW50cy5zaXplKCkpOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGF1dG8mIGNvbnN0YW50IDogdGhpcy0+Y29uc3RhbnRzKQotICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3RhbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlS2V5VmFsdWVQYWlyKGNv
bnN0YW50LmtleSwgY29uc3RhbnQudmFsdWUpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGNvbnN0YW50czsKLSAgICAgICAgICAgICAgICB9KSgpLAorICAgICAgICAgICAgICAgIGNvbnN0
YW50cywKICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAoW3RoaXNdICgpIHsKLSAgICAgICAg
ICAgICAgICBWZWN0b3I8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4QnVmZmVyTGF5
b3V0Pj4gYnVmZmVyczsKLSAgICAgICAgICAgICAgICBidWZmZXJzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkodGhpcy0+YnVmZmVycy5zaXplKCkpOwotICAgICAgICAgICAgICAgIGZvciAoYXV0byYg
YnVmZmVyIDogdGhpcy0+YnVmZmVycykKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVycy5hcHBl
bmQoYnVmZmVyID8gc3RkOjpvcHRpb25hbCB7IGJ1ZmZlci0+Y29udmVydFRvQmFja2luZygpIH0g
OiBzdGQ6Om51bGxvcHQpOwotICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXJzOwotICAgICAg
ICAgICAgfSkoKSwKKyAgICAgICAgICAgIGJ1ZmZlcnMubWFwKFtdIChhdXRvJiBidWZmZXIpIC0+
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4geworICAgICAg
ICAgICAgICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXIt
PmNvbnZlcnRUb0JhY2tpbmcoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgICAgICAgICAgfSksCiAgICAgICAgIH07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BV
QWRhcHRlckltcGwuY3BwCmluZGV4IDIzZjVjOWFjZjA5MWRkODdkMzM1MDkwMWY0NWVhMDU2ZjJm
Y2ExYjMuLjdkNWIxNjU0ZWVkMDc2YzE3NjAyNjhkZjAwMjZkYjcyMjA2NTdiOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRh
cHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBAIC0xNjAsMTAgKzE2MCw5IEBAIHZvaWQgQWRh
cHRlckltcGw6OnJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV1RGOjpGdW5jdGlvCiAgICAgICAgIGxhYmVsLmRhdGEoKQogICAgIH07CiAKLSAgICBWZWN0
b3I8V0dQVUZlYXR1cmVOYW1lPiBmZWF0dXJlczsKLSAgICBmZWF0dXJlcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGRlc2NyaXB0b3IucmVxdWlyZWRGZWF0dXJlcy5zaXplKCkpOwotICAgIGZvciAo
YXV0byBmZWF0dXJlTmFtZSA6IGRlc2NyaXB0b3IucmVxdWlyZWRGZWF0dXJlcykKLSAgICAgICAg
ZmVhdHVyZXMudW5jaGVja2VkQXBwZW5kKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZl
cnRUb0JhY2tpbmcoZmVhdHVyZU5hbWUpKTsKKyAgICBhdXRvIGZlYXR1cmVzID0gZGVzY3JpcHRv
ci5yZXF1aXJlZEZlYXR1cmVzLm1hcChbdGhpc10gKGF1dG8gZmVhdHVyZU5hbWUpIHsKKyAgICAg
ICAgcmV0dXJuIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoZmVh
dHVyZU5hbWUpOworICAgIH0pOwogCiAgICAgV0dQVVJlcXVpcmVkTGltaXRzIGxpbWl0cyB7CiAg
ICAgICAgIG51bGxwdHIsIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaAppbmRleCBlODRl
ZDRhODViNmJjM2U0MjEzZDgzN2Q5MThhN2MxNmRmOTgyYTg5Li44MTRhMjU3MGIyOGVhZTdiYmRj
YTlmZjZhMjhjNzg3N2I1ZWQzOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oCkBA
IC01OCw5ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIgYmFja2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2so
V0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0IGNoYXIqIG1lc3NhZ2Up
OwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgV1RGOjpm
dW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RE
ZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2
aWNlPiYmKT4mJikgZmluYWw7CiAKLSAgICBEZXF1ZTxXVEY6OmZ1bmN0aW9uPHZvaWQoUmVmPERl
dmljZT4mJik+PiBtX2NhbGxiYWNrczsKKyAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoUmVm
PERldmljZT4mJik+PiBtX2NhbGxiYWNrczsKIAogICAgIFdHUFVBZGFwdGVyIG1fYmFja2luZyB7
IG51bGxwdHIgfTsKICAgICBSZWY8Q29udmVydFRvQmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRv
QmFja2luZ0NvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcAppbmRleCBhZTgy
ZTA0NTM3NjYzMTgwMzhkM2EwYzRkYzNlN2Q1MmM5MTliNmEyLi5iM2Y1NTVkYjMxNzg1ZTJkYjZk
NjQxNmMyZjkyOTZlZjQyNDBkODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAK
QEAgLTE0NCwxMCArMTQ0LDggQEAgUmVmPEJpbmRHcm91cExheW91dD4gRGV2aWNlSW1wbDo6Y3Jl
YXRlQmluZEdyb3VwTGF5b3V0KGNvbnN0IEJpbmRHcm91cExheW91dERlc2MKIHsKICAgICBhdXRv
IGxhYmVsID0gZGVzY3JpcHRvci5sYWJlbC51dGY4KCk7CiAKLSAgICBWZWN0b3I8V0dQVUJpbmRH
cm91cExheW91dEVudHJ5PiBiYWNraW5nRW50cmllczsKLSAgICBiYWNraW5nRW50cmllcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IuZW50cmllcy5zaXplKCkpOwotICAgIGZvciAo
Y29uc3QgYXV0byYgZW50cnkgOiBkZXNjcmlwdG9yLmVudHJpZXMpIHsKLSAgICAgICAgYmFja2lu
Z0VudHJpZXMudW5jaGVja2VkQXBwZW5kKFdHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeSB7CisgICAg
YXV0byBiYWNraW5nRW50cmllcyA9IGRlc2NyaXB0b3IuZW50cmllcy5tYXAoW3RoaXNdIChjb25z
dCBhdXRvJiBlbnRyeSkgeworICAgICAgICByZXR1cm4gV0dQVUJpbmRHcm91cExheW91dEVudHJ5
IHsKICAgICAgICAgICAgIG51bGxwdHIsCiAgICAgICAgICAgICBlbnRyeS5iaW5kaW5nLAogICAg
ICAgICAgICAgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFNoYWRlclN0YWdlRmxh
Z3NUb0JhY2tpbmcoZW50cnkudmlzaWJpbGl0eSksIHsKQEAgLTE2OSw4ICsxNjcsOCBAQCBSZWY8
QmluZEdyb3VwTGF5b3V0PiBEZXZpY2VJbXBsOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQoY29uc3Qg
QmluZEdyb3VwTGF5b3V0RGVzYwogICAgICAgICAgICAgICAgIGVudHJ5LnN0b3JhZ2VUZXh0dXJl
ID8gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhlbnRyeS5zdG9y
YWdlVGV4dHVyZS0+Zm9ybWF0KSA6IFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZCwKICAgICAg
ICAgICAgICAgICBlbnRyeS5zdG9yYWdlVGV4dHVyZSA/IG1fY29udmVydFRvQmFja2luZ0NvbnRl
eHQtPmNvbnZlcnRUb0JhY2tpbmcoZW50cnkuc3RvcmFnZVRleHR1cmUtPnZpZXdEaW1lbnNpb24p
IDogV0dQVVRleHR1cmVWaWV3RGltZW5zaW9uX1VuZGVmaW5lZCwKICAgICAgICAgICAgIH0sCi0g
ICAgICAgIH0pOwotICAgIH0KKyAgICAgICAgfTsKKyAgICB9KTsKIAogICAgIFdHUFVCaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yIGJhY2tpbmdEZXNjcmlwdG9yIHsKICAgICAgICAgbnVsbHB0ciwK
QEAgLTE4NiwxMCArMTg0LDkgQEAgUmVmPFBpcGVsaW5lTGF5b3V0PiBEZXZpY2VJbXBsOjpjcmVh
dGVQaXBlbGluZUxheW91dChjb25zdCBQaXBlbGluZUxheW91dERlc2NyaXAKIHsKICAgICBhdXRv
IGxhYmVsID0gZGVzY3JpcHRvci5sYWJlbC51dGY4KCk7CiAKLSAgICBWZWN0b3I8V0dQVUJpbmRH
cm91cExheW91dD4gYmFja2luZ0JpbmRHcm91cExheW91dHM7Ci0gICAgYmFja2luZ0JpbmRHcm91
cExheW91dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmJpbmRHcm91cExheW91
dHMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8gYmluZEdyb3VwTGF5b3V0IDogZGVzY3JpcHRvci5i
aW5kR3JvdXBMYXlvdXRzKQotICAgICAgICBiYWNraW5nQmluZEdyb3VwTGF5b3V0cy51bmNoZWNr
ZWRBcHBlbmQobV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhiaW5k
R3JvdXBMYXlvdXQuZ2V0KCkpKTsKKyAgICBhdXRvIGJhY2tpbmdCaW5kR3JvdXBMYXlvdXRzID0g
ZGVzY3JpcHRvci5iaW5kR3JvdXBMYXlvdXRzLm1hcChbdGhpc10gKGF1dG8gYmluZEdyb3VwTGF5
b3V0KSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0
VG9CYWNraW5nKGJpbmRHcm91cExheW91dC5nZXQoKSk7CisgICAgfSk7CiAKICAgICBXR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yIGJhY2tpbmdEZXNjcmlwdG9yIHsKICAgICAgICAgbnVsbHB0
ciwKQEAgLTIwNSwxMCArMjAyLDggQEAgUmVmPEJpbmRHcm91cD4gRGV2aWNlSW1wbDo6Y3JlYXRl
QmluZEdyb3VwKGNvbnN0IEJpbmRHcm91cERlc2NyaXB0b3ImIGRlc2NyaXB0b3IKIHsKICAgICBh
dXRvIGxhYmVsID0gZGVzY3JpcHRvci5sYWJlbC51dGY4KCk7CiAKLSAgICBWZWN0b3I8V0dQVUJp
bmRHcm91cEVudHJ5PiBiYWNraW5nRW50cmllczsKLSAgICBiYWNraW5nRW50cmllcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IuZW50cmllcy5zaXplKCkpOwotICAgIGZvciAoY29u
c3QgYXV0byYgYmluZEdyb3VwRW50cnkgOiBkZXNjcmlwdG9yLmVudHJpZXMpIHsKLSAgICAgICAg
YmFja2luZ0VudHJpZXMudW5jaGVja2VkQXBwZW5kKFdHUFVCaW5kR3JvdXBFbnRyeSB7CisgICAg
YXV0byBiYWNraW5nRW50cmllcyA9IGRlc2NyaXB0b3IuZW50cmllcy5tYXAoW3RoaXNdIChjb25z
dCBhdXRvJiBiaW5kR3JvdXBFbnRyeSkgeworICAgICAgICByZXR1cm4gV0dQVUJpbmRHcm91cEVu
dHJ5IHsKICAgICAgICAgICAgIG51bGxwdHIsCiAgICAgICAgICAgICBiaW5kR3JvdXBFbnRyeS5i
aW5kaW5nLAogICAgICAgICAgICAgc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxCdWZmZXJCaW5kaW5n
PihiaW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkgPyBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5j
b252ZXJ0VG9CYWNraW5nKHN0ZDo6Z2V0PEJ1ZmZlckJpbmRpbmc+KGJpbmRHcm91cEVudHJ5LnJl
c291cmNlKS5idWZmZXIpIDogbnVsbHB0ciwKQEAgLTIxNiw4ICsyMTEsOCBAQCBSZWY8QmluZEdy
b3VwPiBEZXZpY2VJbXBsOjpjcmVhdGVCaW5kR3JvdXAoY29uc3QgQmluZEdyb3VwRGVzY3JpcHRv
ciYgZGVzY3JpcHRvcgogICAgICAgICAgICAgc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxCdWZmZXJC
aW5kaW5nPihiaW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkgPyBzdGQ6OmdldDxCdWZmZXJCaW5kaW5n
PihiaW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkuc2l6ZS52YWx1ZV9vcihXR1BVX1dIT0xFX1NJWkUp
IDogMCwKICAgICAgICAgICAgIHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxTYW1wbGVyPj4oYmluZEdyb3VwRW50cnkucmVzb3VyY2UpID8gbV9jb252ZXJ0VG9C
YWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhzdGQ6OmdldDxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPFNhbXBsZXI+PihiaW5kR3JvdXBFbnRyeS5yZXNvdXJjZSkuZ2V0KCkpIDogbnVsbHB0
ciwKICAgICAgICAgICAgIHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxUZXh0dXJlVmlldz4+KGJpbmRHcm91cEVudHJ5LnJlc291cmNlKSA/IG1fY29udmVydFRv
QmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoc3RkOjpnZXQ8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxUZXh0dXJlVmlldz4+KGJpbmRHcm91cEVudHJ5LnJlc291cmNlKS5nZXQoKSkgOiBu
dWxscHRyLAotICAgICAgICB9KTsKLSAgICB9CisgICAgICAgIH07CisgICAgfSk7CiAKICAgICBX
R1BVQmluZEdyb3VwRGVzY3JpcHRvciBiYWNraW5nRGVzY3JpcHRvciB7CiAgICAgICAgIG51bGxw
dHIsCkBAIC0yNTksMTAgKzI1NCw5IEBAIGF1dG8gY29udmVydFRvQmFja2luZyhjb25zdCBDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0VG9CYWNrCiAKICAgICBh
dXRvIGVudHJ5UG9pbnQgPSBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2ludC51dGY4KCk7CiAK
LSAgICBWZWN0b3I8Q1N0cmluZz4gY29uc3RhbnROYW1lczsKLSAgICBjb25zdGFudE5hbWVzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoZGVzY3JpcHRvci5jb21wdXRlLmNvbnN0YW50cy5zaXplKCkp
OwotICAgIGZvciAoY29uc3QgYXV0byYgY29uc3RhbnQgOiBkZXNjcmlwdG9yLmNvbXB1dGUuY29u
c3RhbnRzKQotICAgICAgICBjb25zdGFudE5hbWVzLnVuY2hlY2tlZEFwcGVuZChjb25zdGFudC5r
ZXkudXRmOCgpKTsKKyAgICBhdXRvIGNvbnN0YW50TmFtZXMgPSBkZXNjcmlwdG9yLmNvbXB1dGUu
Y29uc3RhbnRzLm1hcChbXSAoY29uc3QgYXV0byYgY29uc3RhbnQpIHsKKyAgICAgICAgcmV0dXJu
IGNvbnN0YW50LmtleS51dGY4KCk7CisgICAgfSk7CiAKICAgICBWZWN0b3I8V0dQVUNvbnN0YW50
RW50cnk+IGJhY2tpbmdDb25zdGFudEVudHJpZXM7CiAgICAgYmFja2luZ0NvbnN0YW50RW50cmll
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IuY29tcHV0ZS5jb25zdGFudHMuc2l6
ZSgpKTsKQEAgLTMwNCwxMCArMjk4LDkgQEAgYXV0byBjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29udmVydFRvQmFja2kKIAogICAg
IGF1dG8gdmVydGV4RW50cnlQb2ludCA9IGRlc2NyaXB0b3IudmVydGV4LmVudHJ5UG9pbnQudXRm
OCgpOwogCi0gICAgVmVjdG9yPENTdHJpbmc+IHZlcnRleENvbnN0YW50TmFtZXM7Ci0gICAgdmVy
dGV4Q29uc3RhbnROYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IudmVydGV4
LmNvbnN0YW50cy5zaXplKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYgY29uc3RhbnQgOiBkZXNj
cmlwdG9yLnZlcnRleC5jb25zdGFudHMpCi0gICAgICAgIHZlcnRleENvbnN0YW50TmFtZXMudW5j
aGVja2VkQXBwZW5kKGNvbnN0YW50LmtleS51dGY4KCkpOworICAgIGF1dG8gdmVydGV4Q29uc3Rh
bnROYW1lcyA9IGRlc2NyaXB0b3IudmVydGV4LmNvbnN0YW50cy5tYXAoW10gKGNvbnN0IGF1dG8m
IGNvbnN0YW50KSB7CisgICAgICAgIHJldHVybiBjb25zdGFudC5rZXkudXRmOCgpOworICAgIH0p
OwogCiAgICAgVmVjdG9yPFdHUFVDb25zdGFudEVudHJ5PiB2ZXJ0ZXhDb25zdGFudEVudHJpZXM7
CiAgICAgdmVydGV4Q29uc3RhbnRFbnRyaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZGVzY3Jp
cHRvci52ZXJ0ZXguY29uc3RhbnRzLnNpemUoKSk7CkBAIC0zMjAsMjMgKzMxMywxOCBAQCBhdXRv
IGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBDb252ZXJ0VG9CYWNraQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBWZWN0b3I8VmVj
dG9yPFdHUFVWZXJ0ZXhBdHRyaWJ1dGU+PiBiYWNraW5nQXR0cmlidXRlczsKLSAgICBiYWNraW5n
QXR0cmlidXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2NyaXB0b3IudmVydGV4LmJ1ZmZl
cnMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJ1ZmZlciA6IGRlc2NyaXB0b3IudmVy
dGV4LmJ1ZmZlcnMpIHsKKyAgICBhdXRvIGJhY2tpbmdBdHRyaWJ1dGVzID0gZGVzY3JpcHRvci52
ZXJ0ZXguYnVmZmVycy5tYXAoWyZjb252ZXJ0VG9CYWNraW5nQ29udGV4dF0gKGNvbnN0IGF1dG8m
IGJ1ZmZlcikgLT4gVmVjdG9yPFdHUFVWZXJ0ZXhBdHRyaWJ1dGU+IHsKICAgICAgICAgaWYgKGJ1
ZmZlcikgewotICAgICAgICAgICAgVmVjdG9yPFdHUFVWZXJ0ZXhBdHRyaWJ1dGU+IGF0dHJpYnV0
ZXM7Ci0gICAgICAgICAgICBhdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYnVmZmVy
LT5hdHRyaWJ1dGVzLnNpemUoKSk7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGF0dHJp
YnV0ZSA6IGJ1ZmZlci0+YXR0cmlidXRlcykgewotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMu
dW5jaGVja2VkQXBwZW5kKFdHUFVWZXJ0ZXhBdHRyaWJ1dGUgeworICAgICAgICAgICAgcmV0dXJu
IGJ1ZmZlci0+YXR0cmlidXRlcy5tYXAoWyZjb252ZXJ0VG9CYWNraW5nQ29udGV4dF0gKGNvbnN0
IGF1dG8mIGF0dHJpYnV0ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBXR1BVVmVydGV4QXR0
cmlidXRlIHsKICAgICAgICAgICAgICAgICAgICAgY29udmVydFRvQmFja2luZ0NvbnRleHQuY29u
dmVydFRvQmFja2luZyhhdHRyaWJ1dGUuZm9ybWF0KSwKICAgICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlLm9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLnNoYWRlckxvY2F0
aW9uLAotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmFj
a2luZ0F0dHJpYnV0ZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoYXR0cmlidXRlcykpOworICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBiYWNraW5nQXR0cmlidXRlcy51bmNoZWNrZWRBcHBlbmQoeyB9KTsKLSAgICB9CisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgIH0pOwogCiAgICAgVmVjdG9yPFdHUFVWZXJ0ZXhCdWZm
ZXJMYXlvdXQ+IGJhY2tpbmdCdWZmZXJzOwogICAgIGJhY2tpbmdCdWZmZXJzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoZGVzY3JpcHRvci52ZXJ0ZXguYnVmZmVycy5zaXplKCkpOwpAQCAtMzc2LDkg
KzM2NCw5IEBAIGF1dG8gY29udmVydFRvQmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIENvbnZlcnRUb0JhY2tpCiAKICAgICBWZWN0b3I8Q1N0cmluZz4g
ZnJhZ21lbnRDb25zdGFudE5hbWVzOwogICAgIGlmIChkZXNjcmlwdG9yLmZyYWdtZW50KSB7Ci0g
ICAgICAgIGZyYWdtZW50Q29uc3RhbnROYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRlc2Ny
aXB0b3IuZnJhZ21lbnQtPmNvbnN0YW50cy5zaXplKCkpOwotICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIGNvbnN0YW50IDogZGVzY3JpcHRvci5mcmFnbWVudC0+Y29uc3RhbnRzKQotICAgICAgICAg
ICAgZnJhZ21lbnRDb25zdGFudE5hbWVzLnVuY2hlY2tlZEFwcGVuZChjb25zdGFudC5rZXkudXRm
OCgpKTsKKyAgICAgICAgZnJhZ21lbnRDb25zdGFudE5hbWVzID0gZGVzY3JpcHRvci5mcmFnbWVu
dC0+Y29uc3RhbnRzLm1hcChbXSAoY29uc3QgYXV0byYgY29uc3RhbnQpIHsKKyAgICAgICAgICAg
IHJldHVybiBjb25zdGFudC5rZXkudXRmOCgpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBW
ZWN0b3I8V0dQVUNvbnN0YW50RW50cnk+IGZyYWdtZW50Q29uc3RhbnRFbnRyaWVzOwpAQCAtMzk2
LDEwICszODQsOSBAQCBhdXRvIGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUmVuZGVyUGlwZWxpbmVE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb252ZXJ0VG9CYWNraQogCiAgICAgVmVjdG9yPHN0ZDo6
b3B0aW9uYWw8V0dQVUJsZW5kU3RhdGU+PiBibGVuZFN0YXRlczsKICAgICBpZiAoZGVzY3JpcHRv
ci5mcmFnbWVudCkgewotICAgICAgICBibGVuZFN0YXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGRlc2NyaXB0b3IuZnJhZ21lbnQtPnRhcmdldHMuc2l6ZSgpKTsKLSAgICAgICAgZm9yIChjb25z
dCBhdXRvJiB0YXJnZXQgOiBkZXNjcmlwdG9yLmZyYWdtZW50LT50YXJnZXRzKSB7CisgICAgICAg
IGJsZW5kU3RhdGVzID0gZGVzY3JpcHRvci5mcmFnbWVudC0+dGFyZ2V0cy5tYXAoWyZjb252ZXJ0
VG9CYWNraW5nQ29udGV4dF0gKGNvbnN0IGF1dG8mIHRhcmdldCkgLT4gc3RkOjpvcHRpb25hbDxX
R1BVQmxlbmRTdGF0ZT4gewogICAgICAgICAgICAgaWYgKHRhcmdldC5ibGVuZCkgewotICAgICAg
ICAgICAgICAgIGJsZW5kU3RhdGVzLnVuY2hlY2tlZEFwcGVuZChXR1BVQmxlbmRTdGF0ZSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIFdHUFVCbGVuZFN0YXRlIHsKICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFRvQmFja2luZ0NvbnRleHQuY29u
dmVydFRvQmFja2luZyh0YXJnZXQuYmxlbmQtPmNvbG9yLm9wZXJhdGlvbiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb252ZXJ0VG9CYWNraW5nQ29udGV4dC5jb252ZXJ0VG9CYWNraW5nKHRh
cmdldC5ibGVuZC0+Y29sb3Iuc3JjRmFjdG9yKSwKQEAgLTQwOSwxMCArMzk2LDEwIEBAIGF1dG8g
Y29udmVydFRvQmFja2luZyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0
b3IsIENvbnZlcnRUb0JhY2tpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC5jb252ZXJ0VG9CYWNraW5nKHRhcmdldC5ibGVuZC0+YWxwaGEuc3JjRmFjdG9y
KSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmNvbnZl
cnRUb0JhY2tpbmcodGFyZ2V0LmJsZW5kLT5hbHBoYS5kc3RGYWN0b3IpLAogICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfTsKICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVzLnVuY2hlY2tlZEFwcGVu
ZChzdGQ6Om51bGxvcHQpOwotICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgVmVjdG9yPFdHUFVDb2xvclRhcmdl
dFN0YXRlPiBjb2xvclRhcmdldHM7CkBAIC01NDAsMTAgKzUyNyw5IEBAIFJlZjxSZW5kZXJCdW5k
bGVFbmNvZGVyPiBEZXZpY2VJbXBsOjpjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFJl
bmRlckJ1bmRsCiB7CiAgICAgYXV0byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwog
Ci0gICAgVmVjdG9yPFdHUFVUZXh0dXJlRm9ybWF0PiBiYWNraW5nQ29sb3JGb3JtYXRzOwotICAg
IGJhY2tpbmdDb2xvckZvcm1hdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXNjcmlwdG9yLmNv
bG9yRm9ybWF0cy5zaXplKCkpOwotICAgIGZvciAoYXV0byBjb2xvckZvcm1hdCA6IGRlc2NyaXB0
b3IuY29sb3JGb3JtYXRzKQotICAgICAgICBiYWNraW5nQ29sb3JGb3JtYXRzLnVuY2hlY2tlZEFw
cGVuZChtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGNvbG9yRm9y
bWF0KSk7CisgICAgYXV0byBiYWNraW5nQ29sb3JGb3JtYXRzID0gZGVzY3JpcHRvci5jb2xvckZv
cm1hdHMubWFwKFt0aGlzXSAoYXV0byBjb2xvckZvcm1hdCkgeworICAgICAgICByZXR1cm4gbV9j
b252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhjb2xvckZvcm1hdCk7Cisg
ICAgfSk7CiAKICAgICBXR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IgYmFja2luZ0Rl
c2NyaXB0b3IgewogICAgICAgICBudWxscHRyLApAQCAtNTYxLDEwICs1NDcsOSBAQCBSZWY8UXVl
cnlTZXQ+IERldmljZUltcGw6OmNyZWF0ZVF1ZXJ5U2V0KGNvbnN0IFF1ZXJ5U2V0RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKICAgICBhdXRvIGxhYmVsID0gZGVzY3JpcHRvci5sYWJlbC51dGY4
KCk7CiAKLSAgICBWZWN0b3I8V0dQVVBpcGVsaW5lU3RhdGlzdGljTmFtZT4gYmFja2luZ1BpcGVs
aW5lU3RhdGlzdGljczsKLSAgICBiYWNraW5nUGlwZWxpbmVTdGF0aXN0aWNzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoZGVzY3JpcHRvci5waXBlbGluZVN0YXRpc3RpY3Muc2l6ZSgpKTsKLSAgICBm
b3IgKGF1dG8gcGlwZWxpbmVTdGF0aXN0aWMgOiBkZXNjcmlwdG9yLnBpcGVsaW5lU3RhdGlzdGlj
cykKLSAgICAgICAgYmFja2luZ1BpcGVsaW5lU3RhdGlzdGljcy51bmNoZWNrZWRBcHBlbmQobV9j
b252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhwaXBlbGluZVN0YXRpc3Rp
YykpOworICAgIGF1dG8gYmFja2luZ1BpcGVsaW5lU3RhdGlzdGljcyA9IGRlc2NyaXB0b3IucGlw
ZWxpbmVTdGF0aXN0aWNzLm1hcChbdGhpc10gKGF1dG8gcGlwZWxpbmVTdGF0aXN0aWMpIHsKKyAg
ICAgICAgcmV0dXJuIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmco
cGlwZWxpbmVTdGF0aXN0aWMpOworICAgIH0pOwogCiAgICAgV0dQVVF1ZXJ5U2V0RGVzY3JpcHRv
ciBiYWNraW5nRGVzY3JpcHRvciB7CiAgICAgICAgIG51bGxwdHIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1
ZXVlSW1wbC5jcHAKaW5kZXggZTM2NDRmNDMzMmMwNGY3ZGRmOTUxNjIyMmUwZDRkNTVkZjkzMzU3
NC4uNjM5ZmE0YWJlNjZkYmQxM2RkZjhjNDQ1NGYzOGYwNjNmYzU1MTkwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVRdWV1ZUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVUXVldWVJbXBsLmNwcApAQCAtNDksMTAgKzQ5LDkgQEAgUXVldWVJbXBsOjp+UXVldWVJ
bXBsKCkKIAogdm9pZCBRdWV1ZUltcGw6OnN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kQnVmZmVycykKIHsKLSAgICBWZWN0b3I8V0dQ
VUNvbW1hbmRCdWZmZXI+IGJhY2tpbmdDb21tYW5kQnVmZmVyczsKLSAgICBiYWNraW5nQ29tbWFu
ZEJ1ZmZlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb21tYW5kQnVmZmVycy5zaXplKCkpOwot
ICAgIGZvciAoYXV0byBjb21tYW5kQnVmZmVyIDogY29tbWFuZEJ1ZmZlcnMpCi0gICAgICAgIGJh
Y2tpbmdDb21tYW5kQnVmZmVycy51bmNoZWNrZWRBcHBlbmQobV9jb252ZXJ0VG9CYWNraW5nQ29u
dGV4dC0+Y29udmVydFRvQmFja2luZyhjb21tYW5kQnVmZmVyLmdldCgpKSk7CisgICAgYXV0byBi
YWNraW5nQ29tbWFuZEJ1ZmZlcnMgPSBjb21tYW5kQnVmZmVycy5tYXAoW3RoaXNdIChhdXRvIGNv
bW1hbmRCdWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQt
PmNvbnZlcnRUb0JhY2tpbmcoY29tbWFuZEJ1ZmZlcik7CisgICAgfSk7CiAKICAgICB3Z3B1UXVl
dWVTdWJtaXQobV9iYWNraW5nLCBiYWNraW5nQ29tbWFuZEJ1ZmZlcnMuc2l6ZSgpLCBiYWNraW5n
Q29tbWFuZEJ1ZmZlcnMuZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUmVuZGVyUGFzc0VuY29kZXJJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUmVu
ZGVyUGFzc0VuY29kZXJJbXBsLmNwcAppbmRleCA0NGFhODMxODg2YTFiMGVkY2QwZjc5OTlkYzEy
MDhkNzU0NGRkZGYwLi41YTFmOTI0NjZlYmI4MjJmMDc3MTlkZTdkZWI0M2Y4ZjA4M2U4Y2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVSZW5kZXJQYXNzRW5jb2RlckltcGwuY3BwCkBA
IC0xNjgsMTAgKzE2OCw5IEBAIHZvaWQgUmVuZGVyUGFzc0VuY29kZXJJbXBsOjplbmRQaXBlbGlu
ZVN0YXRpc3RpY3NRdWVyeSgpCiAKIHZvaWQgUmVuZGVyUGFzc0VuY29kZXJJbXBsOjpleGVjdXRl
QnVuZGxlcyhWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxSZW5kZXJCdW5kbGU+PiYmIHJl
bmRlckJ1bmRsZXMpCiB7Ci0gICAgVmVjdG9yPFdHUFVSZW5kZXJCdW5kbGU+IGJhY2tpbmdCdW5k
bGVzOwotICAgIGJhY2tpbmdCdW5kbGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyQnVu
ZGxlcy5zaXplKCkpOwotICAgIGZvciAoYXV0byByZW5kZXJCdW5kbGUgOiByZW5kZXJCdW5kbGVz
KQotICAgICAgICBiYWNraW5nQnVuZGxlcy51bmNoZWNrZWRBcHBlbmQobV9jb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhyZW5kZXJCdW5kbGUuZ2V0KCkpKTsKKyAgICBh
dXRvIGJhY2tpbmdCdW5kbGVzID0gcmVuZGVyQnVuZGxlcy5tYXAoW3RoaXNdIChhdXRvIHJlbmRl
ckJ1bmRsZSkgeworICAgICAgICByZXR1cm4gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29u
dmVydFRvQmFja2luZyhyZW5kZXJCdW5kbGUuZ2V0KCkpOworICAgIH0pOwogCiAgICAgd2dwdVJl
bmRlclBhc3NFbmNvZGVyRXhlY3V0ZUJ1bmRsZXMobV9iYWNraW5nLCBiYWNraW5nQnVuZGxlcy5z
aXplKCksIGJhY2tpbmdCdW5kbGVzLmRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVRleHR1cmVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVy
ZUltcGwuY3BwCmluZGV4IDg1ZjYzMGNjMDk1MDE1OGEyZTQ0OGVlOWEwNzBiZWQ0NTRkN2RiM2Iu
LjQwNzc1NmI0NDcxY2QxNDhiZWM2NDM5MGM5MDYzZDY3NDg3ZDE5ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVVGV4dHVyZUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVVGV4dHVyZUltcGwuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFRleHR1cmVJbXBsOjp+VGV4
dHVyZUltcGwoKQogICAgIHdncHVUZXh0dXJlUmVsZWFzZShtX2JhY2tpbmcpOwogfQogCi1SZWY8
VGV4dHVyZVZpZXc+IFRleHR1cmVJbXBsOjpjcmVhdGVWaWV3KGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VGV4dHVyZVZpZXdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikgY29uc3QKK1JlZjxUZXh0dXJlVmll
dz4gVGV4dHVyZUltcGw6OmNyZWF0ZVZpZXcoY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0dXJlVmll
d0Rlc2NyaXB0b3I+JiBkZXNjcmlwdG9yKQogewogICAgIENTdHJpbmcgbGFiZWwgPSBkZXNjcmlw
dG9yID8gZGVzY3JpcHRvci0+bGFiZWwudXRmOCgpIDogQ1N0cmluZygiIik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBpbGF0
aW9uTWVzc2FnZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKaW5kZXggMDE2MDRjMTM4MWFlOTU5NTE4ZjgwMGNiNmNj
YzU4ZjFmOWY2NjNmMi4uYzVhZWZlYzhhOGZjMGRjYWM4Zjg0M2JjOWFhZjQzYzE4ZDRhNmU1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q29tcGlsYXRpb25NZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKQEAgLTQwLDYgKzQwLDExIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tcGlsYXRpb25NZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSksIHR5cGUsIGxpbmVOdW0sIGxpbmVQb3MsIG9mZnNldCwgbGVuZ3RoKSk7
CiAgICAgfQogCisgICAgc3RhdGljIFJlZjxDb21waWxhdGlvbk1lc3NhZ2U+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIENvbXBpbGF0aW9uTWVzc2FnZVR5cGUgdHlwZSwgdWludDY0X3Qg
bGluZU51bSwgdWludDY0X3QgbGluZVBvcywgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCBsZW5n
dGgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21waWxhdGlvbk1lc3Nh
Z2UobWVzc2FnZSwgdHlwZSwgbGluZU51bSwgbGluZVBvcywgb2Zmc2V0LCBsZW5ndGgpKTsKKyAg
ICB9CisKICAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3Nh
Z2U7IH0KICAgICBDb21waWxhdGlvbk1lc3NhZ2VUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KICAgICB1aW50NjRfdCBsaW5lTnVtKCkgY29uc3QgeyByZXR1cm4gbV9saW5lTnVt
OyB9CkBAIC00Nyw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBvZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX29mZnNldDsgfQogICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVuZ3RoOyB9CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgQ29tcGlsYXRpb25N
ZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UsIENvbXBpbGF0aW9uTWVzc2FnZVR5cGUgdHlwZSwgdWlu
dDY0X3QgbGluZU51bSwgdWludDY0X3QgbGluZVBvcywgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRf
dCBsZW5ndGgpCiAgICAgICAgIDogbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCiAgICAgICAg
ICwgbV90eXBlKHR5cGUpCkBAIC01OCw3ICs2MywxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAg
IH0KIAotcHJpdmF0ZToKKyAgICBDb21waWxhdGlvbk1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBDb21waWxhdGlvbk1lc3NhZ2VUeXBlIHR5cGUsIHVpbnQ2NF90IGxpbmVOdW0sIHVpbnQ2
NF90IGxpbmVQb3MsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgbGVuZ3RoKQorICAgICAgICA6
IG1fbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1f
bGluZU51bShsaW5lTnVtKQorICAgICAgICAsIG1fbGluZVBvcyhsaW5lUG9zKQorICAgICAgICAs
IG1fb2Zmc2V0KG9mZnNldCkKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgeworICAg
IH0KKwogICAgIENvbXBpbGF0aW9uTWVzc2FnZShjb25zdCBDb21waWxhdGlvbk1lc3NhZ2UmKSA9
IGRlbGV0ZTsKICAgICBDb21waWxhdGlvbk1lc3NhZ2UoQ29tcGlsYXRpb25NZXNzYWdlJiYpID0g
ZGVsZXRlOwogICAgIENvbXBpbGF0aW9uTWVzc2FnZSYgb3BlcmF0b3I9KGNvbnN0IENvbXBpbGF0
aW9uTWVzc2FnZSYpID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgKaW5k
ZXggZWUwYjI0ZDU1NzlmZWEwNjk5MTJmYTBjOGI5NGE5MGZkZjhiYjBiZS4uYjZjOWY2ZDg5MmFk
MWQ1NjNmY2UwNGMxMzEzMDQ1MWE4NTNkMGE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0
dXJlcy5oCkBAIC0zOCw2ICszOCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFN1cHBvcnRlZEZlYXR1cmVzKFdURk1vdmUoZmVhdHVyZXMpKSk7CiAgICAgfQogCisg
ICAgc3RhdGljIFJlZjxTdXBwb3J0ZWRGZWF0dXJlcz4gY3JlYXRlKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmZWF0dXJlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN1cHBv
cnRlZEZlYXR1cmVzKGZlYXR1cmVzKSk7CisgICAgfQorCiAgICAgc3RhdGljIFJlZjxTdXBwb3J0
ZWRGZWF0dXJlcz4gY2xvbmUoY29uc3QgU3VwcG9ydGVkRmVhdHVyZXMmIGZlYXR1cmVzKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3VwcG9ydGVkRmVhdHVyZXMoVmVjdG9y
PFN0cmluZz4oZmVhdHVyZXMuZmVhdHVyZXMoKSkpKTsKQEAgLTQ1LDEzICs1MCwxNyBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzOyB9CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgU3VwcG9ydGVkRmVh
dHVyZXMoVmVjdG9yPFN0cmluZz4mJiBmZWF0dXJlcykKICAgICAgICAgOiBtX2ZlYXR1cmVzKFdU
Rk1vdmUoZmVhdHVyZXMpKQogICAgIHsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3VwcG9ydGVk
RmVhdHVyZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZlYXR1cmVzKQorICAgICAgICA6IG1fZmVh
dHVyZXMoZmVhdHVyZXMpCisgICAgeworICAgIH0KKwogICAgIFN1cHBvcnRlZEZlYXR1cmVzKGNv
bnN0IFN1cHBvcnRlZEZlYXR1cmVzJikgPSBkZWxldGU7CiAgICAgU3VwcG9ydGVkRmVhdHVyZXMo
U3VwcG9ydGVkRmVhdHVyZXMmJikgPSBkZWxldGU7CiAgICAgU3VwcG9ydGVkRmVhdHVyZXMmIG9w
ZXJhdG9yPShjb25zdCBTdXBwb3J0ZWRGZWF0dXJlcyYpID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGlt
aXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBw
b3J0ZWRMaW1pdHMuaAppbmRleCBjYTRmY2FiZTlmMjIzMmJhOTc4ZDAzYjU3OWViMjRiY2U2M2Ey
OTk4Li5jYzA4MzMzZjI0ZmM4MzUzMzJkZjMyYWUyODRhMjhkMjJmYTE0YjA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRM
aW1pdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRMaW1pdHMuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB1aW50
MzJfdCBtYXhDb21wdXRlV29ya2dyb3VwU2l6ZVooKSBjb25zdCB7IHJldHVybiBtX21heENvbXB1
dGVXb3JrZ3JvdXBTaXplWjsgfQogICAgIHVpbnQzMl90IG1heENvbXB1dGVXb3JrZ3JvdXBzUGVy
RGltZW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXhDb21wdXRlV29ya2dyb3Vwc1BlckRpbWVu
c2lvbjsgfQogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIFN1cHBvcnRlZExpbWl0cygKICAg
ICAgICAgdWludDMyX3QgbWF4VGV4dHVyZURpbWVuc2lvbjFELAogICAgICAgICB1aW50MzJfdCBt
YXhUZXh0dXJlRGltZW5zaW9uMkQsCkBAIC0yMDUsNyArMjA1LDYgQEAgcHJvdGVjdGVkOgogICAg
IHsKICAgICB9CiAKLXByaXZhdGU6CiAgICAgU3VwcG9ydGVkTGltaXRzKGNvbnN0IFN1cHBvcnRl
ZExpbWl0cyYpID0gZGVsZXRlOwogICAgIFN1cHBvcnRlZExpbWl0cyhTdXBwb3J0ZWRMaW1pdHMm
JikgPSBkZWxldGU7CiAgICAgU3VwcG9ydGVkTGltaXRzJiBvcGVyYXRvcj0oY29uc3QgU3VwcG9y
dGVkTGltaXRzJikgPSBkZWxldGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCmluZGV4IDRm
MmYxNzViN2Q5MzAxZDMzNTNkY2MyYzE5YjM0M2Y0ZjQ3NTdkNGMuLjY1MTI3ZTg1NTFhMDM1ODNk
NTE5ZjZmMGEyODhhY2E1YWZlMzU4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25FcnJvci5oCkBA
IC0zOCw2ICszOCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZh
bGlkYXRpb25FcnJvcihXVEZNb3ZlKG1lc3NhZ2UpKSk7CiAgICAgfQogCisgICAgc3RhdGljIFJl
ZjxWYWxpZGF0aW9uRXJyb3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSkpOwor
ICAgIH0KKwogICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVz
c2FnZTsgfQogCiBwcml2YXRlOgpAQCAtNDYsNiArNTEsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgfQogCisgICAgVmFsaWRhdGlvbkVycm9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICAg
ICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICB7CisgICAgfQorCiAgICAgVmFsaWRhdGlvbkVy
cm9yKGNvbnN0IFZhbGlkYXRpb25FcnJvciYpID0gZGVsZXRlOwogICAgIFZhbGlkYXRpb25FcnJv
cihWYWxpZGF0aW9uRXJyb3ImJikgPSBkZWxldGU7CiAgICAgVmFsaWRhdGlvbkVycm9yJiBvcGVy
YXRvcj0oY29uc3QgVmFsaWRhdGlvbkVycm9yJikgPSBkZWxldGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RI
ZWFwLmNwcAppbmRleCBjNjBlOTRmNmMyMTBiMGIwYzA5YWFmYTg5NjY0N2VkMWZmNzY5NTk1Li4w
OTEyMjE5NGVjYzdlZjY5MGYwNjI3Yzg4YWQyOTRlNTM5M2E3MzM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2Jq
ZWN0SGVhcC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2UuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUV4dGVybmFsVGV4dHVyZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVMYXlvdXQuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1
ZXJ5U2V0Lmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oPgpA
QCAtNjAsNyArNjEsNyBAQCBPYmplY3RIZWFwOjp+T2JqZWN0SGVhcCgpCiB7CiB9CiAKLWNvbnN0
IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNr
aW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpBZGFwdGVyKiBP
YmplY3RIZWFwOjpjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmll
cik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19h
bHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVyYXRvci0+dmFsdWUpKQpA
QCAtNjgsNyArNjksNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciogT2JqZWN0SGVhcDo6
Y29udmVydEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaQogICAgIHJldHVybiBzdGQ6
OmdldDxSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwog
fQogCi1jb25zdCBQQUw6OldlYkdQVTo6QmluZEdyb3VwKiBPYmplY3RIZWFwOjpjb252ZXJ0Qmlu
ZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJH
UFU6OkJpbmRHcm91cCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cEZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmpl
Y3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQo
KSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cD4+
KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC03Niw3ICs3Nyw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpC
aW5kR3JvdXAqIE9iamVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJ
ZGVuCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6QmluZEdyb3VwPj4oaXRl
cmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExh
eW91dCogT2JqZWN0SGVhcDo6Y29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQqIE9i
amVjdEhlYXA6OmNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXQ+PihpdGVy
YXRvci0+dmFsdWUpKQpAQCAtODQsNyArODUsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdy
b3VwTGF5b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbgog
ICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dD4+KGl0
ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIE9i
amVjdEhlYXA6OmNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCitQQUw6OldlYkdQVTo6QnVmZmVyKiBPYmplY3RIZWFwOjpjb252ZXJ0QnVmZmVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0
b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9v
YmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6
QnVmZmVyPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTkyLDcgKzkzLDcgQEAgY29uc3QgUEFMOjpX
ZWJHUFU6OkJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpCdWZmZXI+
PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6Q29tbWFu
ZEJ1ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciogT2Jq
ZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9s
ZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyPj4oaXRlcmF0b3It
PnZhbHVlKSkKQEAgLTEwMCw3ICsxMDEsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1
ZmZlciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZQogICAg
IHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZmZXI+PihpdGVyYXRv
ci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIq
IE9iamVjdEhlYXA6OmNvbnZlcnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlciogT2JqZWN0SGVh
cDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVy
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+dmFs
dWUpKQpAQCAtMTA4LDcgKzEwOSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rl
ciogT2JqZWN0SGVhcDo6Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoCiAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+PihpdGVyYXRvci0+
dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NFbmNvZGVy
KiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tcHV0ZVBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlciog
T2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZp
bmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAh
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rl
cj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMTYsNyArMTE3LDcgQEAgY29uc3QgUEFMOjpXZWJH
UFU6OkNvbXB1dGVQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQYXNzRW5j
b2RlckZyb20KICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFz
c0VuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lKiBPYmplY3RIZWFwOjpjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkNvbXB1
dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBlbGluZUZyb21CYWNraW5n
KFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9v
YmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5l
bmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQ
aXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMjQsNyArMTI1LDcgQEAgY29uc3QgUEFM
OjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZSogT2JqZWN0SGVhcDo6Y29udmVydENvbXB1dGVQaXBl
bGluZUZyb21CYWNraW4KICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpDb21w
dXRlUGlwZWxpbmU+PihpdGVyYXRvci0+dmFsdWUpLnB0cigpOwogfQogCi1jb25zdCBQQUw6Oldl
YkdQVTo6RGV2aWNlKiBPYmplY3RIZWFwOjpjb252ZXJ0RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OkRldmljZSogT2JqZWN0SGVhcDo6
Y29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
ICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYg
KGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxS
ZWY8UEFMOjpXZWJHUFU6OkRldmljZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xMzIsNyArMTMz
LDE1IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2UqIE9iamVjdEhlYXA6OmNvbnZlcnREZXZp
Y2VGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQ
QUw6OldlYkdQVTo6RGV2aWNlPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKIH0KIAotY29uc3Qg
UEFMOjpXZWJHUFU6OkdQVSogT2JqZWN0SGVhcDo6Y29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUqIE9i
amVjdEhlYXA6OmNvbnZlcnRFeHRlcm5hbFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlk
ZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+PihpdGVy
YXRvci0+dmFsdWUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjpn
ZXQ8UmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmU+PihpdGVyYXRvci0+dmFsdWUpLnB0
cigpOworfQorCitQQUw6OldlYkdQVTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9vYmpl
Y3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6OldlYkdQVTo6R1BV
Pj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTE0MCw3ICsxNDksNyBAQCBjb25zdCBQQUw6OldlYkdQ
VTo6R1BVKiBPYmplY3RIZWFwOjpjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmll
ciBpZGVudAogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpXZWJHUFU6OkdQVT4+KGl0ZXJh
dG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91
dCogT2JqZWN0SGVhcDo6Y29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBPYmplY3RI
ZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZp
ZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNf
YWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9yLT52
YWx1ZSkpCkBAIC0xNDgsNyArMTU3LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5
b3V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXRGcm9tQmFja2luZygKICAgICBy
ZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dD4+KGl0ZXJhdG9y
LT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogT2JqZWN0
SGVhcDo6Y29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlTZXRG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVy
YXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBt
X29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6V2ViR1BV
OjpRdWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xNTYsNyArMTY1LDcgQEAgY29uc3Qg
UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBPYmplY3RIZWFwOjpjb252ZXJ0UXVlcnlTZXRGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGkKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BVOjpR
dWVyeVNldD4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BV
OjpRdWV1ZSogT2JqZWN0SGVhcDo6Y29udmVydFF1ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllciBpZGVudGlmaWVyKQorUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpjb252ZXJ0
UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0
byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRv
ciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6
V2ViR1BVOjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xNjQsNyArMTczLDcgQEAgY29u
c3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBPYmplY3RIZWFwOjpjb252ZXJ0UXVldWVGcm9tQmFja2lu
ZyhXZWJHUFVJZGVudGlmaWVyIGkKICAgICByZXR1cm4gc3RkOjpnZXQ8UmVmPFBBTDo6V2ViR1BV
OjpRdWV1ZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5j
b2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BV
OjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5j
b2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRv
IGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9y
ID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+PihpdGVyYXRvci0+dmFsdWUpKQpAQCAtMTcyLDcg
KzE4MSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVyKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyCiAgICAgcmV0dXJuIHN0ZDo6Z2V0PFJl
ZjxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRy
KCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUqIE9iamVjdEhlYXA6OmNv
bnZlcnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyQnVu
ZGxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8g
aXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxQQUw6Oldl
YkdQVTo6UmVuZGVyQnVuZGxlPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTE4MCw3ICsxODksNyBA
QCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVu
ZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViRwogICAgIHJldHVybiBzdGQ6OmdldDxSZWY8UEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0
IFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2RlciogT2JqZWN0SGVhcDo6Y29udmVydFJlbmRl
clBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorUEFM
OjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVuZGVyUGFz
c0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAg
YXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVy
YXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBB
TDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xODgs
NyArMTk3LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBPYmplY3RI
ZWFwOjpjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmEKICAgICByZXR1cm4gc3RkOjpnZXQ8
UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlcj4+KGl0ZXJhdG9yLT52YWx1ZSkucHRy
KCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogT2JqZWN0SGVhcDo6
Y29udmVydFJlbmRlclBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBPYmplY3RIZWFwOjpjb252ZXJ0UmVu
ZGVyUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChp
dGVyYXRvciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
PFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkpCkBAIC0xOTYs
NyArMjA1LDcgQEAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBPYmplY3RIZWFw
Ojpjb252ZXJ0UmVuZGVyUGlwZWxpbmVGcm9tQmFja2luZygKICAgICByZXR1cm4gc3RkOjpnZXQ8
UmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7
CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2Ft
cGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BV
OjpTYW1wbGVyKiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZp
bmQoaWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAh
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlNhbXBsZXI+PihpdGVyYXRv
ci0+dmFsdWUpKQpAQCAtMjA0LDcgKzIxMyw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVy
KiBPYmplY3RIZWFwOjpjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpCiAg
ICAgcmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6U2FtcGxlcj4+KGl0ZXJhdG9yLT52
YWx1ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUqIE9iamVj
dEhlYXA6OmNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCitQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmplY3RIZWFwOjpjb252ZXJ0
U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQogewog
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX29iamVjdHMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAo
aXRlcmF0b3IgPT0gbV9vYmplY3RzLmVuZCgpIHx8ICFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFJl
ZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPj4oaXRlcmF0b3ItPnZhbHVlKSkKQEAgLTIxMiw3
ICsyMjEsNyBAQCBjb25zdCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBPYmplY3RIZWFwOjpj
b252ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViRwogICAgIHJldHVybiBzdGQ6OmdldDxS
ZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZT4+KGl0ZXJhdG9yLT52YWx1ZSkucHRyKCk7CiB9
CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVy
ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1BBTDo6V2ViR1BVOjpU
ZXh0dXJlKiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9vYmplY3RzLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb2JqZWN0cy5lbmQoKSB8fCAhc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8UEFMOjpXZWJHUFU6OlRleHR1cmU+PihpdGVyYXRvci0+
dmFsdWUpKQpAQCAtMjIwLDcgKzIyOSw3IEBAIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBP
YmplY3RIZWFwOjpjb252ZXJ0VGV4dHVyZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpCiAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4+KGl0ZXJhdG9yLT52YWx1
ZSkucHRyKCk7CiB9CiAKLWNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogT2JqZWN0SGVh
cDo6Y29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllciBpZGVudGlm
aWVyKQorUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3KiBPYmplY3RIZWFwOjpjb252ZXJ0VGV4dHVy
ZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0
byBpdGVyYXRvciA9IG1fb2JqZWN0cy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRv
ciA9PSBtX29iamVjdHMuZW5kKCkgfHwgIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmPFBBTDo6
V2ViR1BVOjpUZXh0dXJlVmlldz4+KGl0ZXJhdG9yLT52YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdEhlYXAuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVh
cC5oCmluZGV4IDU0NmQxZTUxNzk3YjY2YTBlMzZlNjhiN2M1MTBiYjUwMmJkMDE5NjQuLjlkOGZh
MTA0NDczNTU1M2Y5NDU2ZTE1N2MzZmM1OTExOWYzNGY4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVhcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0SGVh
cC5oCkBAIC00NywyNyArNDcsMjggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBPYmplY3RIZWFw
KCk7CiAKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6QWRhcHRlciogY29udmVydEFkYXB0ZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6
QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikg
ZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dCogY29udmVydEJp
bmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNv
bnN0IFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJ
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlciog
Y29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
LSAgICBjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIGNvbnZlcnRDb21tYW5kRW5j
b2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6
V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRDb21wdXRlUGFzc0VuY29kZXJGcm9t
QmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6
Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OkRldmljZSogY29udmVy
dERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBB
TDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQqIGNvbnZlcnRQaXBl
bGluZUxheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0
IFBBTDo6V2ViR1BVOjpRdWVyeVNldCogY29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXVlKiBjb252ZXJ0
UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6
OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogY29udmVydFJlbmRlckJ1bmRsZUVuY29kZXJG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7Ci0gICAgY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVy
KiBjb252ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUqIGNvbnZlcnRSZW5k
ZXJQaXBlbGluZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0
IFBBTDo6V2ViR1BVOjpTYW1wbGVyKiBjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpIGZpbmFsOwotICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUqIGNv
bnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAg
ICBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZSogY29udmVydFRleHR1cmVGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKLSAgICBjb25zdCBQQUw6OldlYkdQVTo6VGV4dHVyZVZp
ZXcqIGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFs
OworICAgIFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBjb252ZXJ0QWRhcHRlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIGNvbnZl
cnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tp
bmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OkJ1ZmZlciogY29u
dmVydEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6
V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2Rlciog
Y29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7
CisgICAgUEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNz
RW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhX
ZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6RGV2aWNlKiBjb252ZXJ0
RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJH
UFU6OkV4dGVybmFsVGV4dHVyZSogY29udmVydEV4dGVybmFsVGV4dHVyZUZyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpHUFUqIGNvbnZlcnRHUFVG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6UGlw
ZWxpbmVMYXlvdXQqIGNvbnZlcnRQaXBlbGluZUxheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpRdWVyeVNldCogY29udmVydFF1ZXJ5U2V0
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlF1
ZXVlKiBjb252ZXJ0UXVldWVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlciogY29udmVydFJlbmRlckJ1bmRsZUVu
Y29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQ
VTo6UmVuZGVyQnVuZGxlKiBjb252ZXJ0UmVuZGVyQnVuZGxlRnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgZmluYWw7CisgICAgUEFMOjpXZWJHUFU6OlJlbmRlclBhc3NFbmNvZGVyKiBjb252
ZXJ0UmVuZGVyUGFzc0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmUqIGNvbnZlcnRSZW5kZXJQaXBlbGluZUZy
b21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOworICAgIFBBTDo6V2ViR1BVOjpTYW1w
bGVyKiBjb252ZXJ0U2FtcGxlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpIGZpbmFsOwor
ICAgIFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGUqIGNvbnZlcnRTaGFkZXJNb2R1bGVGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQQUw6OldlYkdQVTo6VGV4dHVyZSog
Y29udmVydFRleHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBQ
QUw6OldlYkdQVTo6VGV4dHVyZVZpZXcqIGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKFdl
YkdQVUlkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgdXNpbmcgT2JqZWN0ID0gc3RkOjp2YXJpYW50
PAogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+LApAQCAtNzksNiArODAsNyBAQCBw
cml2YXRlOgogICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRW5jb2Rlcj4sCiAg
ICAgICAgIFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiwKICAgICAgICAgUmVmPFBB
TDo6V2ViR1BVOjpEZXZpY2U+LAorICAgICAgICBSZWY8UEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4
dHVyZT4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6R1BVPiwKICAgICAgICAgUmVmPFBBTDo6
V2ViR1BVOjpQaXBlbGluZUxheW91dD4sCiAgICAgICAgIFJlZjxQQUw6OldlYkdQVTo6UXVlcnlT
ZXQ+LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQt
c291cmNlcy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2gKaW5kZXggODUyYzI1OGM3ZTRjMmMzMjhkNTA3YjlmNTJhYzQ3ODU5ZjMxYmRlOC4uYzY3
ZTJkMWUzZDVkZDBiOThhODc3NWNlYTZlZDliNzhlNTkzZWIwYSAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCkBAIC0xNCw3ICsxNCw3
IEBAIGlmIFsgLXogIiR7QlVJTERfU0NSSVBUU19ESVJ9IiBdOyB0aGVuCiAgICAgZmkKIGZpCiAK
LVVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTAzCitVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50
PTExMQogVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTgwCiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhl
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91
cERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNjZiZDFiNzM3OWIwNGQ1MmRiMGNkMWI5
NDA2OWJlMWE5NGZlZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJH
UFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I+
IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5k
R3JvdXBEZXNjcmlwdG9yJiBiaW5kR3JvdXBEZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9
IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KGJpbmRHcm91cERlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvKiBiaW5kR3JvdXBMYXlvdXQgPSBjb252ZXJ0Qmlu
ZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoYmluZEdyb3VwRGVzY3JpcHRvci5iaW5kR3JvdXBMYXlv
dXQpOworICAgIGlmICghYmluZEdyb3VwTGF5b3V0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgVmVjdG9yPFBBTDo6V2ViR1BVOjpCaW5kR3JvdXBFbnRyeT4gZW50cmllczsK
KyAgICBlbnRyaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYmluZEdyb3VwRGVzY3JpcHRvci5l
bnRyaWVzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5nRW50cnkgOiBiaW5k
R3JvdXBEZXNjcmlwdG9yLmVudHJpZXMpIHsKKyAgICAgICAgYXV0byBlbnRyeSA9IGNvbnZlcnRG
cm9tQmFja2luZyhiYWNraW5nRW50cnkpOworICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgZW50cmllcy51bmNoZWNrZWRBcHBlbmQo
V1RGTW92ZSgqZW50cnkpKTsKKyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2Up
LCAqYmluZEdyb3VwTGF5b3V0LCBXVEZNb3ZlKGVudHJpZXMpIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Iu
aAppbmRleCBiY2NlNWI5Mzg2ZDg5ZjdjMGExM2M4Y2E1M2RkOTNiZmUyNWQzYWRkLi42YTM0ZDE5
ZDJkMzc4ZGNhZDc0YTQ4YmFjMGYzMjQ0NTk3YjdjZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAgLTI1
LDkgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3VwRW50cnkuaCIKICNpbmNsdWRlICJXZWJHUFVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVSB7CkBAIC02NSwzICs2OCw1IEBAIHN0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9y
IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVudHJ5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kODMyZGQwNTdiNTU4YTliOTAxOGQwNzZjNzkyMzQ4NjIyODk3YzRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVu
dHJ5LmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cEVudHJ5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBFbnRyeS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpC
aW5kR3JvdXBFbnRyeT4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKGNvbnN0IEJpbmRHcm91cEVudHJ5JiBiaW5kR3JvdXBFbnRyeSkKK3sKKyAgICBzd2l0Y2gg
KGJpbmRHcm91cEVudHJ5LnR5cGUpIHsKKyAgICBjYXNlIEJpbmRpbmdSZXNvdXJjZVR5cGU6OlNh
bXBsZXI6IHsKKyAgICAgICAgYXV0byogc2FtcGxlciA9IGNvbnZlcnRTYW1wbGVyRnJvbUJhY2tp
bmcoYmluZEdyb3VwRW50cnkuaWRlbnRpZmllcik7CisgICAgICAgIGlmICghc2FtcGxlcikKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgYmluZEdy
b3VwRW50cnkuYmluZGluZywgeyAqc2FtcGxlciB9IH0gfTsKKyAgICB9CisgICAgY2FzZSBCaW5k
aW5nUmVzb3VyY2VUeXBlOjpUZXh0dXJlVmlldzogeworICAgICAgICBhdXRvKiB0ZXh0dXJlVmll
dyA9IGNvbnZlcnRUZXh0dXJlVmlld0Zyb21CYWNraW5nKGJpbmRHcm91cEVudHJ5LmlkZW50aWZp
ZXIpOworICAgICAgICBpZiAoIXRleHR1cmVWaWV3KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBiaW5kR3JvdXBFbnRyeS5iaW5kaW5nLCB7ICp0
ZXh0dXJlVmlldyB9IH0gfTsKKyAgICB9CisgICAgY2FzZSBCaW5kaW5nUmVzb3VyY2VUeXBlOjpC
dWZmZXJCaW5kaW5nOiB7CisgICAgICAgIGF1dG8gYnVmZmVyQmluZGluZyA9IGNvbnZlcnRGcm9t
QmFja2luZyhiaW5kR3JvdXBFbnRyeS5idWZmZXJCaW5kaW5nKTsKKyAgICAgICAgaWYgKCFidWZm
ZXJCaW5kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuIHsgeyBiaW5kR3JvdXBFbnRyeS5iaW5kaW5nLCB7ICpidWZmZXJCaW5kaW5nIH0gfSB9Owor
ICAgIH0KKyAgICBjYXNlIEJpbmRpbmdSZXNvdXJjZVR5cGU6OkV4dGVybmFsVGV4dHVyZTogewor
ICAgICAgICBhdXRvKiBleHRlcm5hbFRleHR1cmUgPSBjb252ZXJ0RXh0ZXJuYWxUZXh0dXJlRnJv
bUJhY2tpbmcoYmluZEdyb3VwRW50cnkuaWRlbnRpZmllcik7CisgICAgICAgIGlmICghZXh0ZXJu
YWxUZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuIHsgeyBiaW5kR3JvdXBFbnRyeS5iaW5kaW5nLCB7ICpleHRlcm5hbFRleHR1cmUgfSB9IH07
CisgICAgfQorICAgIH0KKworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cEVu
dHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnku
aAppbmRleCBkMmY0OWQ1MDg0MzdkYmM5ZGZiYWQ3YmVkODYxMTMxYWM3ZDRlOGUwLi41M2ExYjQy
MzBhMjBlYjI0YjliYzY2NGFiOWZlMGY5NThmNmZkNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRW50cnkuaApAQCAtMjUsOSArMjUsMTIg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
ICJXZWJHUFVCdWZmZXJCaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CkBAIC05NCwzICs5Nyw1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJHUFU6OkJpbmRpbmdSZXNvdXJjZVR5cGU+IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERl
c2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwNjQ4NGU5ZDJjMGNiM2RlZDQyZmEyZDBmMWVmOGU5
NTgwMjI5NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91
cExheW91dERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBiaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGJpbmRHcm91cExheW91dERlc2NyaXB0
b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVudHJ5PiBlbnRyaWVzOworICAg
IGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
LmVudHJpZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdFbnRyeSA6IGJp
bmRHcm91cExheW91dERlc2NyaXB0b3IuZW50cmllcykgeworICAgICAgICBhdXRvIGVudHJ5ID0g
Y29udmVydEZyb21CYWNraW5nKGJhY2tpbmdFbnRyeSk7CisgICAgICAgIGlmICghZW50cnkpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBlbnRyaWVzLnVuY2hlY2tl
ZEFwcGVuZChXVEZNb3ZlKCplbnRyeSkpOworICAgIH0KKworICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqYmFzZSksIFdURk1vdmUoZW50cmllcykgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCmluZGV4IGI0ZjBjYjRjNjYyZWYzYWYyZGE1NTgyMDlmMmM3MDhhNTA5YzQ1NWIuLjQ3YTJl
MDJjM2M2NWFlZDQ1M2JmZmMxMTkyYTlhNjU1YjY3ZjVjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IuaApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIgog
I2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9u
YWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUg
ewpAQCAtNTcsMyArNjAsNSBAQCBzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciA6IHB1
YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODc1NzEyNjEzMTllNTc3ZDdmOTMxMDFlZDhiMGUxYzMzOWJiNzZmYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5k
R3JvdXBMYXlvdXRFbnRyeS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21C
YWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmlu
ZEdyb3VwTGF5b3V0RW50cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk+IENvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBMYXlvdXRF
bnRyeSYgYmluZEdyb3VwTGF5b3V0RW50cnkpCit7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6QnVmZmVyQmluZGluZ0xheW91dD4gYnVmZmVyOworICAgIGlmIChiaW5kR3JvdXBMYXlv
dXRFbnRyeS5idWZmZXIpIHsKKyAgICAgICAgYnVmZmVyID0gY29udmVydEZyb21CYWNraW5nKCpi
aW5kR3JvdXBMYXlvdXRFbnRyeS5idWZmZXIpOworICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ+IHNhbXBsZXI7CisgICAgaWYgKGJpbmRH
cm91cExheW91dEVudHJ5LnNhbXBsZXIpIHsKKyAgICAgICAgc2FtcGxlciA9IGNvbnZlcnRGcm9t
QmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkuc2FtcGxlcik7CisgICAgICAgIGlmICghc2Ft
cGxlcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVyZUJpbmRpbmdMYXlvdXQ+IHRleHR1cmU7Cisg
ICAgaWYgKGJpbmRHcm91cExheW91dEVudHJ5LnRleHR1cmUpIHsKKyAgICAgICAgdGV4dHVyZSA9
IGNvbnZlcnRGcm9tQmFja2luZygqYmluZEdyb3VwTGF5b3V0RW50cnkudGV4dHVyZSk7CisgICAg
ICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fQorCisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0PiBzdG9yYWdlVGV4dHVyZTsKKyAgICBpZiAoYmluZEdyb3VwTGF5b3V0RW50cnkuc3Rv
cmFnZVRleHR1cmUpIHsKKyAgICAgICAgc3RvcmFnZVRleHR1cmUgPSBjb252ZXJ0RnJvbUJhY2tp
bmcoKmJpbmRHcm91cExheW91dEVudHJ5LnN0b3JhZ2VUZXh0dXJlKTsKKyAgICAgICAgaWYgKCFz
dG9yYWdlVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQor
CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xh
eW91dD4gZXh0ZXJuYWxUZXh0dXJlOworICAgIGlmIChiaW5kR3JvdXBMYXlvdXRFbnRyeS5leHRl
cm5hbFRleHR1cmUpIHsKKyAgICAgICAgZXh0ZXJuYWxUZXh0dXJlID0gY29udmVydEZyb21CYWNr
aW5nKCpiaW5kR3JvdXBMYXlvdXRFbnRyeS5leHRlcm5hbFRleHR1cmUpOworICAgICAgICBpZiAo
IWV4dGVybmFsVGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fQorCisgICAgcmV0dXJuIHsgeyBiaW5kR3JvdXBMYXlvdXRFbnRyeS5iaW5kaW5nLCBiaW5kR3Jv
dXBMYXlvdXRFbnRyeS52aXNpYmlsaXR5LCBXVEZNb3ZlKGJ1ZmZlciksIFdURk1vdmUoc2FtcGxl
ciksIFdURk1vdmUodGV4dHVyZSksIFdURk1vdmUoc3RvcmFnZVRleHR1cmUpLCBXVEZNb3ZlKGV4
dGVybmFsVGV4dHVyZSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKaW5kZXggYjgzMGE1OTE0ODk2
ZTVkZjcyNTJmZjRkMGM2MzIwNWM1OTdkZGMxYS4uN2I1NGEyNzAyYmRlN2RhZmQ4OWZkMDllZDFh
NDcxMGU1N2QyNzFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVC
dWZmZXJCaW5kaW5nTGF5b3V0LmgiCiAjaW5jbHVkZSAiV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmlu
ZGluZ0xheW91dC5oIgogI2luY2x1ZGUgIldlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmgiCkBA
IC05OSwzICsxMDEsNSBAQCBzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RW50cnkgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZENv
bXBvbmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21w
b25lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNzZiMGJmZDBlNGZlMmMzNjFiNTIwNWRhODBmZTlmYTdi
YTM1NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQmxlbmRDb21wb25lbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQmxlbmRDb21wb25lbnQuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kQ29t
cG9uZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OkJsZW5kQ29tcG9uZW50PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpj
b252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmxlbmRDb21wb25lbnQmIGJsZW5kQ29tcG9uZW50KQor
eworICAgIHJldHVybiB7IHsgYmxlbmRDb21wb25lbnQub3BlcmF0aW9uLCBibGVuZENvbXBvbmVu
dC5zcmNGYWN0b3IsIGJsZW5kQ29tcG9uZW50LmRzdEZhY3RvciB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaAppbmRleCBl
ZWJmOTNlNzRiMmI3MWM1ZDZlZDQ2YTA3NjgxMDc5OGFmY2QwOGZlLi5kMmJiMThjMDE4YmU5ZTFi
ODNmYTU1ZDRlMzk3MzhmNzUwZWU1OWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRDb21wb25lbnQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFs
PgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQmxlbmRGYWN0b3IuaD4KICNp
bmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kT3BlcmF0aW9uLmg+CiAKQEAg
LTY0LDMgKzY3LDUgQEAgc3RydWN0IEJsZW5kQ29tcG9uZW50IHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmI0ZDJlNzlhNDhlMjg3YTY4NzQyZTIzMTkwYWQ3NmE2NzIzOTE3YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmNw
cApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVUJsZW5kU3RhdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmxlbmRTdGF0ZT4gQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJsZW5kU3Rh
dGUmIGJsZW5kU3RhdGUpCit7CisgICAgYXV0byBjb2xvciA9IGNvbnZlcnRGcm9tQmFja2luZyhi
bGVuZFN0YXRlLmNvbG9yKTsKKyAgICBpZiAoIWNvbG9yKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgYXV0byBhbHBoYSA9IGNvbnZlcnRGcm9tQmFja2luZyhibGVuZFN0YXRl
LmFscGhhKTsKKyAgICBpZiAoIWFscGhhKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpjb2xvciksIFdURk1vdmUoKmFscGhhKSB9IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3Rh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVuZFN0YXRlLmgKaW5k
ZXggOWU4NGJhY2U5ZWE5OWIzMDVhMzY5MDYyZWViYTY1OWQ2MjllOGZhOC4uOTczNjBlMjdhMmFm
MmY5NzAzMWI0MDZmYTJkN2NmMDA0MGVmOTY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJsZW5kU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQmxlbmRTdGF0ZS5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUJsZW5k
Q29tcG9uZW50LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKQEAgLTU2LDMgKzU5LDUgQEAgc3RydWN0IEJsZW5kU3RhdGUgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJC
aW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5k
aW5nLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZmJjOWQ5NGE4YmJlMTM4MTI3YTZlYzZlNTlkNTNhYTdkYTA1
YWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmcuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQnVmZmVyQmluZGluZy5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGlu
Zy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpCdWZmZXJCaW5kaW5nPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0
RnJvbUJhY2tpbmcoY29uc3QgQnVmZmVyQmluZGluZyYgYnVmZmVyQmluZGluZykKK3sKKyAgICBh
dXRvKiBidWZmZXIgPSBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmcoYnVmZmVyQmluZGluZy5idWZm
ZXIpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHsgeyAqYnVmZmVyLCBidWZmZXJCaW5kaW5nLm9mZnNldCwgYnVmZmVyQmluZGlu
Zy5zaXplIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyQmluZGluZy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmcuaAppbmRleCAzMTZiNDE2OGExZDljNTEyMjg0ZGEzZWY2YTYyMGEyNzM3
ODU4YjBmLi5hNWIwYTFlMTYxOTA5NmU4ZjM3ZGFiYzZmOGVhOGZmMWQxY2ExMDg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmgKQEAg
LTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CkBAIC02
NiwzICs2OCw1IEBAIHN0cnVjdCBCdWZmZXJCaW5kaW5nIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xh
eW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODY4YzM0N2E2YTk5NDEwMTZmODE1YzY4MDY2YmE5MGY0OGFh
ZTNmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJ1ZmZlckJpbmRpbmdMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dD4gQ29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckJpbmRpbmdM
YXlvdXQmIGJ1ZmZlckJpbmRpbmdMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyBidWZmZXJCaW5k
aW5nTGF5b3V0LnR5cGUsIGJ1ZmZlckJpbmRpbmdMYXlvdXQuaGFzRHluYW1pY09mZnNldCwgYnVm
ZmVyQmluZGluZ0xheW91dC5taW5CaW5kaW5nU2l6ZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmgKaW5k
ZXggZjlkMTEwZTRiMGJiZTY1YjNlZjVhMjZkZGYxY2UzMmQ0NGJkZjJlNS4uYTA4OGYzMjI4ODEw
YzcyNzM0YjBhYWFiYzExMmZjYzA1OGQwMGZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyQmluZGluZ0xheW91dC5oCkBAIC0yNSw2ICsy
NSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZm
ZXJCaW5kaW5nVHlwZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogCkBAIC02NCwzICs2Nyw1IEBAIHN0cnVjdCBCdWZmZXJCaW5kaW5nTGF5
b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ1NjY2YWE5ODlkNjNi
YjE5OGNmYWIxMTlhODFiOGJhMjhiODJlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUJ1
ZmZlckRlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6
V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvcj4g
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZl
ckRlc2NyaXB0b3ImIGJ1ZmZlckRlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVy
dEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oYnVm
ZmVyRGVzY3JpcHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGJ1ZmZlckRlc2NyaXB0b3Iu
c2l6ZSwgYnVmZmVyRGVzY3JpcHRvci51c2FnZSwgYnVmZmVyRGVzY3JpcHRvci5tYXBwZWRBdENy
ZWF0aW9uIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQnVmZmVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUJ1ZmZlckRlc2NyaXB0b3IuaAppbmRleCA5YzUzNDRhMjRiZjBkODlkNjFmNDhkMTFmNmY1
Nzk0NWE4ZjAxYzNiLi5kY2E1NmUxZWE3MjdhMDk4Nzc2YTRjMmZjOTdiMmNiMmJkN2ZkOTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQnVmZmVyRGVzY3Jp
cHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNj
cmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIK
KyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJ1ZmZlclVzYWdlLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRl
Z3JhbFR5cGVzLmg+CiAKQEAgLTcxLDMgKzc0LDUgQEAgc3RydWN0IEJ1ZmZlckRlc2NyaXB0b3Ig
OiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNjY2N2RhYzQ1NmRmNzJmZWJkMDJjZGViYzAxMzMxMWI2ZmExYWU1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNh
bnZhc0NvbmZpZ3VyYXRpb24uY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21C
YWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQ2Fu
dmFzQ29uZmlndXJhdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0aW9uPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ2FudmFzQ29uZmlndXJhdGlv
biYgY2FudmFzQ29uZmlndXJhdGlvbikKK3sKKyAgICBhdXRvKiBkZXZpY2UgPSBjb252ZXJ0RGV2
aWNlRnJvbUJhY2tpbmcoY2FudmFzQ29uZmlndXJhdGlvbi5kZXZpY2UpOworICAgIGlmICghZGV2
aWNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6RXh0ZW50M0Q+IHNpemU7CisgICAgaWYgKGNhbnZhc0NvbmZpZ3VyYXRpb24u
c2l6ZSkgeworICAgICAgICBzaXplID0gY29udmVydEZyb21CYWNraW5nKCpjYW52YXNDb25maWd1
cmF0aW9uLnNpemUpOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiB7IHsgKmRldmljZSwgY2FudmFzQ29uZmln
dXJhdGlvbi5mb3JtYXQsIGNhbnZhc0NvbmZpZ3VyYXRpb24udXNhZ2UsIGNhbnZhc0NvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZSwgY2FudmFzQ29uZmlndXJhdGlvbi5jb21wb3NpdGluZ0FscGhhTW9k
ZSwgV1RGTW92ZShzaXplKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmgKaW5kZXggODRiNGIwOTc1YThk
NzE5NDk0ODg2NWFhZTcxN2VlY2UxODYwYjQ5Yy4uOTY0YTliNTQxMmVjOTY5NTMyMTg5ODYwYWZi
MzgwMzVjZTJkODdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVRXh0
ZW50M0QuaCIKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8Y3N0ZGlu
dD4KQEAgLTk1LDMgKzk3LDUgQEAgc3RydWN0IENhbnZhc0NvbmZpZ3VyYXRpb24gewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIxYTcxMTk3OGFjZmUzNTFiZGJjMjg0MWQzZTgzZWYwM2I3M2ZmOWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuY3BwCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR1BVQ29sb3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUNvbG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisK
K3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yRGljdD4gQ29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9yRGljdCYgY29sb3JEaWN0KQor
eworICAgIHJldHVybiB7IHsgY29sb3JEaWN0LnIsIGNvbG9yRGljdC5nLCBjb2xvckRpY3QuYiwg
Y29sb3JEaWN0LmEgfSB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xvcj4g
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9y
JiBjb2xvcikKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihjb2xvciwgW10gKGNvbnN0IFZl
Y3Rvcjxkb3VibGU+JiB2ZWN0b3IpIC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9y
PiB7CisgICAgICAgIHJldHVybiB7IHsgdmVjdG9yIH0gfTsKKyAgICB9LCBbdGhpc10gKGNvbnN0
IENvbG9yRGljdCYgY29sb3JEaWN0KSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb2xv
cj4geworICAgICAgICBhdXRvIGNvbG9yID0gY29udmVydEZyb21CYWNraW5nKGNvbG9yRGljdCk7
CisgICAgICAgIGlmICghY29sb3IpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmNvbG9yKSB9IH07CisgICAgfSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3IuaAppbmRleCA0ZTBmNDM5ZGZmNWJh
OGEyNDYxNWIwYjM3OGQxMTQxYTg1OGE3OTgxLi4zYzU5M2YwZDM4NDJhY2VkM2RhMDgzMTUyZDQ2
M2M4NzcxMmYzMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3Iu
aApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzQs
MyArNzcsNSBAQCBzdHJ1Y3QgQ29sb3JEaWN0IHsKIHVzaW5nIENvbG9yID0gc3RkOjp2YXJpYW50
PFZlY3Rvcjxkb3VibGU+LCBDb2xvckRpY3Q+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbG9yVGFyZ2V0U3RhdGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzOWNmYmMxZGIwOGVmNzcwZDg0Y2U1MmJlYWMxYTAyM2RhM2ZmNWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRTdGF0
ZS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVDb2xvclRhcmdldFN0YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdldFN0YXRlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbG9yVGFyZ2V0U3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBDb2xvclRhcmdldFN0YXRlJiBjb2xvclRhcmdldFN0YXRlKQoreworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJsZW5kU3RhdGU+IGJsZW5kOworICAgIGlmIChj
b2xvclRhcmdldFN0YXRlLmJsZW5kKSB7CisgICAgICAgIGJsZW5kID0gY29udmVydEZyb21CYWNr
aW5nKCpjb2xvclRhcmdldFN0YXRlLmJsZW5kKTsKKyAgICAgICAgaWYgKCFibGVuZCkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBjb2xv
clRhcmdldFN0YXRlLmZvcm1hdCwgV1RGTW92ZShibGVuZCksIGNvbG9yVGFyZ2V0U3RhdGUud3Jp
dGVNYXNrIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbG9yVGFyZ2V0U3RhdGUuaAppbmRleCAyZTMwM2M0N2UwNTIxYTEyOTQ0MTRiMDY5Y2Zl
MjM3OTJkM2U2Zjk1Li5mYjQ0ZDZlMGQ5YmNlMGVmYThkMWU2YmZkNTdlOWYwNGVlZmVmYjZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29sb3JUYXJnZXRT
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvclRhcmdl
dFN0YXRlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVCbGVuZFN0YXRlLmgiCiAjaW5jbHVkZSA8
b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvcldyaXRl
Lmg+CkBAIC02NywzICs2OSw1IEBAIHN0cnVjdCBDb2xvclRhcmdldFN0YXRlIHsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MmI5OThlZGRlM2U0YWJj
Yzk4YTBlNzIxNGVkMmNkZTAxZWM4YjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKGNvbnN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJiBjb21tYW5kQnVm
ZmVyRGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3Rh
dGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihjb21tYW5kQnVmZmVyRGVzY3Jp
cHRvcikpOworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
LmgKaW5kZXggYWZiNjA4M2MwNTQ1MWYyNTNjN2QyYjVjYjZhNGJlYjVlZWYyYzNiYS4uZGYxNzNj
NDhmZTNkY2FkZDE0YWU4N2JlYWQyOWJiYTgyZGZjN2RiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
LmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNs
dWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNDcsMyAr
NTAsNSBAQCBzdHJ1Y3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVz
Y3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDkyNGQ0MTdhNTIxMWQyOTgwYWVlMjc1MDliZTZiNWY1MmM4NDI0NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kRW5j
b2RlckRlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVD
b21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsK
Kworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiBD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yJiBjb21tYW5kRW5jb2RlckRlc2NyaXB0b3IpCit7CisgICAgYXV0
byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2Ny
aXB0b3JCYXNlJj4oY29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpi
YXNlKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCmluZGV4IDMzYmViMDllNmQ1ZTA0
NzE2ZmQzYjhkYzZhYjUwYzhlNzg2MmE1ZjYuLjE4ZTRhMGYxMDMzODFmZDRlYzYwMmMzZjU5NDM3
Yzc3YTIwNTc1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNDcsMyArNTAsNSBAQCBzdHJ1Y3QgQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29t
cGlsYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21waWxhdGlvbk1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NGQ4OGU5MWM0ODY5MzhkZGRkNGRl
ODVhZjhhMTRjNGJiNTYwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXBpbGF0
aW9uTWVzc2FnZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2Vi
R1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiBDb252ZXJ0
RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcGlsYXRpb25N
ZXNzYWdlJiBjb21waWxhdGlvbk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFBBTDo6V2ViR1BVOjpD
b21waWxhdGlvbk1lc3NhZ2U6OmNyZWF0ZShjb21waWxhdGlvbk1lc3NhZ2UubWVzc2FnZSwgY29t
cGlsYXRpb25NZXNzYWdlLnR5cGUsIGNvbXBpbGF0aW9uTWVzc2FnZS5saW5lTnVtLCBjb21waWxh
dGlvbk1lc3NhZ2UubGluZVBvcywgY29tcGlsYXRpb25NZXNzYWdlLm9mZnNldCwgY29tcGlsYXRp
b25NZXNzYWdlLmxlbmd0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5oCmluZGV4IDQ4ZWE0ZGI1NGFjMjI4YWI4
N2MzYjk4ZjQ1ZGIzODcxZWZhMGU5MjYuLjIzNWJjYzVhNTI2N2VmYTU4MjMwYzUwYTgxNGIzYWM1
YTBhZGEzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21waWxhdGlvbk1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVQ29tcGlsYXRpb25NZXNzYWdlLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBp
bGF0aW9uTWVzc2FnZVR5cGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtODYsMyArODksNSBAQCBzdHJ1Y3QgQ29tcGlsYXRpb25NZXNzYWdlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBh
c3NEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MjlkYjVmNDQxNzgxYjBjOGUyNzlm
OGQyOTk1NTExZmI4MzI5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1
dGVQYXNzRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNz
RGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5n
KGNvbnN0IENvbXB1dGVQYXNzRGVzY3JpcHRvciYgY29tcHV0ZVBhc3NEZXNjcmlwdG9yKQorewor
ICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KGNvbXB1dGVQYXNzRGVzY3JpcHRvcikpOworICAgIGlmICghYmFz
ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gdGltZXN0YW1wV3Jp
dGVzID0gY29udmVydEZyb21CYWNraW5nKGNvbXB1dGVQYXNzRGVzY3JpcHRvci50aW1lc3RhbXBX
cml0ZXMpOworICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSgqdGltZXN0
YW1wV3JpdGVzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzRGVzY3JpcHRvci5oCmluZGV4IDdiYjNlMzE4ZWJlYzMz
ZWM4Zjc4YTgzZjE2ZDc1NWMzZDIxNDFjZDkuLjU2ODliZTNjYjEyMTEzNmEwNTk1MDY5ZTgxYTA5
NDAzYTRiNzQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BV
Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgewogCkBAIC01NiwzICs1OSw1IEBAIHN0cnVjdCBDb21wdXRlUGFzc0Rlc2NyaXB0b3Ig
OiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdy
aXRlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZjkyOTU4MmRlM2Q4ZWQyYzJjODljOTNj
NjYyNGVmMTYzZGYzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29t
cHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlJiBjb21wdXRl
UGFzc1RpbWVzdGFtcFdyaXRlKQoreworICAgIGF1dG8qIHF1ZXJ5U2V0ID0gY29udmVydFF1ZXJ5
U2V0RnJvbUJhY2tpbmcoY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZS5xdWVyeVNldCk7CisgICAg
aWYgKCFxdWVyeVNldCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVy
biB7IHsgKnF1ZXJ5U2V0LCBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlLnF1ZXJ5SW5kZXgsIGNv
bXB1dGVQYXNzVGltZXN0YW1wV3JpdGUubG9jYXRpb24gfSB9OworfQorCitzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcz4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQYXNzVGltZXN0YW1w
V3JpdGVzJiBjb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcykKK3sKKyAgICBWZWN0b3I8UEFMOjpX
ZWJHUFU6OkNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGU+IHRpbWVzdGFtcFdyaXRlczsKKyAgICB0
aW1lc3RhbXBXcml0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb21wdXRlUGFzc1RpbWVzdGFt
cFdyaXRlcy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgYmFja2luZ1RpbWVzdGFtcFdy
aXRlIDogY29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMpIHsKKyAgICAgICAgYXV0byB0aW1lc3Rh
bXBXcml0ZSA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nVGltZXN0YW1wV3JpdGUpOworICAg
ICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgdGltZXN0YW1wV3JpdGVzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCp0aW1l
c3RhbXBXcml0ZSkpOworICAgIH0KKyAgICByZXR1cm4gdGltZXN0YW1wV3JpdGVzOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc1Rp
bWVzdGFtcFdyaXRlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1
dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKaW5kZXggNGYyMmQ5YWFiMWRiNjI4YmYzMTM2MjJjODQ5
OGM2YTg0YWMyN2QzZi4uZGU3ZDQwMjY2MTQ2ZDAwOWM2NjMyNTg1OTIzZDMzY2MwYjRmYThiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQYXNz
VGltZXN0YW1wV3JpdGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oPgogI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KQEAgLTY5LDMgKzcyLDUgQEAgc3RydWN0IENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUg
ewogdXNpbmcgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgPSBWZWN0b3I8Q29tcHV0ZVBhc3NU
aW1lc3RhbXBXcml0ZT47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzVkZWFlMjViNWFmYjUyMGQ0MGIwODNiMmYzMGZhODJiMDQwYjZjNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlw
ZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3Iu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
cj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IENv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IpCit7Cisg
ICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IFBpcGVs
aW5lRGVzY3JpcHRvckJhc2UmPihjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKSk7CisgICAgaWYg
KCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBjb21wdXRl
ID0gY29udmVydEZyb21CYWNraW5nKGNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY29tcHV0ZSk7
CisgICAgaWYgKCFjb21wdXRlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
cmV0dXJuIHsgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgeyBXVEZNb3Zl
KCpiYXNlKSwgV1RGTW92ZSgqY29tcHV0ZSkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ci5oCmluZGV4IGNkZDY1ZDA5NWY2OGU1ZWNiZWI5ODdkM2FiMzNiMjhhMmNiNjQ2MTYuLmUxYjE2
NjgzNzRlMWQzOTQwNDdmN2NjZGI0OTE1MTNlMWU5OGE4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3IuaApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgi
CiAjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCIKKyNpbmNsdWRlIDxvcHRpb25h
bD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1
Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURlc2NyaXB0b3JC
YXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaAppbmRleCA1OTU0NWQ2
MDQ2OWFiZWUyNTMwMmY3YzkzNDdiODQwMjUyN2NjYjEyLi42MDA1Yzg4ZjgxYWUyOWFlMWQwMjEz
ZDRiYTkzYjU0ZDFlNWFjNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgKQEAgLTI3LDYy
ICsyNywyNjUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIldlYkdQ
VUNvbG9yLmgiCisjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCIK
KyNpbmNsdWRlICJXZWJHUFVFcnJvci5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCiAj
aW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkdQVU9yaWdpbjJELmgi
CisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luM0QuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGVzLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVDb2xvci5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaD4KKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yLmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVFeHRlbnQzRC5oPgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T3JpZ2luMkQuaD4KKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjNE
Lmg+CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0
YW1wV3JpdGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFBB
TDo6V2ViR1BVIHsKIAogY2xhc3MgQWRhcHRlcjsKIGNsYXNzIEJpbmRHcm91cDsKK3N0cnVjdCBC
aW5kR3JvdXBEZXNjcmlwdG9yOworc3RydWN0IEJpbmRHcm91cEVudHJ5OwogY2xhc3MgQmluZEdy
b3VwTGF5b3V0Oworc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgQmlu
ZEdyb3VwTGF5b3V0RW50cnk7CitzdHJ1Y3QgQmxlbmRDb21wb25lbnQ7CitzdHJ1Y3QgQmxlbmRT
dGF0ZTsKIGNsYXNzIEJ1ZmZlcjsKK3N0cnVjdCBCdWZmZXJCaW5kaW5nOworc3RydWN0IEJ1ZmZl
ckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDYW52YXND
b25maWd1cmF0aW9uOworc3RydWN0IENvbG9yVGFyZ2V0U3RhdGU7CiBjbGFzcyBDb21tYW5kQnVm
ZmVyOworc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yOwogY2xhc3MgQ29tbWFuZEVuY29k
ZXI7CitzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yOworY2xhc3MgQ29tcGlsYXRpb25N
ZXNzYWdlOworc3RydWN0IENvbXB1dGVQYXNzRGVzY3JpcHRvcjsKIGNsYXNzIENvbXB1dGVQYXNz
RW5jb2RlcjsKIGNsYXNzIENvbXB1dGVQaXBlbGluZTsKK3N0cnVjdCBDb21wdXRlUGlwZWxpbmVE
ZXNjcmlwdG9yOworc3RydWN0IERlcHRoU3RlbmNpbFN0YXRlOwogY2xhc3MgRGV2aWNlOworc3Ry
dWN0IERldmljZURlc2NyaXB0b3I7CitzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dDsKK3N0cnVjdCBFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yOworY2xhc3MgRXh0ZXJuYWxUZXh0
dXJlOworc3RydWN0IEZyYWdtZW50U3RhdGU7CiBjbGFzcyBHUFU7CitzdHJ1Y3QgSWRlbnRpZmll
cjsKK3N0cnVjdCBJbWFnZUNvcHlCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5RXh0ZXJuYWxJbWFn
ZTsKK3N0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOworc3RydWN0IEltYWdlQ29weVRleHR1cmVUYWdn
ZWQ7CitzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0Oworc3RydWN0IE11bHRpc2FtcGxlU3RhdGU7Citz
dHJ1Y3QgT2JqZWN0RGVzY3JpcHRvckJhc2U7CitjbGFzcyBPdXRPZk1lbW9yeUVycm9yOworc3Ry
dWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CiBjbGFzcyBQaXBlbGluZUxheW91dDsKK3N0cnVj
dCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUHJpbWl0aXZlU3RhdGU7CitzdHJ1
Y3QgUHJvZ3JhbW1hYmxlU3RhZ2U7CiBjbGFzcyBRdWVyeVNldDsKK3N0cnVjdCBRdWVyeVNldERl
c2NyaXB0b3I7CiBjbGFzcyBRdWV1ZTsKLWNsYXNzIFJlbmRlckJ1bmRsZUVuY29kZXI7CiBjbGFz
cyBSZW5kZXJCdW5kbGU7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvcjsKK2NsYXNzIFJl
bmRlckJ1bmRsZUVuY29kZXI7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I7
CitzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVw
dGhTdGVuY2lsQXR0YWNobWVudDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvcjsKIGNsYXNz
IFJlbmRlclBhc3NFbmNvZGVyOworc3RydWN0IFJlbmRlclBhc3NMYXlvdXQ7CiBjbGFzcyBSZW5k
ZXJQaXBlbGluZTsKK3N0cnVjdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I7CitzdHJ1Y3QgUmVx
dWVzdEFkYXB0ZXJPcHRpb25zOwogY2xhc3MgU2FtcGxlcjsKK3N0cnVjdCBTYW1wbGVyQmluZGlu
Z0xheW91dDsKK3N0cnVjdCBTYW1wbGVyRGVzY3JpcHRvcjsKIGNsYXNzIFNoYWRlck1vZHVsZTsK
K3N0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yOworc3RydWN0IFN0ZW5jaWxGYWNlU3RhdGU7
CitzdHJ1Y3QgU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0OworY2xhc3MgU3VwcG9ydGVkRmVh
dHVyZXM7CitjbGFzcyBTdXBwb3J0ZWRMaW1pdHM7CiBjbGFzcyBUZXh0dXJlOworc3RydWN0IFRl
eHR1cmVCaW5kaW5nTGF5b3V0Oworc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yOwogY2xhc3MgVGV4
dHVyZVZpZXc7CitzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yOworY2xhc3MgVmFsaWRhdGlv
bkVycm9yOworc3RydWN0IFZlcnRleEF0dHJpYnV0ZTsKK3N0cnVjdCBWZXJ0ZXhCdWZmZXJMYXlv
dXQ7CitzdHJ1Y3QgVmVydGV4U3RhdGU7CiAKIH0gLy8gbmFtZXNwYWNlIFBBTDo6V2ViR1BVCiAK
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKK3N0cnVjdCBCaW5kR3JvdXBEZXNjcmlwdG9y
Oworc3RydWN0IEJpbmRHcm91cEVudHJ5Oworc3RydWN0IEJpbmRHcm91cExheW91dERlc2NyaXB0
b3I7CitzdHJ1Y3QgQmluZEdyb3VwTGF5b3V0RW50cnk7CitzdHJ1Y3QgQmxlbmRDb21wb25lbnQ7
CitzdHJ1Y3QgQmxlbmRTdGF0ZTsKK3N0cnVjdCBCdWZmZXJCaW5kaW5nOworc3RydWN0IEJ1ZmZl
ckJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvcjsKK3N0cnVjdCBDYW52YXND
b25maWd1cmF0aW9uOworc3RydWN0IENvbG9yVGFyZ2V0U3RhdGU7CitzdHJ1Y3QgQ29tbWFuZEJ1
ZmZlckRlc2NyaXB0b3I7CitzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yOworc3RydWN0
IENvbXBpbGF0aW9uTWVzc2FnZTsKK3N0cnVjdCBDb21wdXRlUGFzc0Rlc2NyaXB0b3I7CitzdHJ1
Y3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcjsKK3N0cnVjdCBEZXB0aFN0ZW5jaWxTdGF0ZTsK
K3N0cnVjdCBEZXZpY2VEZXNjcmlwdG9yOworc3RydWN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdM
YXlvdXQ7CitzdHJ1Y3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcjsKK3N0cnVjdCBGcmFnbWVu
dFN0YXRlOworc3RydWN0IElkZW50aWZpZXI7CitzdHJ1Y3QgSW1hZ2VDb3B5QnVmZmVyOworc3Ry
dWN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2U7CitzdHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsKK3N0
cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOworc3RydWN0IEltYWdlRGF0YUxheW91dDsKK3N0
cnVjdCBNdWx0aXNhbXBsZVN0YXRlOworc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlOworc3Ry
dWN0IE91dE9mTWVtb3J5RXJyb3I7CitzdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKK3N0
cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CitzdHJ1Y3QgUHJpbWl0aXZlU3RhdGU7Citz
dHJ1Y3QgUHJvZ3JhbW1hYmxlU3RhZ2U7CitzdHJ1Y3QgUXVlcnlTZXREZXNjcmlwdG9yOworc3Ry
dWN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRW5jb2RlckRl
c2NyaXB0b3I7CitzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudDsKK3N0cnVjdCBSZW5k
ZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudDsKK3N0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRv
cjsKK3N0cnVjdCBSZW5kZXJQYXNzTGF5b3V0Oworc3RydWN0IFJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvcjsKK3N0cnVjdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnM7CitzdHJ1Y3QgU2FtcGxlckJpbmRp
bmdMYXlvdXQ7CitzdHJ1Y3QgU2FtcGxlckRlc2NyaXB0b3I7CitzdHJ1Y3QgU2hhZGVyTW9kdWxl
RGVzY3JpcHRvcjsKK3N0cnVjdCBTdGVuY2lsRmFjZVN0YXRlOworc3RydWN0IFN0b3JhZ2VUZXh0
dXJlQmluZGluZ0xheW91dDsKK3N0cnVjdCBTdXBwb3J0ZWRGZWF0dXJlczsKK3N0cnVjdCBTdXBw
b3J0ZWRMaW1pdHM7CitzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQ7CitzdHJ1Y3QgVGV4dHVy
ZURlc2NyaXB0b3I7CitzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlwdG9yOworc3RydWN0IFZhbGlk
YXRpb25FcnJvcjsKK3N0cnVjdCBWZXJ0ZXhBdHRyaWJ1dGU7CitzdHJ1Y3QgVmVydGV4QnVmZmVy
TGF5b3V0Oworc3RydWN0IFZlcnRleFN0YXRlOworCiBjbGFzcyBDb252ZXJ0RnJvbUJhY2tpbmdD
b250ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8Q29udmVydEZyb21CYWNraW5nQ29udGV4dD4gewog
cHVibGljOgogICAgIHZpcnR1YWwgfkNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQoKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpBZGFwdGVyKiBjb252ZXJ0QWRh
cHRlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0
IFBBTDo6V2ViR1BVOjpCaW5kR3JvdXAqIGNvbnZlcnRCaW5kR3JvdXBGcm9tQmFja2luZyhXZWJH
UFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6QmluZEdy
b3VwTGF5b3V0KiBjb252ZXJ0QmluZEdyb3VwTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciogY29udmVy
dEJ1ZmZlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNv
bnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kQnVmZmVyKiBjb252ZXJ0Q29tbWFuZEJ1ZmZlckZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2Vi
R1BVOjpDb21tYW5kRW5jb2RlciogY29udmVydENvbW1hbmRFbmNvZGVyRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1
dGVQYXNzRW5jb2RlciogY29udmVydENvbXB1dGVQYXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQ
VUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRl
UGlwZWxpbmUqIGNvbnZlcnRDb21wdXRlUGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlKiBjb252ZXJ0
RGV2aWNlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29u
c3QgUEFMOjpXZWJHUFU6OkdQVSogY29udmVydEdQVUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZp
ZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dCog
Y29udmVydFBpcGVsaW5lTGF5b3V0RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwot
ICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlF1ZXJ5U2V0KiBjb252ZXJ0UXVlcnlTZXRG
cm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBQQUw6
OldlYkdQVTo6UXVldWUqIGNvbnZlcnRRdWV1ZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGVFbmNvZGVy
KiBjb252ZXJ0UmVuZGVyQnVuZGxlRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIp
ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJCdW5kbGUqIGNvbnZl
cnRSZW5kZXJCdW5kbGVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmly
dHVhbCBjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0VuY29kZXIqIGNvbnZlcnRSZW5kZXJQ
YXNzRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZSogY29udmVydFJlbmRlclBpcGVsaW5l
RnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFM
OjpXZWJHUFU6OlNhbXBsZXIqIGNvbnZlcnRTYW1wbGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRp
ZmllcikgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZSog
Y29udmVydFNoYWRlck1vZHVsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAg
ICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlKiBjb252ZXJ0VGV4dHVyZUZyb21C
YWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFBBTDo6V2Vi
R1BVOjpUZXh0dXJlVmlldyogY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcoV2ViR1BVSWRl
bnRpZmllcikgPSAwOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cERl
c2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBEZXNjcmlwdG9yJik7
CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwRW50cnk+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBFbnRyeSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkJpbmRHcm91cExheW91dERlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RW50cnk+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBC
aW5kR3JvdXBMYXlvdXRFbnRyeSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJs
ZW5kQ29tcG9uZW50PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQmxlbmRDb21wb25lbnQmKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpCbGVuZFN0YXRlPiBjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgQmxlbmRTdGF0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkJ1ZmZlckJpbmRpbmc+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCdWZmZXJCaW5kaW5nJik7
CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QnVmZmVyQmluZGluZ0xheW91dD4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IEJ1ZmZlckJpbmRpbmdMYXlvdXQmKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgQnVmZmVyRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkNhbnZhc0NvbmZpZ3VyYXRpb24+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBDYW52YXNDb25m
aWd1cmF0aW9uJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29sb3I+IGNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBDb2xvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkNvbG9yRGljdD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENvbG9yRGljdCYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbG9yVGFyZ2V0U3RhdGU+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBDb2xvclRhcmdldFN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IENv
bW1hbmRFbmNvZGVyRGVzY3JpcHRvciYpOworICAgIFJlZlB0cjxQQUw6OldlYkdQVTo6Q29tcGls
YXRpb25NZXNzYWdlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcGlsYXRpb25NZXNzYWdl
Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NEZXNjcmlwdG9y
PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgQ29tcHV0ZVBhc3NEZXNjcmlwdG9yJik7CisgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZT4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGUmKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcz4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzJik7CisgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpEZXB0aFN0ZW5jaWxTdGF0ZT4gY29udmVydEZyb21C
YWNraW5nKGNvbnN0IERlcHRoU3RlbmNpbFN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IERldmlj
ZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4gY29u
dmVydEZyb21CYWNraW5nKGNvbnN0IEVycm9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6RXh0ZW50M0Q+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlbnQzRCYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNERGljdD4gY29udmVydEZyb21CYWNr
aW5nKGNvbnN0IEV4dGVudDNERGljdCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OkV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0
IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpGcmFnbWVudFN0YXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRnJhZ21lbnRTdGF0
ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OklkZW50aWZpZXI+IGNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBJZGVudGlmaWVyJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6SW1hZ2VDb3B5QnVmZmVyPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5
QnVmZmVyJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VDb3B5RXh0ZXJu
YWxJbWFnZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29weUV4dGVybmFsSW1hZ2Um
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFnZUNvcHlUZXh0dXJlPiBjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VDb3B5VGV4dHVyZSYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ+IGNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VE
YXRhTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6TXVsdGlzYW1wbGVT
dGF0ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IE11bHRpc2FtcGxlU3RhdGUmKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gY29udmVydEZy
b21CYWNraW5nKGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJik7CisgICAgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6T3JpZ2luMkQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4y
RCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJERGljdD4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IE9yaWdpbjJERGljdCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6Ok9yaWdpbjNEPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luM0QmKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRERpY3Q+IGNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBPcmlnaW4zRERpY3QmKTsKKyAgICBSZWZQdHI8UEFMOjpXZWJHUFU6Ok91
dE9mTWVtb3J5RXJyb3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPdXRPZk1lbW9yeUVycm9y
Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZT4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2UmKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IGNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3ImKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZT4gY29udmVydEZyb21CYWNr
aW5nKGNvbnN0IFByaW1pdGl2ZVN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6UHJvZ3JhbW1hYmxlU3RhZ2U+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBQcm9ncmFtbWFi
bGVTdGFnZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0RGVzY3Jp
cHRvcj4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFF1ZXJ5U2V0RGVzY3JpcHRvciYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0b3I+IGNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJCdW5kbGVEZXNjcmlwdG9yJik7CisgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I+IGNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvciYpOworICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+IGNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50Jik7CisgICAg
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1l
bnQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNo
bWVudCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NEZXNjcmlw
dG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3ImKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzTGF5b3V0PiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0xheW91dCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT4gY29udmVydEZyb21CYWNraW5nKGNv
bnN0IFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXM+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3Qg
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVxdWVz
dEFkYXB0ZXJPcHRpb25zJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2FtcGxl
ckJpbmRpbmdMYXlvdXQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTYW1wbGVyQmluZGluZ0xh
eW91dCYpOworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9y
PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2FtcGxlckRlc2NyaXB0b3ImKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yPiBjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYpOworICAgIHN0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6OlN0ZW5jaWxGYWNlU3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25z
dCBTdGVuY2lsRmFjZVN0YXRlJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U3Rv
cmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3RvcmFn
ZVRleHR1cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpTdXBwb3J0
ZWRGZWF0dXJlcz4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFN1cHBvcnRlZEZlYXR1cmVzJik7
CisgICAgUmVmUHRyPFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM+IGNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBTdXBwb3J0ZWRMaW1pdHMmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpUZXh0dXJlQmluZGluZ0xheW91dD4gY29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1
cmVCaW5kaW5nTGF5b3V0Jik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VGV4dHVy
ZURlc2NyaXB0b3I+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYp
OworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4g
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVWaWV3RGVzY3JpcHRvciYpOworICAgIFJl
ZlB0cjxQQUw6OldlYkdQVTo6VmFsaWRhdGlvbkVycm9yPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29u
c3QgVmFsaWRhdGlvbkVycm9yJik7CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVy
dGV4QXR0cmlidXRlPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4QXR0cmlidXRlJik7
CisgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVydGV4QnVmZmVyTGF5b3V0PiBjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4QnVmZmVyTGF5b3V0Jik7CisgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6VmVydGV4U3RhdGU+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBW
ZXJ0ZXhTdGF0ZSYpOworCisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6QWRhcHRlciogY29udmVy
dEFkYXB0ZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6QmluZEdyb3VwKiBjb252ZXJ0QmluZEdyb3VwRnJvbUJhY2tpbmcoV2ViR1BV
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91
dCogY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0g
MDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpCdWZmZXIqIGNvbnZlcnRCdWZmZXJGcm9tQmFj
a2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6Q29t
bWFuZEJ1ZmZlciogY29udmVydENvbW1hbmRCdWZmZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlm
aWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXIqIGNvbnZl
cnRDb21tYW5kRW5jb2RlckZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAgICB2
aXJ0dWFsIFBBTDo6V2ViR1BVOjpDb21wdXRlUGFzc0VuY29kZXIqIGNvbnZlcnRDb21wdXRlUGFz
c0VuY29kZXJGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lKiBjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRnJvbUJh
Y2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OkRl
dmljZSogY29udmVydERldmljZUZyb21CYWNraW5nKFdlYkdQVUlkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1cmUqIGNvbnZlcnRFeHRlcm5hbFRl
eHR1cmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6
OldlYkdQVTo6R1BVKiBjb252ZXJ0R1BVRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlBpcGVsaW5lTGF5b3V0KiBjb252ZXJ0UGlwZWxp
bmVMYXlvdXRGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6UXVlcnlTZXQqIGNvbnZlcnRRdWVyeVNldEZyb21CYWNraW5nKFdlYkdQVUlk
ZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpRdWV1ZSogY29udmVydFF1
ZXVlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpX
ZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXIqIGNvbnZlcnRSZW5kZXJCdW5kbGVFbmNvZGVyRnJv
bUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6
OlJlbmRlckJ1bmRsZSogY29udmVydFJlbmRlckJ1bmRsZUZyb21CYWNraW5nKFdlYkdQVUlkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzRW5jb2Rlciog
Y29udmVydFJlbmRlclBhc3NFbmNvZGVyRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAw
OworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lKiBjb252ZXJ0UmVuZGVy
UGlwZWxpbmVGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQ
QUw6OldlYkdQVTo6U2FtcGxlciogY29udmVydFNhbXBsZXJGcm9tQmFja2luZyhXZWJHUFVJZGVu
dGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlKiBjb252
ZXJ0U2hhZGVyTW9kdWxlRnJvbUJhY2tpbmcoV2ViR1BVSWRlbnRpZmllcikgPSAwOworICAgIHZp
cnR1YWwgUEFMOjpXZWJHUFU6OlRleHR1cmUqIGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoV2Vi
R1BVSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgUEFMOjpXZWJHUFU6OlRleHR1cmVWaWV3
KiBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhXZWJHUFVJZGVudGlmaWVyKSA9IDA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmJjYmIwNmVhMjQwNzQ1YzA5YjRjNjJiYzAwOGVhYjg5ZDQzYzRlMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0
ZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuaD4K
KworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6RGVwdGhTdGVuY2lsU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBEZXB0aFN0ZW5jaWxTdGF0ZSYgZGVwdGhTdGVuY2lsU3RhdGUpCit7
CisgICAgYXV0byBzdGVuY2lsRnJvbnQgPSBjb252ZXJ0RnJvbUJhY2tpbmcoZGVwdGhTdGVuY2ls
U3RhdGUuc3RlbmNpbEZyb250KTsKKyAgICBpZiAoIXN0ZW5jaWxGcm9udCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gc3RlbmNpbEJhY2sgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcoZGVwdGhTdGVuY2lsU3RhdGUuc3RlbmNpbEJhY2spOworICAgIGlmICghc3RlbmNpbEJh
Y2spCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IGRlcHRo
U3RlbmNpbFN0YXRlLmZvcm1hdCwgZGVwdGhTdGVuY2lsU3RhdGUuZGVwdGhXcml0ZUVuYWJsZWQs
IGRlcHRoU3RlbmNpbFN0YXRlLmRlcHRoQ29tcGFyZSwgV1RGTW92ZSgqc3RlbmNpbEZyb250KSwg
V1RGTW92ZSgqc3RlbmNpbEJhY2spLCBkZXB0aFN0ZW5jaWxTdGF0ZS5zdGVuY2lsUmVhZE1hc2ss
IGRlcHRoU3RlbmNpbFN0YXRlLnN0ZW5jaWxXcml0ZU1hc2ssIGRlcHRoU3RlbmNpbFN0YXRlLmRl
cHRoQmlhcywgZGVwdGhTdGVuY2lsU3RhdGUuZGVwdGhCaWFzU2xvcGVTY2FsZSwgZGVwdGhTdGVu
Y2lsU3RhdGUuZGVwdGhCaWFzQ2xhbXAgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKaW5kZXggYTU5N2RmMDk2
MTM2ZGIzNDI4YzJjNjdkNTJlYzk2MWZmYmNmNjNhYS4uZjY1MjQyOTQzNGI5ZjZmMTBlNDgyYTUy
MzlkMjBiNzJjMTg1NjQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVTdGVu
Y2lsRmFjZVN0YXRlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVDb21wYXJlRnVuY3Rpb24uaD4KQEAgLTEyMCwzICsxMjIsNSBAQCBz
dHJ1Y3QgRGVwdGhTdGVuY2lsU3RhdGUgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMGE0ZDZkODZlYWFmZWY3MzgxOGE4MTVlNGM5NTJkYjQ0YWUwZTAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0
b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpEZXZpY2VEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJv
bUJhY2tpbmcoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGV2aWNlRGVzY3JpcHRvcikKK3sKKyAg
ICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0
RGVzY3JpcHRvckJhc2UmPihkZXZpY2VEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFiYXNlKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNl
KSwgZGV2aWNlRGVzY3JpcHRvci5yZXF1aXJlZEZlYXR1cmVzIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAppbmRl
eCA2YTI1MjM2ZGM4OWM2Njk4OTA0NzdlZGRkMWQyMzNhNGIyYjQyNGM0Li42MDZiZGZiNzNmNjM0
ODc4Y2ZkYTNmOWJkYTFhZTNlZTE0ZDU5ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmgKQEAgLTI1LDggKzI1LDExIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1
ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRmVhdHVy
ZU5hbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9LZXlWYWx1
ZVBhaXIuaD4KQEAgLTYxLDMgKzY0LDUgQEAgc3RydWN0IERldmljZURlc2NyaXB0b3IgOiBwdWJs
aWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZjdkYjdkZmY2ZGY2MjZh
NzUwNTlkZThiYzE2MzdjNjNhYzg4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVRXJyb3IuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUVycm9yLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkVycm9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgRXJyb3ImIGVycm9yKQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGVycm9yLCBb
dGhpc10gKGNvbnN0IE91dE9mTWVtb3J5RXJyb3ImIG91dE9mTWVtb3J5RXJyb3IpIC0+IHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gY29u
dmVydEZyb21CYWNraW5nKG91dE9mTWVtb3J5RXJyb3IpOworICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHJlc3Vs
dC5yZWxlYXNlTm9uTnVsbCgpIH07CisgICAgfSwgW3RoaXNdIChjb25zdCBWYWxpZGF0aW9uRXJy
b3ImIHZhbGlkYXRpb25FcnJvcikgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBjb252ZXJ0RnJvbUJhY2tpbmcodmFsaWRhdGlvbkVy
cm9yKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICByZXR1cm4geyByZXN1bHQucmVsZWFzZU5vbk51bGwoKSB9OworICAgIH0p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFcnJv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUVycm9yLmgKaW5kZXggNzJl
ZDJiZGViMjQ3YmMyYTk3NzI4OTlmN2JjMGE1OThkNjY0NTQ4Zi4uYWNmMDFhMTQ0OTk0N2Q4OTkw
M2M3OGM4MTIzYzMwZjEzMmM3NTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUVycm9yLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPdXRPZk1lbW9yeUVycm9yLmgiCiAj
aW5jbHVkZSAiV2ViR1BVVmFsaWRhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KQEAg
LTM0LDMgKzM2LDUgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIHVzaW5nIEVycm9yID0g
c3RkOjp2YXJpYW50PE91dE9mTWVtb3J5RXJyb3IsIFZhbGlkYXRpb25FcnJvcj47CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0Qu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MDM0ODIwNDE5NTM5NDM5M2VmN2Y0MDlhNTNkNjhkODUwNzkzMTdhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVudDNELmNw
cApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFeHRlbnQzRERpY3Q+IENvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBFeHRlbnQzRERp
Y3QmIGV4dGVudDNERGljdCkKK3sKKyAgICByZXR1cm4geyB7IGV4dGVudDNERGljdC53aWR0aCwg
ZXh0ZW50M0REaWN0LmhlaWdodCwgZXh0ZW50M0REaWN0LmRlcHRoT3JBcnJheUxheWVycyB9IH07
Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZW50M0QmIGV4dGVudDNE
KQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGV4dGVudDNELCBbXSAoY29uc3QgVmVjdG9y
PFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6RXh0ZW50M0Q+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0b3IgfSB9
OworICAgIH0sIFt0aGlzXSAoY29uc3QgRXh0ZW50M0REaWN0JiBleHRlbnQzRERpY3QpIC0+IHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkV4dGVudDNEPiB7CisgICAgICAgIGF1dG8gZXh0ZW50
M0QgPSBjb252ZXJ0RnJvbUJhY2tpbmcoZXh0ZW50M0REaWN0KTsKKyAgICAgICAgaWYgKCFleHRl
bnQzRCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqZXh0ZW50M0QpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZW50M0QuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5oCmluZGV4IDE5MzgzNDIwOTQyYjhmMDRmNjRk
YjY2ZjhhYjY1ZmFjNWY1N2I4ODUuLjI4NTI5OWM3MDkxMzI5YWIxZjZmYjhiMzVkOTU3YmM2YWQw
NWY0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRl
bnQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlbnQzRC5o
CkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC02NywzICs3MCw1IEBAIHN0cnVjdCBFeHRlbnQzRERpY3QgewogdXNp
bmcgRXh0ZW50M0QgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29v
cmRpbmF0ZT4sIEV4dGVudDNERGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGlu
Z0xheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M1YjkxYTVhYTZjYzk1ZDc0ZjI3ZWQ5Y2YxMzcxMzZl
MmU5ZGI5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVybmFs
VGV4dHVyZUJpbmRpbmdMYXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQmIGV4
dGVybmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyB9IH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4
dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVF
eHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmgKaW5kZXggMmQ1YzJmZmRkYTg0YTZhNDYyYThk
N2NkNWRkOGE3ZGFjNjcyZjcxMy4uNWFhZDRhZWVkYTU4NGYzYzE0YzlhYzdhYTgzOGU0NmQ2Mjcx
MjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4dGVy
bmFsVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0yNSw2ICsyNSwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
PG9wdGlvbmFsPgorCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdHJ1Y3QgRXh0ZXJu
YWxUZXh0dXJlQmluZGluZ0xheW91dCB7CkBAIC0zOSwzICs0Myw1IEBAIHN0cnVjdCBFeHRlcm5h
bFRleHR1cmVCaW5kaW5nTGF5b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3Jp
cHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlMWM2YmRkNTMzNDkyMWM4ODFiZThmM2E4ZmY5N2Y0MjVl
MTQ3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVUV4dGVybmFsVGV4dHVy
ZURlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0
dXJlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKGNvbnN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImIGV4dGVybmFsVGV4dHVyZURlc2Ny
aXB0b3IpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0
PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oZXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcikp
OworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY29sb3JT
cGFjZSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKaW5kZXggOTNjNzQ1MTJlNDJl
ODRmYjVmMjA2YzY3MWM2ODM2N2VlNDNkZGNmZS4uZjgwNGJkNWE5ZWExYmZmMjhlN2E2Mjg0Yjdl
N2MyNDk1MjFhMmY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCkBAIC0yNSw3ICsyNSwx
MCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1
ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVQcmVkZWZpbmVkQ29sb3JTcGFjZS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTYsMyArNTksNSBAQCBzdHJ1Y3Qg
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUZyYWdtZW50U3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUZyYWdtZW50U3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDZiNDEyMjI3MDRkZDBjMWE0MDlkMmUx
MWZmMTdkZjc3YWE0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVGcmFnbWVudFN0YXRlLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVG
cmFnbWVudFN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OkZyYWdtZW50U3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBGcmFnbWVudFN0YXRlJiBmcmFnbWVudFN0YXRl
KQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25z
dCBQcm9ncmFtbWFibGVTdGFnZSY+KGZyYWdtZW50U3RhdGUpKTsKKyAgICBpZiAoIWJhc2UpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkNv
bG9yVGFyZ2V0U3RhdGU+IHRhcmdldHM7CisgICAgdGFyZ2V0cy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGZyYWdtZW50U3RhdGUudGFyZ2V0cy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYg
YmFja2luZ1RhcmdldCA6IGZyYWdtZW50U3RhdGUudGFyZ2V0cykgeworICAgICAgICBhdXRvIHRh
cmdldCA9IGNvbnZlcnRGcm9tQmFja2luZyhiYWNraW5nVGFyZ2V0KTsKKyAgICAgICAgaWYgKCF0
YXJnZXQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICB0YXJnZXRz
LnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCp0YXJnZXQpKTsKKyAgICB9CisKKyAgICByZXR1cm4g
eyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKHRhcmdldHMpIH0gfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUZyYWdtZW50U3RhdGUuaAppbmRleCA5Zjk2
ZWUxNmRjYjZjYTQ3YWE4MmNjMjg0NjY5M2U5NjZlMWNlZjU0Li4yODdiY2M0N2Q5NGI0ZGVmNTFj
Y2Y2YjEwYmFjNjk3OWY4ZDI1MzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVRnJhZ21lbnRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmgKQEAgLTI1LDggKzI1LDExIEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVQ29sb3JU
YXJnZXRTdGF0ZS5oIgogI2luY2x1ZGUgIldlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmgiCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBAQCBzdHJ1Y3QgRnJhZ21lbnRTdGF0ZSA6IHB1
YmxpYyBQcm9ncmFtbWFibGVTdGFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZDQ3MDA1NTE4YTgzNDQxNGE5ODUwMjI5YzEyMWFmZDFkZTEyZTU1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5j
cHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVJbWFnZUNvcHlCdWZmZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oPgorCituYW1l
c3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpJbWFn
ZUNvcHlCdWZmZXI+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2lu
Zyhjb25zdCBJbWFnZUNvcHlCdWZmZXImIGltYWdlQ29weUJ1ZmZlcikKK3sKKyAgICBhdXRvIGJh
c2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VEYXRhTGF5b3V0
Jj4oaW1hZ2VDb3B5QnVmZmVyKSk7CisgICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgYXV0byBidWZmZXIgPSBjb252ZXJ0QnVmZmVyRnJvbUJhY2tpbmco
aW1hZ2VDb3B5QnVmZmVyLmJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCAqYnVmZmVy
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
SW1hZ2VDb3B5QnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5QnVmZmVyLmgKaW5kZXggMTE4NjYwZTc3ZDY5NTY1OGI4NzIyYjNlNDdlMmZhMmZmNWNl
ZTQwYy4uOGZkMjc4NTljMjM1MmJjODlmYzVkMzJjNzJlMDc3MGFmYzkzMjQyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuaApA
QCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBAQCBzdHJ1Y3Qg
SW1hZ2VDb3B5QnVmZmVyIDogcHVibGljIEltYWdlRGF0YUxheW91dCB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4
dGVybmFsSW1hZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdl
Q29weUV4dGVybmFsSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwY2EzYmYzNTljOWViNjA5MTI4ZWZh
ZWYyMjZjNjM2ZThkZTdlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJuYWxJbWFnZS5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVJbWFn
ZUNvcHlFeHRlcm5hbEltYWdlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdlLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkltYWdlQ29w
eUV4dGVybmFsSW1hZ2U+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBJbWFnZUNvcHlFeHRlcm5hbEltYWdlJiBpbWFnZUNvcHlFeHRlcm5hbEltYWdl
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJEPiBvcmlnaW47Cisg
ICAgaWYgKGltYWdlQ29weUV4dGVybmFsSW1hZ2Uub3JpZ2luKSB7CisgICAgICAgIGF1dG8gb3Jp
Z2luID0gY29udmVydEZyb21CYWNraW5nKCppbWFnZUNvcHlFeHRlcm5hbEltYWdlLm9yaWdpbik7
CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUob3JpZ2luKSB9IH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFs
SW1hZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlFeHRl
cm5hbEltYWdlLmgKaW5kZXggMWU1NTI4YjljNTRjYzFkOTdkZWZmZGMxOTMyZjJlYTExMDlhOWNj
Yi4uNWYyOTY2YzI2ZWNmMmVmYmU1OGRiYjM5NDMxZmEzYmFiNWE4ZjA2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5RXh0ZXJu
YWxJbWFnZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT3JpZ2luMkQuaCIKICNpbmNsdWRlIDxv
cHRpb25hbD4KICNpbmNsdWRlIDx2YXJpYW50PgpAQCAtNTIsMyArNTQsNSBAQCBzdHJ1Y3QgSW1h
Z2VDb3B5RXh0ZXJuYWxJbWFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZjZGRkOTg5YWEwNGVkMTU3MTJlZjA1MWQzMTMwYzY5YTI1MTFhZjIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Oklt
YWdlQ29weVRleHR1cmU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFj
a2luZyhjb25zdCBJbWFnZUNvcHlUZXh0dXJlJiBpbWFnZUNvcHlUZXh0dXJlKQoreworICAgIGF1
dG8gdGV4dHVyZSA9IGNvbnZlcnRUZXh0dXJlRnJvbUJhY2tpbmcoaW1hZ2VDb3B5VGV4dHVyZS50
ZXh0dXJlKTsKKyAgICBpZiAoIXRleHR1cmUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4zRD4gb3JpZ2luOworICAg
IGlmIChpbWFnZUNvcHlUZXh0dXJlLm9yaWdpbikgeworICAgICAgICBhdXRvIG9yaWdpbiA9IGNv
bnZlcnRGcm9tQmFja2luZygqaW1hZ2VDb3B5VGV4dHVyZS5vcmlnaW4pOworICAgICAgICBpZiAo
IW9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAg
cmV0dXJuIHsgeyAqdGV4dHVyZSwgaW1hZ2VDb3B5VGV4dHVyZS5taXBMZXZlbCwgV1RGTW92ZShv
cmlnaW4pLCBpbWFnZUNvcHlUZXh0dXJlLmFzcGVjdCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmgKaW5kZXggOGEy
MzA2YTg0NDMxZmNkNTgwMTFmNWVjODhmYTdhYTBjNDg5OTczZi4uYTI5YzM1MjFkNGU5NTIyMzdm
MDBiZmVmNzA5MzVmOTllZmQxNzM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BV
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9yaWdpbjNELmgiCiAjaW5jbHVkZSA8b3B0
aW9uYWw+CkBAIC03NSwzICs3Nyw1IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlIHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU3ZTNmY2NiNDMyNWUw
MzUzMzI0YmMzODUyMWUzMTdlZWE4ZGYzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuaD4KKwor
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKGNvbnN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQmIGltYWdlQ29weVRleHR1
cmVUYWdnZWQpCit7CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19j
YXN0PGNvbnN0IEltYWdlQ29weVRleHR1cmUmPihpbWFnZUNvcHlUZXh0dXJlVGFnZ2VkKSk7Cisg
ICAgaWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpiYXNlKSwgaW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jb2xvclNwYWNlLCBp
bWFnZUNvcHlUZXh0dXJlVGFnZ2VkLnByZW11bHRpcGxpZWRBbHBoYSB9IH07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVU
YWdnZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZUNvcHlUZXh0
dXJlVGFnZ2VkLmgKaW5kZXggODQ5YmM0ZTg2MWMzMzYzYTY5MDkzZWNmZjkxYjBmNWQ1MjBlNDY1
Ny4uMDE4YjY4YWE0ZmRmYTVjYmQ3ZGRmMDczZjJmZjRkNGJjZDBmNzRjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1hZ2VDb3B5VGV4dHVy
ZVRhZ2dlZC5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUltYWdlQ29weVRleHR1cmUuaCIKKyNp
bmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBy
ZWRlZmluZWRDb2xvclNwYWNlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC02
MywzICs2Niw1IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkIDogcHVibGljIEltYWdl
Q29weVRleHR1cmUgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIyMTBiOWIx
YjM3NDdjMmI0NTAzZDMxNTI4MzFmNmY3NTQzYmU1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVSW1hZ2VEYXRhTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dy
YXBoaWNzL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1hZ2VEYXRhTGF5b3V0
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1h
Z2VEYXRhTGF5b3V0JiBpbWFnZURhdGFMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyBpbWFnZURh
dGFMYXlvdXQub2Zmc2V0LCBpbWFnZURhdGFMYXlvdXQuYnl0ZXNQZXJSb3csIGltYWdlRGF0YUxh
eW91dC5yb3dzUGVySW1hZ2UgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVJbWFnZURhdGFMYXlvdXQuaAppbmRleCBjZTRjZTM5MTQ3MzAzZmU3MGUy
N2Y2OWFhYmUwY2U1YzFhMTU3YjM5Li4wNDcwN2I2YzBkOTMwNjM5YTU2Nzk3MGY1ZGZhNWVmYzk3
MzVkNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVSW1h
Z2VEYXRhTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUlt
YWdlRGF0YUxheW91dC5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAKQEAgLTY0LDMgKzY2LDUg
QEAgc3RydWN0IEltYWdlRGF0YUxheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0NmU3OTBmODliZGMzOWVhMTUzZjA2YjE4MmM0NzFmOThhNjFiY2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVT
dGF0ZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Lmgi
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6Ok11bHRpc2FtcGxlU3RhdGU+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRG
cm9tQmFja2luZyhjb25zdCBNdWx0aXNhbXBsZVN0YXRlJiBtdWx0aXNhbXBsZVN0YXRlKQorewor
ICAgIHJldHVybiB7IHsgbXVsdGlzYW1wbGVTdGF0ZS5jb3VudCwgbXVsdGlzYW1wbGVTdGF0ZS5t
YXNrLCBtdWx0aXNhbXBsZVN0YXRlLmFscGhhVG9Db3ZlcmFnZUVuYWJsZWQgfSB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVTXVsdGlzYW1wbGVTdGF0
ZS5oCmluZGV4IDhkZTVkNThkOTgzMTlmOGQ5MTg4ODg2YzQ0MTAwOTYwMWMzZjk3MTguLmYxNjI4
NWNlNjBjYTYwODk3YjA4OGE3ZmFlZDAyODE5ZjcwYTUyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU11bHRpc2FtcGxlU3RhdGUuaApAQCAtMjUsNiAr
MjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNjMsMyArNjYs
NSBAQCBzdHJ1Y3QgTXVsdGlzYW1wbGVTdGF0ZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDExNTRlYmQ4NmNkNzMyNThmYTFjNThmZDBiMDhiNjIwNjJiNzY0
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVP
YmplY3REZXNjcmlwdG9yQmFzZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZy
b21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPYmplY3REZXNjcmlw
dG9yQmFzZSYgb2JqZWN0RGVzY3JpcHRvckJhc2UpCit7CisgICAgcmV0dXJuIHsgeyBvYmplY3RE
ZXNjcmlwdG9yQmFzZS5sYWJlbCB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAppbmRleCA0ZmNiOWY1
NTg3NzZmNDNjMTY4YmU0MGUyNzIxNmI0ZTQ5MzBhMzZhLi42MTEzYzUyYWU2Zjk0MjhlNjBjNjEw
OWVlM2I3OTNkNTc3MWUyMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaApAQCAtMjUsNiArMjUsOSBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPG9w
dGlvbmFsPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgewpAQCAtNDksMyArNTIsNSBAQCBzdHJ1Y3QgT2JqZWN0RGVzY3JpcHRvckJh
c2UgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPcmlnaW4yRC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T3JpZ2luMkQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MDg4ZTMyYmNjOGMwMDAxYWJjYzIyNTNjZTRiMTM2
YzY0ZTZlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3JpZ2luMkQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luMkQuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmg+CisKK25h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9y
aWdpbjJERGljdD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5n
KGNvbnN0IE9yaWdpbjJERGljdCYgb3JpZ2luMkREaWN0KQoreworICAgIHJldHVybiB7IHsgb3Jp
Z2luMkREaWN0LngsIG9yaWdpbjJERGljdC55IH0gfTsKK30KKworc3RkOjpvcHRpb25hbDxQQUw6
OldlYkdQVTo6T3JpZ2luMkQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBPcmlnaW4yRCYgb3JpZ2luMkQpCit7CisgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24ob3JpZ2luMkQsIFtdIChjb25zdCBWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29y
ZGluYXRlPiYgdmVjdG9yKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPcmlnaW4yRD4g
eworICAgICAgICByZXR1cm4geyB7IHZlY3RvciB9IH07CisgICAgfSwgW3RoaXNdIChjb25zdCBP
cmlnaW4yRERpY3QmIG9yaWdpbjJERGljdCkgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
T3JpZ2luMkQ+IHsKKyAgICAgICAgYXV0byBvcmlnaW4yRCA9IGNvbnZlcnRGcm9tQmFja2luZyhv
cmlnaW4yRERpY3QpOworICAgICAgICBpZiAoIW9yaWdpbjJEKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpvcmlnaW4yRCkgfSB9
OworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVPcmlnaW4yRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdp
bjJELmgKaW5kZXggZGYxZmZmZDU3ODQzOTUyM2JkYzcyMTE0MzMyN2IwYzZmZTNhNzc3ZC4uNzMx
ZmU5YjQ1NjA0MTRiOGVhMTg1YjNjNjA4YjYxZGJjMmE0YmIzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25h
bD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4K
ICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTYwLDMgKzYz
LDUgQEAgc3RydWN0IE9yaWdpbjJERGljdCB7CiB1c2luZyBPcmlnaW4yRCA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8UEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlPiwgT3JpZ2luMkREaWN0PjsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVP
cmlnaW4zRC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3JpZ2luM0Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc3YmExYjY1YmIyMWZmNDhjNTRiYTYzMTJmMmRhOTM4M2M1NDM5ODkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVT3Jp
Z2luM0QuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVT3JpZ2luM0QuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9yaWdpbjNELmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNERGlj
dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IE9y
aWdpbjNERGljdCYgb3JpZ2luM0REaWN0KQoreworICAgIHJldHVybiB7IHsgb3JpZ2luM0REaWN0
LngsIG9yaWdpbjNERGljdC55LCBvcmlnaW4zRERpY3QueiB9IH07Cit9CisKK3N0ZDo6b3B0aW9u
YWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjNEPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luM0QmIG9yaWdpbjNEKQoreworICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKG9yaWdpbjNELCBbXSAoY29uc3QgVmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRl
Z2VyQ29vcmRpbmF0ZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T3Jp
Z2luM0Q+IHsKKyAgICAgICAgcmV0dXJuIHsgeyB2ZWN0b3IgfSB9OworICAgIH0sIFt0aGlzXSAo
Y29uc3QgT3JpZ2luM0REaWN0JiBvcmlnaW4zRERpY3QpIC0+IHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6Ok9yaWdpbjNEPiB7CisgICAgICAgIGF1dG8gb3JpZ2luM0QgPSBjb252ZXJ0RnJvbUJh
Y2tpbmcob3JpZ2luM0REaWN0KTsKKyAgICAgICAgaWYgKCFvcmlnaW4zRCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IHsgV1RGTW92ZSgqb3JpZ2lu
M0QpIH0gfTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT3JpZ2luM0QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVPcmlnaW4zRC5oCmluZGV4IGNmNzQ1YTQyMDc0YWNiMjBmZTc1MTQ2YzBlOTQ1MzBlNjc0Yzhl
ODQuLjM3NmFlMjUyZDlkYWZhYzk5Yjk2ZjhhY2M1YjM3ODI0YWExYTZhYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPcmlnaW4zRC5oCkBAIC0yNSw2ICsyNSw5IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8
b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5
cGVzLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02
NywzICs3MCw1IEBAIHN0cnVjdCBPcmlnaW4zRERpY3QgewogdXNpbmcgT3JpZ2luM0QgPSBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPFBBTDo6V2ViR1BVOjpJbnRlZ2VyQ29vcmRpbmF0ZT4sIE9yaWdpbjNE
RGljdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNjNDk1ZjhjODQzNTczMDI5
N2EyZGNkNWI2YzE3YmM0ZjVhZWI2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVPdXRPZk1lbW9yeUVycm9yLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVU91dE9m
TWVtb3J5RXJyb3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldl
YkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKKworUmVmUHRyPFBBTDo6V2ViR1BVOjpPdXRPZk1lbW9yeUVycm9yPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3V0T2ZNZW1vcnlFcnJv
ciYgb3V0T2ZNZW1vcnlFcnJvcikKK3sKKyAgICByZXR1cm4geyBQQUw6OldlYkdQVTo6T3V0T2ZN
ZW1vcnlFcnJvcjo6Y3JlYXRlKCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVU91dE9mTWVtb3J5RXJyb3IuaAppbmRleCA2YzY5MzU3NTcxYWYxN2Vm
OWU3Zjc2NDIzODc3ZmYzNDg0YWE2NjVhLi43NTQ1Mzc2YjgxZmI5MzY4M2U0NTBlNDQzZGM4NTM0
YzRiZjkzMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
T3V0T2ZNZW1vcnlFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVPdXRPZk1lbW9yeUVycm9yLmgKQEAgLTI1LDYgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisKIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0cnVjdCBPdXRPZk1lbW9yeUVycm9yIHsKQEAgLTM5
LDMgKzQzLDUgQEAgc3RydWN0IE91dE9mTWVtb3J5RXJyb3IgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURl
c2NyaXB0b3JCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmI4YThjOTQ2ZmJjMDNkYTQxMWQyNDkzZjBj
Yzk0MmE3MGMwYzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUGlwZWxpbmVE
ZXNjcmlwdG9yQmFzZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQaXBlbGluZURlc2Ny
aXB0b3JCYXNlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSYgcGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkKK3sK
KyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UmPihwaXBlbGluZURlc2NyaXB0b3JCYXNlKSk7CisgICAgaWYgKCFi
YXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpXZWJHUFU6OlBp
cGVsaW5lTGF5b3V0KiBsYXlvdXQgPSBudWxscHRyOworICAgIGlmIChwaXBlbGluZURlc2NyaXB0
b3JCYXNlLmxheW91dCkgeworICAgICAgICBsYXlvdXQgPSBjb252ZXJ0UGlwZWxpbmVMYXlvdXRG
cm9tQmFja2luZyhwaXBlbGluZURlc2NyaXB0b3JCYXNlLmxheW91dCk7CisgICAgICAgIGlmICgh
bGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBsYXlvdXQgfSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5oCmluZGV4IDVjNGI3MDc5MDA1MWNmYzFmN2M1NTk1MTY2OGI5ZjQ1YjA1NWUyMmIuLjRkMDcx
ZjFjZDYzZWVhMTJjOWFlMDRiNjE5NmIyNTM5OGIwNzliYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
aApAQCAtMjUsOCArMjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BV
T2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIApAQCAtNTYsMyArNTksNSBAQCBzdHJ1Y3QgUGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5
b3V0RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlw
ZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2EyODIxMGY4MTQ5MWY4NDFh
NWYwMjAwZjBiNmQ1MmNmMzI3NjUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJH
UFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oPgor
CituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIHBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmco
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihwaXBlbGluZUxheW91dERl
c2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6QmluZEdy
b3VwTGF5b3V0Pj4gYmluZEdyb3VwTGF5b3V0czsKKyAgICBiaW5kR3JvdXBMYXlvdXRzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmJpbmRHcm91cExheW91
dHMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdCaW5kR3JvdXBMYXlvdXQg
OiBwaXBlbGluZUxheW91dERlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cykgeworICAgICAgICBh
dXRvKiBlbnRyeSA9IGNvbnZlcnRCaW5kR3JvdXBMYXlvdXRGcm9tQmFja2luZyhiYWNraW5nQmlu
ZEdyb3VwTGF5b3V0KTsKKyAgICAgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgIGJpbmRHcm91cExheW91dHMudW5jaGVja2VkQXBwZW5kKCpl
bnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShi
aW5kR3JvdXBMYXlvdXRzKSB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCmluZGV4IDgw
YTIwMTdmYmNmOWQ4NGVlMzQwMjQ5N2E2Y2JiNDc5ODZmMDU3N2EuLjVlNDMwMjgxYWYyYjUxODQ1
Yjg5YjlkMmQwZWRmMTVkMGI3ODcxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmgKQEAgLTI1
LDggKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CiAjaW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERl
c2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewpAQCAtNTcsMyArNjAsNSBAQCBzdHJ1
Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUHJpbWl0aXZlU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVByaW1pdGl2ZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjVhOTNkYjE3Y2Q5MWZjMmNkNDM1
OTAzNTMxYjkwZjMwMDFiZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVByaW1pdGl2ZVN0
YXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252
ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9X
ZWJHUFVQcmltaXRpdmVTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZT4gQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFByaW1pdGl2ZVN0YXRlJiBwcmlt
aXRpdmVTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IHByaW1pdGl2ZVN0YXRlLnRvcG9sb2d5LCBw
cmltaXRpdmVTdGF0ZS5zdHJpcEluZGV4Rm9ybWF0LCBwcmltaXRpdmVTdGF0ZS5mcm9udEZhY2Us
IHByaW1pdGl2ZVN0YXRlLmN1bGxNb2RlLCBwcmltaXRpdmVTdGF0ZS51bmNsaXBwZWREZXB0aCB9
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVBy
aW1pdGl2ZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0
aXZlU3RhdGUuaAppbmRleCBkMTgyMzMyMjNkOTcwYThmMDk5MDYyNTg3ODExNWFhNDc1NGI0ODk3
Li5lZjY0ZGVkN2E5NWVjMzliODI4YjQzMDQ0N2I4NWQwM2I2OThhYzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJpbWl0aXZlU3RhdGUuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
Q3VsbE1vZGUuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZyb250RmFj
ZS5oPgpAQCAtODQsMyArODYsNSBAQCBzdHJ1Y3QgUHJpbWl0aXZlU3RhdGUgewogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVQcm9ncmFt
bWFibGVTdGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiYzMzNWZmMWQ4NDIxNmVlMDcxNDNhOGU1ZDVl
N2EyMjQwMjFmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVUHJvZ3JhbW1hYmxlU3Rh
Z2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVVByb2dyYW1tYWJsZVN0YWdlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisK
K3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlByb2dyYW1tYWJsZVN0YWdlPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUHJvZ3JhbW1hYmxlU3Rh
Z2UmIHByb2dyYW1tYWJsZVN0YWdlKQoreworICAgIGF1dG8gbW9kdWxlID0gY29udmVydFNoYWRl
ck1vZHVsZUZyb21CYWNraW5nKHByb2dyYW1tYWJsZVN0YWdlLm1vZHVsZSk7CisgICAgaWYgKCFt
b2R1bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpt
b2R1bGUsIHByb2dyYW1tYWJsZVN0YWdlLmVudHJ5UG9pbnQsIHByb2dyYW1tYWJsZVN0YWdlLmNv
bnN0YW50cyB9IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaAppbmRleCBlMWYwYWUwZDY5ZjI5YmI5ZmY3ODJlZWQ2
MmQzNmQzODU3YzE5ZmVjLi5jOGJjMmNkNzcxNmI0MDdkYzVkN2E1OTZkNmY0NDM3NmUxYTVkZDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3JhbW1h
YmxlU3RhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0tleVZhbHVlUGFpci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02OCwzICs3MSw1IEBAIHN0
cnVjdCBQcm9ncmFtbWFibGVTdGFnZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYThlMzcxYzU1ZjY4ZTcyYjU1YWQ1ZDM2YjdjMGVjYzdjMmIzNmZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVz
Y3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3Jp
cHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6
OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBRdWVyeVNldERlc2NyaXB0b3ImIHF1ZXJ5U2V0RGVz
Y3JpcHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihxdWVyeVNldERlc2NyaXB0b3IpKTsKKyAg
ICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
eyB7IFdURk1vdmUoKmJhc2UpLCBxdWVyeVNldERlc2NyaXB0b3IudHlwZSwgcXVlcnlTZXREZXNj
cmlwdG9yLmNvdW50LCBxdWVyeVNldERlc2NyaXB0b3IucGlwZWxpbmVTdGF0aXN0aWNzIH0gfTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlT
ZXREZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUXVlcnlT
ZXREZXNjcmlwdG9yLmgKaW5kZXggYmUxMTJkOTI1NjY1ZGJhNGEwMjNhZjQ3ZWVkOWY4MjRhYjkz
YjljZS4uZTlkMTM3NWM4ZGUyYWM2NjExMWE0MGNkZDZlYzZjYWYwOGUwMzcyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0
b3IuaApAQCAtMjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUGlwZWxp
bmVTdGF0aXN0aWNOYW1lLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWVyeVR5cGUuaD4KQEAgLTczLDMgKzc2LDUgQEAgc3RydWN0IFF1ZXJ5U2V0RGVzY3JpcHRvciA6
IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURlc2Ny
aXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3ZGU5MmVjMTZlNDEwMjdlZWEzZDFiNmI2NDY5NzNlZWY0
YjhhNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJCdW5kbGVEZXNj
cmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZURlc2NyaXB0
b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBS
ZW5kZXJCdW5kbGVEZXNjcmlwdG9yJiByZW5kZXJCdW5kbGVEZXNjcmlwdG9yKQoreworICAgIGF1
dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KHJlbmRlckJ1bmRsZURlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJh
c2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaAppbmRleCBjMDk2MjgwNzY0MWJmOWNhNDAx
ZDgxMmJhMjAwMzFiMmVhOTAwYTZlLi43M2EyZjA4MTIwYzczYjQ2OTYyM2UwYjQ4YTZmZDEyZDUw
MGM5OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyQnVuZGxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2Jq
ZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVIHsKIApAQCAtNDcsMyArNTAsNSBAQCBzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVz
Y3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY3NDFlMmIxZmYz
YmJiMzM3M2M0OTdlMDg1ZWExYzIyMzUwYzhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5j
cHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvci5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxl
RW5jb2RlckRlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3I+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJC
dW5kbGVFbmNvZGVyRGVzY3JpcHRvciYgcmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IpCit7
CisgICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclBhc3NMYXlvdXQmPihyZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3JpcHRvcikpOworICAgIGlm
ICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqYmFzZSksIHJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLmRlcHRoUmVhZE9u
bHksIHJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yLnN0ZW5jaWxSZWFkT25seSB9IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1
bmRsZUVuY29kZXJEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaAppbmRleCBlMjljZDU0Yjk1Y2E0MGFj
MGFkOGJlNTllNzQ4MzJkMmRlOGRiNDFhLi5jOWQwNzExZTNiYTdkMTVhNTk0YzA1YzAxMTI0ZjYy
YzM0ZGZlYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuaApAQCAtMjUsNyAr
MjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNp
bmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAK
IG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKQEAgLTYyLDMgKzY1LDUgQEAgc3RydWN0IFJl
bmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIFJlbmRlclBhc3NMYXlvdXQgewog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODg3
MzhiNTA5YWE0YjcxNzU3MDg4N2QwOTUyOThjYjZkZjQyOWIyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1l
bnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0Nv
bG9yQXR0YWNobWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50PiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVuZGVyUGFzc0NvbG9y
QXR0YWNobWVudCYgcmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudCkKK3sKKyAgICBhdXRvIHZpZXcg
PSBjb252ZXJ0VGV4dHVyZVZpZXdGcm9tQmFja2luZyhyZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LnZpZXcpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlldyogcmVzb2x2ZVRhcmdldCA9IG51bGxwdHI7Cisg
ICAgaWYgKHJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQucmVzb2x2ZVRhcmdldCkgeworICAgICAg
ICByZXNvbHZlVGFyZ2V0ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcocmVuZGVyUGFz
c0NvbG9yQXR0YWNobWVudC5yZXNvbHZlVGFyZ2V0KTsKKyAgICAgICAgaWYgKCFyZXNvbHZlVGFy
Z2V0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRv
IGxvYWRWYWx1ZSA9IFdURjo6c3dpdGNoT24ocmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5sb2Fk
VmFsdWUsIFtdIChQQUw6OldlYkdQVTo6TG9hZE9wIGxvYWRPcCkgLT4gc3RkOjpvcHRpb25hbDxz
dGQ6OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIFBBTDo6V2Vi
R1BVOjpDb2xvckRpY3Q+PiB7CisgICAgICAgIHJldHVybiB7IHsgbG9hZE9wIH0gfTsKKyAgICB9
LCBbXSAoY29uc3QgVmVjdG9yPGRvdWJsZT4mIHZlY3RvcikgLT4gc3RkOjpvcHRpb25hbDxzdGQ6
OnZhcmlhbnQ8UEFMOjpXZWJHUFU6OkxvYWRPcCwgVmVjdG9yPGRvdWJsZT4sIFBBTDo6V2ViR1BV
OjpDb2xvckRpY3Q+PiB7CisgICAgICAgIHJldHVybiB7IHsgdmVjdG9yIH0gfTsKKyAgICB9LCBb
dGhpc10gKGNvbnN0IENvbG9yRGljdCYgb3JpZ2luQ29sb3JEaWN0KSAtPiBzdGQ6Om9wdGlvbmFs
PHN0ZDo6dmFyaWFudDxQQUw6OldlYkdQVTo6TG9hZE9wLCBWZWN0b3I8ZG91YmxlPiwgUEFMOjpX
ZWJHUFU6OkNvbG9yRGljdD4+IHsKKyAgICAgICAgYXV0byBjb2xvckRpY3QgPSBjb252ZXJ0RnJv
bUJhY2tpbmcob3JpZ2luQ29sb3JEaWN0KTsKKyAgICAgICAgaWYgKCFjb2xvckRpY3QpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB7IFdURk1vdmUo
KmNvbG9yRGljdCkgfSB9OworICAgIH0pOworICAgIGlmICghbG9hZFZhbHVlKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqdmlldywgcmVzb2x2ZVRhcmdl
dCwgV1RGTW92ZSgqbG9hZFZhbHVlKSwgcmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5zdG9yZU9w
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuaAppbmRleCBiMGQ4OTI3ZWYyYmE4YTMw
YjllYTZiNmQ1ZGY0N2UxNDg2NGVjN2RhLi5hOGM2ZDZhZWYzMjJjNjBiODBlNjY1NmI5MDZhYmVh
NzJkZmI1YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgKQEAgLTI1LDggKzI1LDExIEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVQ29sb3IuaCIKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8
b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaD4K
ICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4KICNpbmNsdWRl
IDx2YXJpYW50PgpAQCAtNzcsMyArODAsNSBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0NvbG9yQXR0YWNo
bWVudCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzhjYTQyZjJkMzc2MjI4NWYyMmZmNjIwMWNiYWM0NGY4OWUxMDM5
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNz
RGVwdGhTdGVuY2lsQXR0YWNobWVudC5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IENvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQYXNzRGVwdGhTdGVuY2ls
QXR0YWNobWVudCYgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCit7CisgICAgYXV0
byB2aWV3ID0gY29udmVydFRleHR1cmVWaWV3RnJvbUJhY2tpbmcocmVuZGVyUGFzc0RlcHRoU3Rl
bmNpbEF0dGFjaG1lbnQudmlldyk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqdmlldywgcmVuZGVyUGFzc0RlcHRoU3RlbmNp
bEF0dGFjaG1lbnQuZGVwdGhMb2FkVmFsdWUsIHJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2ht
ZW50LmRlcHRoU3RvcmVPcCwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuZGVwdGhS
ZWFkT25seSwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuc3RlbmNpbExvYWRWYWx1
ZSwgcmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuc3RlbmNpbFN0b3JlT3AsIHJlbmRl
clBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LnN0ZW5jaWxSZWFkT25seSB9IH07Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXB0
aFN0ZW5jaWxBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAppbmRleCBlODJlZDZjODFlOGFjYTc4
NWM4MDU4YzAzMjQyNmVlNWYwYzJiYjQyLi5iMWM1NWJhY2UwMDVkNjE4ZmVjMzgwOGI1YjM5MDE4
ODA0NTg3MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaApAQCAt
MjUsNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVMb2FkT3AuaD4KICNpbmNsdWRlIDxwYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN0b3JlT3AuaD4KQEAgLTk4LDMgKzEwMSw1IEBAIHN0cnVj
dCBSZW5kZXJQYXNzRGVwdGhTdGVuY2lsQXR0YWNobWVudCB7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlw
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVz
Y3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRiZGZjYTA1NzgzOWM1YWUzOTljYjNiMDljYjU3NmJi
OWJiNjgwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzRGVzY3Jp
cHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29u
dmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQ
YXNzRGVzY3JpcHRvciYgcmVuZGVyUGFzc0Rlc2NyaXB0b3IpCit7CisgICAgYXV0byBiYXNlID0g
Y29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNl
Jj4ocmVuZGVyUGFzc0Rlc2NyaXB0b3IpKTsKKyAgICBpZiAoIWJhc2UpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NDb2xv
ckF0dGFjaG1lbnQ+IGNvbG9yQXR0YWNobWVudHM7CisgICAgY29sb3JBdHRhY2htZW50cy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHJlbmRlclBhc3NEZXNjcmlwdG9yLmNvbG9yQXR0YWNobWVudHMu
c2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdDb2xvckF0dGFjaG1lbnQgOiBy
ZW5kZXJQYXNzRGVzY3JpcHRvci5jb2xvckF0dGFjaG1lbnRzKSB7CisgICAgICAgIGF1dG8gY29s
b3JBdHRhY2htZW50ID0gY29udmVydEZyb21CYWNraW5nKGJhY2tpbmdDb2xvckF0dGFjaG1lbnQp
OworICAgICAgICBpZiAoIWNvbG9yQXR0YWNobWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIGNvbG9yQXR0YWNobWVudHMudW5jaGVja2VkQXBwZW5kKFdURk1v
dmUoKmNvbG9yQXR0YWNobWVudCkpOworICAgIH0KKworICAgIGF1dG8gZGVwdGhTdGVuY2lsQXR0
YWNobWVudCA9IChbJl0gKCkgLT4gc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFz
c0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQ+IHsKKyAgICAgICAgaWYgKHJlbmRlclBhc3NEZXNjcmlw
dG9yLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpCisgICAgICAgICAgICByZXR1cm4gY29udmVydEZy
b21CYWNraW5nKCpyZW5kZXJQYXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2htZW50KTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9KSgpOworICAgIGlmIChyZW5kZXJQ
YXNzRGVzY3JpcHRvci5kZXB0aFN0ZW5jaWxBdHRhY2htZW50ICYmICFkZXB0aFN0ZW5jaWxBdHRh
Y2htZW50KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgUEFMOjpXZWJHUFU6
OlF1ZXJ5U2V0KiBvY2NsdXNpb25RdWVyeVNldCA9IG51bGxwdHI7CisgICAgaWYgKHJlbmRlclBh
c3NEZXNjcmlwdG9yLm9jY2x1c2lvblF1ZXJ5U2V0KSB7CisgICAgICAgIG9jY2x1c2lvblF1ZXJ5
U2V0ID0gY29udmVydFF1ZXJ5U2V0RnJvbUJhY2tpbmcocmVuZGVyUGFzc0Rlc2NyaXB0b3Iub2Nj
bHVzaW9uUXVlcnlTZXQpOworICAgICAgICBpZiAoIW9jY2x1c2lvblF1ZXJ5U2V0KQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIHRpbWVzdGFtcFdy
aXRlcyA9IGNvbnZlcnRGcm9tQmFja2luZyhyZW5kZXJQYXNzRGVzY3JpcHRvci50aW1lc3RhbXBX
cml0ZXMpOworICAgIGlmICghdGltZXN0YW1wV3JpdGVzKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShjb2xvckF0
dGFjaG1lbnRzKSwgV1RGTW92ZShkZXB0aFN0ZW5jaWxBdHRhY2htZW50KSwgb2NjbHVzaW9uUXVl
cnlTZXQsIFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlcykgfSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgK
aW5kZXggYmE0Y2VlMjEwY2EwMGJlYjllOGI4NzdmZjc5NzI2YzQ1ZmJkODExYi4uYjdlOGY1ZDg0
YTE2MDlkMmRiOTUwMmY3NmEzZTQ4ZTZlYjBmNjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKQEAgLTI1
LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
ICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVz
Y3JpcHRvckJhc2UuaCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50
LmgiCkBAIC04MiwzICs4NCw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVzY3JpcHRvciA6IHB1Ymxp
YyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiNDg3MWYwYjU5ODk0YTBlOGU2NjdhZThiOTQ2YmM3Mzc5MjYxNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91
dC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlJlbmRlclBhc3NMYXlvdXQ+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9t
QmFja2luZyhjb25zdCBSZW5kZXJQYXNzTGF5b3V0JiByZW5kZXJQYXNzTGF5b3V0KQoreworICAg
IGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBhc3NMYXlvdXQpKTsKKyAgICBpZiAoIWJhc2UpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2Up
LCByZW5kZXJQYXNzTGF5b3V0LmNvbG9yRm9ybWF0cywgcmVuZGVyUGFzc0xheW91dC5kZXB0aFN0
ZW5jaWxGb3JtYXQsIHJlbmRlclBhc3NMYXlvdXQuc2FtcGxlQ291bnQgfSB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5o
CmluZGV4IDRlZTMxZWUzNmFjYmU5Y2M3ZDRmOGJhMGQ1YjYyZGIzN2E3MTQzOTUuLjMxMDQyOGRm
NmJlNzZjM2I0OTA2OGJkMzhmZTE3MjQxNWQzMTExMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaApAQCAtMjUsNiArMjUs
OCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1
ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CkBAIC03
MywzICs3NSw1IEBAIHN0cnVjdCBSZW5kZXJQYXNzTGF5b3V0IDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTY4NDdkMTUzMzljNDI2MGY0YTg1YzZlYjViZjA4YmM4YTQ4YWY4NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNz
VGltZXN0YW1wV3JpdGVzLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRl
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgUmVu
ZGVyUGFzc1RpbWVzdGFtcFdyaXRlJiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGUpCit7CisgICAg
YXV0byogcXVlcnlTZXQgPSBjb252ZXJ0UXVlcnlTZXRGcm9tQmFja2luZyhyZW5kZXJQYXNzVGlt
ZXN0YW1wV3JpdGUucXVlcnlTZXQpOworICAgIGlmICghcXVlcnlTZXQpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7ICpxdWVyeVNldCwgcmVuZGVyUGFzc1Rp
bWVzdGFtcFdyaXRlLnF1ZXJ5SW5kZXgsIHJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZS5sb2NhdGlv
biB9IH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBhc3NUaW1lc3Rh
bXBXcml0ZXM+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhj
b25zdCBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzJiByZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVz
KQoreworICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlPiB0
aW1lc3RhbXBXcml0ZXM7CisgICAgdGltZXN0YW1wV3JpdGVzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkocmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0
byYgYmFja2luZ1RpbWVzdGFtcFdyaXRlIDogcmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcykgewor
ICAgICAgICBhdXRvIHRpbWVzdGFtcFdyaXRlID0gY29udmVydEZyb21CYWNraW5nKGJhY2tpbmdU
aW1lc3RhbXBXcml0ZSk7CisgICAgICAgIGlmICghdGltZXN0YW1wV3JpdGUpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICB0aW1lc3RhbXBXcml0ZXMudW5jaGVja2Vk
QXBwZW5kKFdURk1vdmUoKnRpbWVzdGFtcFdyaXRlKSk7CisgICAgfQorICAgIHJldHVybiB0aW1l
c3RhbXBXcml0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgKaW5kZXggOGI5MjYzYTdj
NDgwZDA4MzFmNTQ0OTk2ZmVlMTFiMjcwNGU0ZWFlZC4uOWQ0OTMyY2U4NDMyM2E1NTc3Mzk4Mzdl
OWVlOGM4NjFhMmQxZDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5oCkBAIC0yNSw3ICsy
NSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2lu
Y2x1ZGUgIldlYkdQVUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBMb2NhdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTY5LDMgKzcyLDUgQEAgc3RydWN0IFJlbmRlclBhc3NU
aW1lc3RhbXBXcml0ZSB7CiB1c2luZyBSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzID0gVmVjdG9y
PFJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZT47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYzMWM0NmYwNWZhMTg2YjcyZGNkYzcwNWI4MTY4MjY0MGY5NzJm
NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6
OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNv
bnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKQor
eworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQ
aXBlbGluZURlc2NyaXB0b3JCYXNlJj4ocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yKSk7CisgICAg
aWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byB2ZXJ0
ZXggPSBjb252ZXJ0RnJvbUJhY2tpbmcocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLnZlcnRleCk7
CisgICAgaWYgKCF2ZXJ0ZXgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpQcmltaXRpdmVTdGF0ZT4gcHJpbWl0aXZlOworICAg
IGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0b3IucHJpbWl0aXZlKSB7CisgICAgICAgIHByaW1p
dGl2ZSA9IGNvbnZlcnRGcm9tQmFja2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLnByaW1p
dGl2ZSk7CisgICAgICAgIGlmICghcHJpbWl0aXZlKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICB9CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpEZXB0aFN0
ZW5jaWxTdGF0ZT4gZGVwdGhTdGVuY2lsOworICAgIGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0
b3IuZGVwdGhTdGVuY2lsKSB7CisgICAgICAgIGRlcHRoU3RlbmNpbCA9IGNvbnZlcnRGcm9tQmFj
a2luZygqcmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmRlcHRoU3RlbmNpbCk7CisgICAgICAgIGlm
ICghZGVwdGhTdGVuY2lsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
CisKKyAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpNdWx0aXNhbXBsZVN0YXRlPiBtdWx0
aXNhbXBsZTsKKyAgICBpZiAocmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLm11bHRpc2FtcGxlKSB7
CisgICAgICAgIG11bHRpc2FtcGxlID0gY29udmVydEZyb21CYWNraW5nKCpyZW5kZXJQaXBlbGlu
ZURlc2NyaXB0b3IubXVsdGlzYW1wbGUpOworICAgICAgICBpZiAoIW11bHRpc2FtcGxlKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIGZyYWdtZW50
ID0gKFsmXSAoKSAtPiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpGcmFnbWVudFN0YXRlPiB7
CisgICAgICAgIGlmIChyZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuZnJhZ21lbnQpCisgICAgICAg
ICAgICByZXR1cm4gY29udmVydEZyb21CYWNraW5nKCpyZW5kZXJQaXBlbGluZURlc2NyaXB0b3Iu
ZnJhZ21lbnQpOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0pKCk7CisgICAg
aWYgKHJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5mcmFnbWVudCAmJiAhZnJhZ21lbnQpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2Up
LCBXVEZNb3ZlKCp2ZXJ0ZXgpLCBXVEZNb3ZlKHByaW1pdGl2ZSksIFdURk1vdmUoZGVwdGhTdGVu
Y2lsKSwgV1RGTW92ZShtdWx0aXNhbXBsZSksIFdURk1vdmUoZnJhZ21lbnQpIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yLmgKaW5kZXggNmMyZWY3MzA5MmFhMjRjYWYzZDU5NDE3YjRjYjA2
MWE5OTJlZjEwNi4uNGJjMDU4ODZjMmVhNGZiNjAwZWY0YjhjOTUyZDYzZjBmMjZmNWIwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVURlcHRoU3RlbmNp
bFN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViR1BVRnJhZ21lbnRTdGF0ZS5oIgogI2luY2x1ZGUgIldl
YkdQVU11bHRpc2FtcGxlU3RhdGUuaCIKQEAgLTg5LDMgKzkxLDUgQEAgc3RydWN0IFJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciA6IHB1YmxpYyBQaXBlbGluZURlc2NyaXB0b3JCYXNlIHsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVx
dWVzdEFkYXB0ZXJPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMTRlNzk4MmM0NDNiMWM0
MGUyZTBjMDk3OGI3MWFkNzQxN2U3NjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQ
VVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlJlcXVl
c3RBZGFwdGVyT3B0aW9ucz4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYgcmVxdWVzdEFkYXB0ZXJPcHRpb25z
KQoreworICAgIHJldHVybiB7IHsgcmVxdWVzdEFkYXB0ZXJPcHRpb25zLnBvd2VyUHJlZmVyZW5j
ZSwgcmVxdWVzdEFkYXB0ZXJPcHRpb25zLmZvcmNlRmFsbGJhY2tBZGFwdGVyIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFkYXB0
ZXJPcHRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVxdWVzdEFk
YXB0ZXJPcHRpb25zLmgKaW5kZXggMDZiMDMxYzcxMmVkZTg3ZjU4NTlhM2Q1M2IzYjQ2ZWQ1OTEx
MjMzNy4uZGU2MjE0NTk4NzRmMTRkMGUxMThjNjlhYTg4Y2E0YWZhOGU4NGRhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRl
ck9wdGlvbnMuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFw
aGljcy9XZWJHUFUvV2ViR1BVUG93ZXJQcmVmZXJlbmNlLmg+CiAKQEAgLTU3LDMgKzU5LDUgQEAg
c3RydWN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzk4NDI3NDk0YjQ1NTg4MWIzNDViNzQwMzYxMGQ4NzAyZjI3Y2Y0
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVT
YW1wbGVyQmluZGluZ0xheW91dC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZy
b21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
U2FtcGxlckJpbmRpbmdMYXlvdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKwor
c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2FtcGxlckJpbmRpbmdMYXlvdXQ+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBTYW1wbGVyQmluZGlu
Z0xheW91dCYgc2FtcGxlckJpbmRpbmdMYXlvdXQpCit7CisgICAgcmV0dXJuIHsgeyBzYW1wbGVy
QmluZGluZ0xheW91dC50eXBlIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCmluZGV4IDk1OTIxZWE1
ODc0NTUzZDhmYmYwY2Q1YTUzYjRkMDA1MDA2ZTMyZjIuLjZmMGRkYzE0OTFhODcwNjA3ODQ0NDZh
MjJmODE3N2JmOTA3OTUwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0
aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyQmluZGlu
Z1R5cGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTQ5LDMgKzUyLDUgQEAg
c3RydWN0IFNhbXBsZXJCaW5kaW5nTGF5b3V0IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZjY0YWFkMGZmM2NiMWUwMjUwYzcxZjQ0MjJiYzcwYTYyYjU2YTM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFNhbXBsZXJEZXNjcmlwdG9yJiBzYW1wbGVyRGVzY3Jp
cHRvcikKK3sKKyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8
Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihzYW1wbGVyRGVzY3JpcHRvcikpOworICAgIGlm
ICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqYmFzZSksIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJlc3NNb2RlVSwgc2FtcGxlckRl
c2NyaXB0b3IuYWRkcmVzc01vZGVWLCBzYW1wbGVyRGVzY3JpcHRvci5hZGRyZXNzTW9kZVcsIHNh
bXBsZXJEZXNjcmlwdG9yLm1hZ0ZpbHRlciwgc2FtcGxlckRlc2NyaXB0b3IubWluRmlsdGVyLCBz
YW1wbGVyRGVzY3JpcHRvci5taXBtYXBGaWx0ZXIsIHNhbXBsZXJEZXNjcmlwdG9yLmxvZE1pbkNs
YW1wLCBzYW1wbGVyRGVzY3JpcHRvci5sb2RNYXhDbGFtcCwgc2FtcGxlckRlc2NyaXB0b3IuY29t
cGFyZSwgc2FtcGxlckRlc2NyaXB0b3IubWF4QW5pc290cm9weSB9IH07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaApp
bmRleCBiOGQ4NTk0ODcxNDJiY2NmYWM1MTE1ZjliZmFkOWUzOWNiMGM1M2FmLi43YTQ1MWUxOTYx
NmYzYzZkNjJlODA3NmM5ZDdjMGZkYjIwZGQ3MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaApAQCAtMjUsNiArMjUs
OCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1
ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KICNp
bmNsdWRlIDxvcHRpb25hbD4KQEAgLTEyMywzICsxMjUsNSBAQCBzdHJ1Y3QgU2FtcGxlckRlc2Ny
aXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTRhYzdkZDRmY2JlYWUxNTA4YmE4NzRhYzJm
Yzk5ZDFlY2M2N2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
V2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUgeworCitzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmco
Y29uc3QgU2hhZGVyTW9kdWxlRGVzY3JpcHRvciYgc2hhZGVyTW9kdWxlRGVzY3JpcHRvcikKK3sK
KyAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UmPihzaGFkZXJNb2R1bGVEZXNjcmlwdG9yKSk7CisgICAgaWYgKCFi
YXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZN
b3ZlKCpiYXNlKSwgc2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jb2RlIH0gfTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3Jp
cHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURl
c2NyaXB0b3IuaAppbmRleCBkZDc3ODZjZThiOTY2MTE2ZDI2OWEyNTEwYTVmMmY4MjI5YzE3MDRj
Li5iMjFlYTFiYjIzZDNkMzEwYjg0OGZiNGVlMjFkNDA4YWVmYmEyYThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIK
KyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKQEAgLTU3LDMgKzYwLDUgQEAgc3RydWN0IFNoYWRl
ck1vZHVsZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVu
Y2lsRmFjZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdGVu
Y2lsRmFjZVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2JkODU3YzY4ZWNlMDEwNGI5YTZjMjJlZTVm
Mjc1YWJiZDU0NTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVU3RlbmNpbEZhY2VTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTdGVuY2lsRmFjZVN0YXRlPiBDb252ZXJ0RnJvbUJh
Y2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU3RlbmNpbEZhY2VTdGF0ZSYg
c3RlbmNpbEZhY2VTdGF0ZSkKK3sKKyAgICByZXR1cm4geyB7IHN0ZW5jaWxGYWNlU3RhdGUuY29t
cGFyZSwgc3RlbmNpbEZhY2VTdGF0ZS5mYWlsT3AsIHN0ZW5jaWxGYWNlU3RhdGUuZGVwdGhGYWls
T3AsIHN0ZW5jaWxGYWNlU3RhdGUucGFzc09wIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaAppbmRleCBlNDAxYjY0
Y2QzNTJmZmFkMGY2YTU0ODc1NzEzMjU5NzJkMzgyNDgzLi4wYTE0MTA4ZWMyZWY4OThlOWRkMjRj
ZDkwODY1Y2IyMzE5ODhjMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVTdGVuY2lsRmFjZVN0YXRlLmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4K
ICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUNvbXBhcmVGdW5jdGlvbi5oPgog
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RlbmNpbE9wZXJhdGlvbi5oPgog
CkBAIC03MSwzICs3NCw1IEBAIHN0cnVjdCBTdGVuY2lsRmFjZVN0YXRlIHsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRl
eHR1cmVCaW5kaW5nTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYTZmMDI5Y2I4
MzU2MzhmNWExMmZlNDk3MTdiYzI2NzcwOTY2NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNw
cApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dD4gQ29udmVydEZy
b21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFN0b3JhZ2VUZXh0dXJl
QmluZGluZ0xheW91dCYgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0KQoreworICAgIHJldHVy
biB7IHsgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmFjY2Vzcywgc3RvcmFnZVRleHR1cmVC
aW5kaW5nTGF5b3V0LmZvcm1hdCwgc3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LnZpZXdEaW1l
bnNpb24gfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQuaAppbmRleCBjMjViMWFm
MzQxYWFhMDcwMTU5NjAwNTU4ZTNjYjY2NzAwMTgzYTlmLi42NzQ5NjEyYTYzNWM2MDM1MjZlMWMy
Mjk0ZDk4ZDk5NmY5M2ZlZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5oCkBAIC0y
NSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTdG9yYWdlVGV4dHVyZUFjY2Vzcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUv
V2ViR1BVVGV4dHVyZUZvcm1hdC5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaD4KQEAgLTY1LDMgKzY4LDUgQEAgc3RydWN0IFN0b3Jh
Z2VUZXh0dXJlQmluZGluZ0xheW91dCB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDBkNmRjMmMzYTZmNmI1NDg2YWE1OWRjN2JkNmM2NDQ1NTJjYjk0MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0
dXJlcy5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMu
aD4KKworbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworUmVmUHRyPFBBTDo6V2ViR1BVOjpT
dXBwb3J0ZWRGZWF0dXJlcz4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IFN1cHBvcnRlZEZlYXR1cmVzJiBzdXBwb3J0ZWRGZWF0dXJlcykKK3sKKyAg
ICByZXR1cm4geyBQQUw6OldlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXM6OmNyZWF0ZShzdXBwb3J0
ZWRGZWF0dXJlcy5mZWF0dXJlcykgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCmluZGV4IDEwZjM4OTAzZTA3MjQz
MjM5MTgzNmMyNjYzMzNmYzU5NWJkYzc2MjAuLmE2NWI3MjI5MTE0NzgyNGMxYjkzOTVlOTVmMDUx
YzMxOWY0NDg5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVTdXBwb3J0ZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC01MCwzICs1Myw1IEBAIHN0cnVjdCBTdXBwb3J0ZWRGZWF0dXJlcyB7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQ6OldlYkdQVQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExp
bWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU3VwcG9ydGVkTGlt
aXRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTJjMDQxZjljMDYzYjEzZTA5YTM3NWUwNjVmZTlmZjFiNjA4
NjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVN1cHBvcnRlZExpbWl0cy5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVN1cHBvcnRl
ZExpbWl0cy5oPgorCituYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgeworCitSZWZQdHI8UEFMOjpX
ZWJHUFU6OlN1cHBvcnRlZExpbWl0cz4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVy
dEZyb21CYWNraW5nKGNvbnN0IFN1cHBvcnRlZExpbWl0cyYgc3VwcG9ydGVkTGltaXRzKQorewor
ICAgIHJldHVybiB7IFBBTDo6V2ViR1BVOjpTdXBwb3J0ZWRMaW1pdHM6OmNyZWF0ZSgKKyAgICAg
ICAgc3VwcG9ydGVkTGltaXRzLm1heFRleHR1cmVEaW1lbnNpb24xRCwKKyAgICAgICAgc3VwcG9y
dGVkTGltaXRzLm1heFRleHR1cmVEaW1lbnNpb24yRCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRz
Lm1heFRleHR1cmVEaW1lbnNpb24zRCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFRleHR1
cmVBcnJheUxheWVycywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heEJpbmRHcm91cHMsCisg
ICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhEeW5hbWljVW5pZm9ybUJ1ZmZlcnNQZXJQaXBlbGlu
ZUxheW91dCwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heER5bmFtaWNTdG9yYWdlQnVmZmVy
c1BlclBpcGVsaW5lTGF5b3V0LAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4U2FtcGxlZFRl
eHR1cmVzUGVyU2hhZGVyU3RhZ2UsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5tYXhTYW1wbGVy
c1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4U3RvcmFnZUJ1ZmZl
cnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFN0b3JhZ2VUZXh0
dXJlc1BlclNoYWRlclN0YWdlLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VW5pZm9ybUJ1
ZmZlcnNQZXJTaGFkZXJTdGFnZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFVuaWZvcm1C
dWZmZXJCaW5kaW5nU2l6ZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFN0b3JhZ2VCdWZm
ZXJCaW5kaW5nU2l6ZSwKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1pblVuaWZvcm1CdWZmZXJP
ZmZzZXRBbGlnbm1lbnQsCisgICAgICAgIHN1cHBvcnRlZExpbWl0cy5taW5TdG9yYWdlQnVmZmVy
T2Zmc2V0QWxpZ25tZW50LAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4VmVydGV4QnVmZmVy
cywKKyAgICAgICAgc3VwcG9ydGVkTGltaXRzLm1heFZlcnRleEF0dHJpYnV0ZXMsCisgICAgICAg
IHN1cHBvcnRlZExpbWl0cy5tYXhWZXJ0ZXhCdWZmZXJBcnJheVN0cmlkZSwKKyAgICAgICAgc3Vw
cG9ydGVkTGltaXRzLm1heEludGVyU3RhZ2VTaGFkZXJDb21wb25lbnRzLAorICAgICAgICBzdXBw
b3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFN0b3JhZ2VTaXplLAorICAgICAgICBzdXBw
b3J0ZWRMaW1pdHMubWF4Q29tcHV0ZUludm9jYXRpb25zUGVyV29ya2dyb3VwLAorICAgICAgICBz
dXBwb3J0ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVYLAorICAgICAgICBzdXBwb3J0
ZWRMaW1pdHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVZLAorICAgICAgICBzdXBwb3J0ZWRMaW1p
dHMubWF4Q29tcHV0ZVdvcmtncm91cFNpemVaLAorICAgICAgICBzdXBwb3J0ZWRMaW1pdHMubWF4
Q29tcHV0ZVdvcmtncm91cHNQZXJEaW1lbnNpb24pIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVN1cHBvcnRlZExpbWl0cy5oCmluZGV4IGZhY2EwM2Vk
NGZlZTM1MTY2ODU5MzdiY2UxZDZkZmQyYTJjOTZkNTAuLjE0ZDk1ZmRlMDI2YWFmZWFiZmI2ZDQ4
NjJhYjU5YjY5YTVlNzZkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVU3VwcG9ydGVkTGltaXRzLmgKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNwcmFnbWEg
b25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIApAQCAtMjUx
LDMgKzI1NCw1IEBAIHN0cnVjdCBTdXBwb3J0ZWRMaW1pdHMgewogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRp
bmdMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZDQ1MTMwZjUzNWQxZDRlYTkwMDdiMmRjMTYxYmFh
NzM3YjA5NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZUJpbmRpbmdM
YXlvdXQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVCaW5kaW5nTGF5b3V0PiBD
b252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVGV4dHVy
ZUJpbmRpbmdMYXlvdXQmIHRleHR1cmVCaW5kaW5nTGF5b3V0KQoreworICAgIHJldHVybiB7IHsg
dGV4dHVyZUJpbmRpbmdMYXlvdXQuc2FtcGxlVHlwZSwgdGV4dHVyZUJpbmRpbmdMYXlvdXQudmll
d0RpbWVuc2lvbiwgdGV4dHVyZUJpbmRpbmdMYXlvdXQubXVsdGlzYW1wbGVkIH0gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZUJpbmRp
bmdMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmlu
ZGluZ0xheW91dC5oCmluZGV4IGEyOWI5Y2YyZDc4ZTkyNWQwYmEwM2RjNjIzOGFlNzQ5ZjMwODBm
ZmYuLjI1NjZiZGQ3MDAxZDlhY2Y5NWNkMzdjMzllYzk1MzUyMzA5YWZhNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xheW91dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmluZGluZ0xh
eW91dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVUZXh0dXJlU2FtcGxlVHlwZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEaW1lbnNpb24uaD4KIApAQCAtNjQsMyArNjcsNSBA
QCBzdHJ1Y3QgVGV4dHVyZUJpbmRpbmdMYXlvdXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVkZjMxNjdiOWE2ZDIyYjIyZGE2YTg0ZDhmNGRjMzQ0OTE0OWIwYTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVy
ZURlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEZXNj
cmlwdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVGV4dHVyZURlc2NyaXB0b3ImIHRleHR1cmVEZXNj
cmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2Fz
dDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1cmVEZXNjcmlwdG9yKSk7CisgICAg
aWYgKCFiYXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBzaXpl
ID0gY29udmVydEZyb21CYWNraW5nKHRleHR1cmVEZXNjcmlwdG9yLnNpemUpOworICAgIGlmICgh
c2l6ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqYmFzZSksIFdURk1vdmUoKnNpemUpLCB0ZXh0dXJlRGVzY3JpcHRvci5taXBMZXZlbENv
dW50LCB0ZXh0dXJlRGVzY3JpcHRvci5zYW1wbGVDb3VudCwgdGV4dHVyZURlc2NyaXB0b3IuZGlt
ZW5zaW9uLCB0ZXh0dXJlRGVzY3JpcHRvci5mb3JtYXQsIHRleHR1cmVEZXNjcmlwdG9yLnVzYWdl
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVU
ZXh0dXJlRGVzY3JpcHRvci5oCmluZGV4IDMzMjIxN2JhNjEyNTJjMTQ4MDdiZTY0ODgwMjllMzVk
OGVjNTI1MjMuLjBiZTBkZmZhMDhmY2VhOWQxOWU1ZTgwZGQ0NThhMTlhMDJhNjE3YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3Jp
cHRvci5oCkBAIC0yNSw4ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVUV4dGVudDNELmgiCiAjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaD4KICNpbmNsdWRlIDxw
YWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVRleHR1cmVGb3JtYXQuaD4KQEAgLTk1LDMgKzk4LDUg
QEAgc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxY2M1NTFj
Yjc3MDUxNjk2ZmU3OWRiMDRlYjQ5YTQ5NDg0YjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmNwcApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5oIgorI2lu
Y2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29u
dmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVWaWV3RGVzY3JpcHRvciYgdGV4dHVyZVZpZXdE
ZXNjcmlwdG9yKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1cmVWaWV3RGVzY3JpcHRvcikp
OworICAgIGlmICghYmFzZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJl
dHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHRleHR1cmVWaWV3RGVzY3JpcHRvci5mb3JtYXQsIHRl
eHR1cmVWaWV3RGVzY3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVWaWV3RGVzY3JpcHRvci5hc3Bl
Y3QsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5iYXNlTWlwTGV2ZWwsIHRleHR1cmVWaWV3RGVzY3Jp
cHRvci5taXBMZXZlbENvdW50LCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuYmFzZUFycmF5TGF5ZXIs
IHRleHR1cmVWaWV3RGVzY3JpcHRvci5hcnJheUxheWVyQ291bnQgfSB9OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3IuaAppbmRleCBhODE3NDM1NWUxZDY5ZjMzNjgyOWY2NDIzZjAzMTIyZTk5ZmU4OWM1Li43
OTU0ZDdhODViODc3ZmI0ZDIzODA3MWJkZjU4MzhjMjJhOWIwMzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKICNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUludGVn
cmFsVHlwZXMuaD4KQEAgLTEwMiwzICsxMDQsNSBAQCBzdHJ1Y3QgVGV4dHVyZVZpZXdEZXNjcmlw
dG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJiMWJjZmFkMDQzODI3ZTk0NWIyNWQ0ZWEwMjUyN2M2NDBiOTY4YTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRh
dGlvbkVycm9yLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZhbGlkYXRpb25FcnJvci5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9y
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK1JlZlB0cjxQQUw6OldlYkdQVTo6
VmFsaWRhdGlvbkVycm9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJh
Y2tpbmcoY29uc3QgVmFsaWRhdGlvbkVycm9yJiB2YWxpZGF0aW9uRXJyb3IpCit7CisgICAgcmV0
dXJuIHsgUEFMOjpXZWJHUFU6OlZhbGlkYXRpb25FcnJvcjo6Y3JlYXRlKHZhbGlkYXRpb25FcnJv
ci5tZXNzYWdlKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVWYWxpZGF0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVWYWxpZGF0aW9uRXJyb3IuaAppbmRleCA0MjQ4MTAyZGY2ZjQwZmFkYWY4YWFmMDYxOWM1
ODIxNDVhNTk2ZjE2Li4yNjhlZTUxNTg3MDBkN2E0MjJiYThlZGU5YTNkZmI0YTE2ODY1MzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVy
cm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZhbGlkYXRpb25F
cnJvci5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CkBAIC00OSwzICs1Miw1IEBA
IHN0cnVjdCBWYWxpZGF0aW9uRXJyb3IgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTVlZDVkYjY5M2UwMzVkZWMwMDA3MDhhNTg0OGQwNTNjMDZmMzlmZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR1BVVmVydGV4QXR0cmlidXRlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJXZWJHUFVDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaD4KKworbmFt
ZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKKworc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6VmVy
dGV4QXR0cmlidXRlPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgVmVydGV4QXR0cmlidXRlJiB2ZXJ0ZXhBdHRyaWJ1dGUpCit7CisgICAgcmV0dXJu
IHsgeyB2ZXJ0ZXhBdHRyaWJ1dGUuZm9ybWF0LCB2ZXJ0ZXhBdHRyaWJ1dGUub2Zmc2V0LCB2ZXJ0
ZXhBdHRyaWJ1dGUuc2hhZGVyTG9jYXRpb24gfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhBdHRyaWJ1dGUuaAppbmRleCBmOTNmYmNkNjJj
MTI4OTA3M2M0YTk2NzFmYjJiNjYwNmRkMGRkMzUxLi5iMTNmOGM2YjRjNWM5YTFjYjc1NzlkYmUy
NzRkODUzZjA5N2U3MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUv
V2ViR1BVVmVydGV4QXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVZlcnRleEF0dHJpYnV0ZS5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVk
ZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVWZXJ0ZXhGb3JtYXQuaD4KIApAQCAtNjUsMyAr
NjgsNSBAQCBzdHJ1Y3QgVmVydGV4QXR0cmlidXRlIHsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg1NDgyZDA2NWFlYTVmOGI2NzJlNzQ2MTc4ZjZkOGNkZjIxYzcwNzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVy
dGV4QnVmZmVyTGF5b3V0LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViR1BVQ29udmVydEZyb21CYWNr
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4
QnVmZmVyTGF5b3V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CisKK3N0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4gQ29udmVydEZyb21CYWNraW5n
Q29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFZlcnRleEJ1ZmZlckxheW91dCYgdmVy
dGV4QnVmZmVyTGF5b3V0KQoreworICAgIFZlY3RvcjxQQUw6OldlYkdQVTo6VmVydGV4QXR0cmli
dXRlPiBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2
ZXJ0ZXhCdWZmZXJMYXlvdXQuYXR0cmlidXRlcy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0
byYgYmFja2luZ0F0dHJpYnV0ZSA6IHZlcnRleEJ1ZmZlckxheW91dC5hdHRyaWJ1dGVzKSB7Cisg
ICAgICAgIGF1dG8gYXR0cmlidXRlID0gY29udmVydEZyb21CYWNraW5nKGJhY2tpbmdBdHRyaWJ1
dGUpOworICAgICAgICBpZiAoIWF0dHJpYnV0ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIGF0dHJpYnV0ZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmF0dHJp
YnV0ZSkpOworICAgIH0KKworICAgIHJldHVybiB7IHsgdmVydGV4QnVmZmVyTGF5b3V0LmFycmF5
U3RyaWRlLCB2ZXJ0ZXhCdWZmZXJMYXlvdXQuc3RlcE1vZGUsIFdURk1vdmUoYXR0cmlidXRlcykg
fSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuaAppbmRleCAyMzEwMmRjZGIzNDQyNGI3YTgxYjVkZjIyMmZkY2Qw
NWQwMjM1OGUxLi40YTI4ZmUxM2MyNmUyMjVlMGM4ZWVhNWY2MzAxNWJjNDk1ODVjMGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4QnVmZmVyTGF5
b3V0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZl
ckxheW91dC5oCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgIldlYkdQVVZlcnRleEF0dHJpYnV0ZS5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVSW50
ZWdyYWxUeXBlcy5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVVmVydGV4
U3RlcE1vZGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02NiwzICs2OSw1IEBAIHN0
cnVjdCBWZXJ0ZXhCdWZmZXJMYXlvdXQgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpX
ZWJHUFUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMjQy
ODE3MjllZmNhZmM4OTI3OWE2NWE0MDM3Yzk5NTIwMDI4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuY3BwCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R1BVVmVydGV4U3RhdGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IldlYkdQVUNvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVZlcnRleFN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CisKK3N0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleFN0YXRlPiBDb252ZXJ0RnJv
bUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgVmVydGV4U3RhdGUmIHZl
cnRleFN0YXRlKQoreworICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBQcm9ncmFtbWFibGVTdGFnZSY+KHZlcnRleFN0YXRlKSk7CisgICAgaWYgKCFi
YXNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHN0ZDo6b3B0
aW9uYWw8UEFMOjpXZWJHUFU6OlZlcnRleEJ1ZmZlckxheW91dD4+IGJ1ZmZlcnM7CisgICAgYnVm
ZmVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZlcnRleFN0YXRlLmJ1ZmZlcnMuc2l6ZSgpKTsK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdCdWZmZXIgOiB2ZXJ0ZXhTdGF0ZS5idWZmZXJz
KSB7CisgICAgICAgIGlmIChiYWNraW5nQnVmZmVyKSB7CisgICAgICAgICAgICBhdXRvIGJ1ZmZl
ciA9IGNvbnZlcnRGcm9tQmFja2luZygqYmFja2luZ0J1ZmZlcik7CisgICAgICAgICAgICBpZiAo
IWJ1ZmZlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAg
ICAgYnVmZmVycy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqYnVmZmVyKSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgYnVmZmVycy51bmNoZWNrZWRBcHBlbmQoc3RkOjpudWxsb3B0KTsK
KyAgICB9CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKGJ1ZmZlcnMp
IH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
VmVydGV4U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhT
dGF0ZS5oCmluZGV4IDQ2ZmY4Yzc1NDNlYzAyYWEyMWQ2ZGVkN2FkOWUxZjE0ODIwMTFlNmQuLjM3
MGQyNDAzYjBjNjhiMjIwZWMwMDQ3YTNjOGVmMjI3YzVmMzVhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0ZXhTdGF0ZS5oCkBAIC0yNSw2ICsyNSw4IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSAi
V2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuaCIKICNpbmNsdWRlICJXZWJHUFVWZXJ0ZXhCdWZmZXJM
YXlvdXQuaCIKICNpbmNsdWRlIDxvcHRpb25hbD4KQEAgLTU4LDMgKzYwLDUgQEAgc3RydWN0IFZl
cnRleFN0YXRlIDogcHVibGljIFByb2dyYW1tYWJsZVN0YWdlIHsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdDo6V2ViR1BVCisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCA5MWQxZWFiODkwNTE4NGY4ZTAyMTNkMzlhZThkZGI1NDJjM2M4YmNhLi44ZTNh
ZDE5YzlmNTdhNWRmNDg2MDdiMGYzZjYzMzQ2OTAwMjUyMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTMx
NSw2ICszMTUsNzAgQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNw
cAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1dlYkdQVS9XZWJH
UFVCaW5kR3JvdXBEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBF
bnRyeS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RW50cnkuY3BwCitTaGFyZWQv
V2ViR1BVL1dlYkdQVUJsZW5kQ29tcG9uZW50LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCbGVu
ZFN0YXRlLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nLmNwcAorU2hhcmVk
L1dlYkdQVS9XZWJHUFVCdWZmZXJCaW5kaW5nTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJH
UFVCdWZmZXJEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDYW52YXNDb25maWd1
cmF0aW9uLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVDb2xvci5jcHAKK1NoYXJlZC9XZWJHUFUv
V2ViR1BVQ29sb3JUYXJnZXRTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1
ZmZlckRlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1hbmRFbmNvZGVyRGVz
Y3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcAor
U2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwCitTaGFyZWQvV2Vi
R1BVL1dlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVE
ZXB0aFN0ZW5jaWxTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRv
ci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVRXJyb3IuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQ
VUV4dGVudDNELmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVGcmFnbWVudFN0YXRlLmNwcAorU2hhcmVkL1dlYkdQ
VS9XZWJHUFVJbWFnZUNvcHlCdWZmZXIuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29w
eUV4dGVybmFsSW1hZ2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmUu
Y3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVUltYWdlQ29weVRleHR1cmVUYWdnZWQuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVUltYWdlRGF0YUxheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BV
TXVsdGlzYW1wbGVTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVU9yaWdpbjJELmNwcAorU2hhcmVkL1dlYkdQ
VS9XZWJHUFVPcmlnaW4zRC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVT3V0T2ZNZW1vcnlFcnJv
ci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAKK1No
YXJlZC9XZWJHUFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcAorU2hhcmVkL1dl
YkdQVS9XZWJHUFVQcmltaXRpdmVTdGF0ZS5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUHJvZ3Jh
bW1hYmxlU3RhZ2UuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAKK1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwCitTaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnQuY3BwCitTaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcAorU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVu
ZGVyUGFzc0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFt
cFdyaXRlcy5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9y
LmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnMuY3BwCitTaGFy
ZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0LmNwcAorU2hhcmVkL1dlYkdQVS9X
ZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU2hhZGVyTW9k
dWxlRGVzY3JpcHRvci5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcAor
U2hhcmVkL1dlYkdQVS9XZWJHUFVTdXBwb3J0ZWRGZWF0dXJlcy5jcHAKK1NoYXJlZC9XZWJHUFUv
V2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlQmlu
ZGluZ0xheW91dC5jcHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuY3Bw
CitTaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHAKK1NoYXJlZC9X
ZWJHUFUvV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcAorU2hhcmVkL1dlYkdQVS9XZWJHUFVWZXJ0
ZXhBdHRyaWJ1dGUuY3BwCitTaGFyZWQvV2ViR1BVL1dlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5j
cHAKK1NoYXJlZC9XZWJHUFUvV2ViR1BVVmVydGV4U3RhdGUuY3BwCisKIFNoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5jcHAKIAogU2hhcmVkL1hSL1hSRGV2aWNlSW5mby5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGJkOTcy
YTJiZWMyNWJlMjY3Zjk1ODFiZDBhZWMyMGZhZWRmNmI2NTAuLmI1OGI5YzU2NDUwODY3MTBiZmJj
MjkwYWI4OTQyZDYyOTgzZWFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNyw4ICs3LDE2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAw
LmNwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTAyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3Vy
Y2VzL1VuaWZpZWRTb3VyY2UxMDMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTA1LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDYuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTEwNy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMDkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1tLm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMS5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTItbW0ubW0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3MmYyODZlMmY3MjAwMTlkZjI3ZTNiNDBlNWY3ODAwN2Vj
OWViNDZhLi43NWNjMDczNzM5MDYxODdmMzJkODVmZmQ3Mzc4M2I0MmMyMWRkOTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5MSw2
ICszOTEsMTQgQEAKIAkJMUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzhFMkEzMjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCAqLzsgfTsK
IAkJMUNBOEI5NDUxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNBOEI5NDMxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5z
cGVjdG9yVUlQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VzLmggKi87IH07CisJCTFDQUVDQjY1Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTA5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQUVDQjVEMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAq
LzsgfTsKKwkJMUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNUUy
NzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovOyB9OworCQkxQ0FFQ0I2
NzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAg
LyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi87IH07CisJCTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNl
MTEwLmNwcCAqLzsgfTsKKwkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3Vy
Y2UxMDQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNBRUNCNjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICovOyB9Owor
CQkxQ0FFQ0I2QTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I2MjI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgKi87IH07CisJCTFDQUVDQjZCMjc0NjVB
RTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjYzMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTA2LmNwcCAqLzsgfTsKKwkJMUNBRUNCNkMyNzQ2NUFFNDAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMDcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBRUNCNjQyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDcuY3Bw
ICovOyB9OwogCQkxQ0I3NDY0RDI3NDM4MEM4MDBGMTk4NzQgLyogV2ViR1BVRG93bmNhc3RDb252
ZXJ0VG9CYWNraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNCNzQ2NEIyNzQzODBDODAwRjE5ODc0IC8qIFdlYkdQVURvd25jYXN0Q29u
dmVydFRvQmFja2luZ0NvbnRleHQuaCAqLzsgfTsKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgx
IC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZD
NTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyog
V2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OwpAQCAtMjk3NywxMCArMjk4NSw4MSBAQAog
CQkxQzk4QzA5MzI3NDRCRDlCMDAyQ0NCNzggLyogUmVtb3RlQ29tcHV0ZVBhc3NFbmNvZGVyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNvbXB1dGVQYXNzRW5jb2Rlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5OEMwOTQyNzQ0QkQ5QjAwMkNDQjc4IC8qIFJl
bW90ZUdQVS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVHUFUubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOThDMDk1Mjc0NEJEOUIwMDJDQ0I3OCAvKiBSZW1vdGVD
b21tYW5kRW5jb2Rlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDb21tYW5kRW5jb2Rlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTYyNzQ2MjEwRTAw
MkNDQjc4IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMDk4Mjc0NjI2NzgwMDJDQ0I3OCAvKiBXZWJHUFVWYWxpZGF0aW9uRXJyb3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVVmFsaWRhdGlv
bkVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOTkyNzQ2MjY3
ODAwMkNDQjc4IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxlRGVzY3JpcHRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDlBMjc0NjI2NzgwMDJDQ0I3
OCAvKiBXZWJHUFVDYW52YXNDb25maWd1cmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5QjI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJp
bWl0aXZlU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVUHJpbWl0aXZlU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4
QzA5QzI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzA5RDI3NDYyNjc4MDAyQ0NC
NzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwOUUyNzQ2MjY3OTAwMkNDQjc4IC8qIFdl
YkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMDlGMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJH
UFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBBMDI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVT3JpZ2lu
M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVT3JpZ2lu
M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBMTI3NDYyNjc5MDAy
Q0NCNzggLyogV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEEyMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDOThDMEEzMjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZURh
dGFMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BV
SW1hZ2VEYXRhTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMw
QTUyNzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVyQmluZGluZ0xheW91
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEE2Mjc0NjI2N0EwMDJD
Q0I3OCAvKiBXZWJHUFVCbGVuZFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVUJsZW5kU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBBNzI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVy
UGFzc0Rlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBB
ODI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyQnVu
ZGxlRW5jb2RlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Qzk4QzBBOTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCdWZmZXJEZXNjcmlwdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQUEyNzQ2MjY3QjAwMkND
Qjc4IC8qIFdlYkdQVVN1cHBvcnRlZExpbWl0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQzk4QzBBQjI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmlu
ZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCdWZm
ZXJCaW5kaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQUMyNzQ2
MjY3QjAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEJ1ZmZlckxheW91dC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBBRDI3NDYyNjdCMDAyQ0NCNzggLyog
V2ViR1BVSW1hZ2VDb3B5QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDOThDMEFFMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVUZXh0dXJl
RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEIwMjc0
NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBFbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEIxMjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dERlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCMjI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVVGV4
dHVyZUJpbmRpbmdMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVVGV4dHVyZUJpbmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzBCMzI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb2xvclRh
cmdldFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjQyNzQ2
MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEI1Mjc0NjI2N0QwMDJD
Q0I3OCAvKiBXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQjYyNzQ2MjY3RDAwMkNDQjc4
IC8qIFdlYkdQVVN0b3JhZ2VUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTdG9yYWdlVGV4dHVyZUJpbmRpbmdMYXlvdXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCNzI3NDYyNjdEMDAyQ0NC
NzggLyogV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2FtcGxlckJpbmRpbmdMYXlvdXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCODI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BV
RGVwdGhTdGVuY2lsU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViR1BVRGVwdGhTdGVuY2lsU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBCOTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVRXh0ZW50M0QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRXh0ZW50M0QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBCQTI3NDYyNjdEMDAyQ0NCNzggLyogV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkIyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQ
VVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkMyNzQ2MjY3RTAwMkND
Qjc4IC8qIFdlYkdQVUZyYWdtZW50U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViR1BVRnJhZ21lbnRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDOThDMEJEMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kRW5jb2Rl
ckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUM5OEMwQkUyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUNvbG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQkYyNzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVU9y
aWdpbjJELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVU9y
aWdpbjJELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzAyNzQ2MjY3
RTAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUM5OEMwQzEyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVT3V0T2ZNZW1vcnlFcnJv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEMyMjc0NjI2N0YwMDJD
Q0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRlUGFzc1RpbWVzdGFtcFdyaXRl
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEMzMjc0NjI2N0YwMDJD
Q0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBDNDI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVRXh0ZXJu
YWxUZXh0dXJlQmluZGluZ0xheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQzUyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUJs
ZW5kQ29tcG9uZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdQVUJsZW5kQ29tcG9uZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5
OEMwQzYyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUV4dGVybmFsSW1hZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVSW1hZ2VDb3B5RXh0
ZXJuYWxJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEM3Mjc0
NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDODI3NDYy
NjgwMDAyQ0NCNzggLyogV2ViR1BVQ29tcGlsYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVUNvbXBpbGF0aW9uTWVzc2FnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEM5Mjc0NjI2ODAwMDJDQ0I3OCAvKiBX
ZWJHUFVNdWx0aXNhbXBsZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVU11bHRpc2FtcGxlU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQzk4QzBDQTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVTdGVuY2ls
RmFjZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0IyNzQ2
MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDQzI3NDYyNjgwMDAyQ0NC
NzggLyogV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQzk4QzBDRDI3NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVVmVydGV4
U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVVmVy
dGV4U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBDRTI3NDYy
NjgxMDAyQ0NCNzggLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwQ0YyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQ
VUJpbmRHcm91cExheW91dEVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUM5OEMwRDAyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEF0dHJp
YnV0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVWZXJ0
ZXhBdHRyaWJ1dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzk4QzBEMTI3
NDYyNjgxMDAyQ0NCNzggLyogV2ViR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9u
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQyMjc0NjI2ODEwMDJD
Q0I3OCAvKiBXZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM5OEMwRDMyNzQ2MjY4MjAwMkNDQjc4IC8qIFdl
YkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUM5OEMwRDUyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBpcGVsaW5l
RGVzY3JpcHRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJH
UFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQzk4QzBENjI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0
YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVS
ZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM5OEMwRDcyNzQ2MjY4MjAwMkNDQjc4IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVRGV2aWNlRGVzY3Jp
cHRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDOThDMEQ4Mjc0NjI2ODIw
MDJDQ0I3OCAvKiBXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUVCQTVCMjA4N0U3NEUwMDA1NDQyOSAvKiBO
YXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbTsgcGF0aCA9IGlvcy9OYXRpdmVXZWJN
b3VzZUV2ZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4QjkzNTEy
N0M3NzRFMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclVJUHJveHlNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQThCOTQzMTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNB
OEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2Fn
ZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjVE
Mjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVuaWZpZWRTb3VyY2UxMDkuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDkuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRT
b3VyY2UxMTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExMS5jcHA7IHBh
dGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExMS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I1
RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMTA4LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQy
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTA4LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTAuY3BwOyBw
YXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMTAuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNC
NjEyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVW5pZmllZFNvdXJjZTEwNC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQkxQ0FFQ0I2MjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTEwNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA1LmNwcDsg
cGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQyL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTA1LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFDQUVD
QjYzMjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UxMDYuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktp
dDIvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDYuY3BwIjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUNBRUNCNjQyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMDcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEwNy5jcHA7
IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNv
dXJjZTEwNy5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0I3
NDYxQTI3NDM2RUU0MDBGMTk4NzQgLyogUmVtb3RlVGV4dHVyZVZpZXdQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVUZXh0dXJlVmlld1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDQjc0NjFCMjc0MzZFRTQwMEYxOTg3NCAvKiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVCaW5kR3JvdXBMYXlvdXRQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0I3NDYxQzI3NDM2RUU1MDBGMTk4NzQgLyogUmVt
b3RlQ29tbWFuZEJ1ZmZlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1h
bmRCdWZmZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDAyLDcx
ICs3NDgxLDEzNCBAQAogCQkxQ0I3NDY0NTI3NDM3OUYxMDBGMTk4NzQgLyogV2ViR1BVICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzk4QzA5NjI3NDYy
MTBFMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNC
NzQ2OEIyNzQzOUNCNzAwRjE5ODc0IC8qIFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuaCAqLywK
KwkJCQkxQzk4QzBCMDI3NDYyNjdDMDAyQ0NCNzggLyogV2ViR1BVQmluZEdyb3VwRW50cnkuY3Bw
ICovLAogCQkJCTFDQjc0NjhBMjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVCaW5kR3JvdXBFbnRy
eS5oICovLAorCQkJCTFDOThDMEIxMjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY2QTI3NDM5Q0FGMDBGMTk4NzQgLyog
V2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMENGMjc0NjI2
ODEwMDJDQ0I3OCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRFbnRyeS5jcHAgKi8sCiAJCQkJMUNC
NzQ2OTUyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVUJpbmRHcm91cExheW91dEVudHJ5LmggKi8s
CisJCQkJMUM5OEMwQzUyNzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUJsZW5kQ29tcG9uZW50LmNw
cCAqLywKIAkJCQkxQ0I3NDY3ODI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVQmxlbmRDb21wb25l
bnQuaCAqLywKKwkJCQkxQzk4QzBBNjI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVQmxlbmRTdGF0
ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2N0MyNzQzOUNCMzAwRjE5ODc0IC8qIFdlYkdQVUJsZW5kU3Rh
dGUuaCAqLywKKwkJCQkxQzk4QzBBQjI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVQnVmZmVyQmlu
ZGluZy5jcHAgKi8sCiAJCQkJMUNCNzQ2OTAyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVUJ1ZmZl
ckJpbmRpbmcuaCAqLywKKwkJCQkxQzk4QzBBNTI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVQnVm
ZmVyQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2OTMyNzQzOUNCOTAwRjE5ODc0IC8q
IFdlYkdQVUJ1ZmZlckJpbmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBBOTI3NDYyNjdCMDAy
Q0NCNzggLyogV2ViR1BVQnVmZmVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2NjYyNzQz
OUNBRTAwRjE5ODc0IC8qIFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA5
QTI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVQ2FudmFzQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJ
CQkJMUNCNzQ2N0YyNzQzOUNCNDAwRjE5ODc0IC8qIFdlYkdQVUNhbnZhc0NvbmZpZ3VyYXRpb24u
aCAqLywKKwkJCQkxQzk4QzBCRTI3NDYyNjdFMDAyQ0NCNzggLyogV2ViR1BVQ29sb3IuY3BwICov
LAogCQkJCTFDQjc0Njc3Mjc0MzlDQjIwMEYxOTg3NCAvKiBXZWJHUFVDb2xvci5oICovLAorCQkJ
CTFDOThDMEIzMjc0NjI2N0MwMDJDQ0I3OCAvKiBXZWJHUFVDb2xvclRhcmdldFN0YXRlLmNwcCAq
LywKIAkJCQkxQ0I3NDY3OTI3NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVQ29sb3JUYXJnZXRTdGF0
ZS5oICovLAorCQkJCTFDOThDMEEyMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2ODMyNzQzOUNCNTAwRjE5ODc0IC8qIFdl
YkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQkQyNzQ2MjY3RTAw
MkNDQjc4IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNC
NzQ2OTIyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5o
ICovLAorCQkJCTFDOThDMEM4Mjc0NjI2ODAwMDJDQ0I3OCAvKiBXZWJHUFVDb21waWxhdGlvbk1l
c3NhZ2UuY3BwICovLAogCQkJCTFDOThDMDdCMjc0NEI0MTYwMDJDQ0I3OCAvKiBXZWJHUFVDb21w
aWxhdGlvbk1lc3NhZ2UuaCAqLywKKwkJCQkxQzk4QzBEMjI3NDYyNjgxMDAyQ0NCNzggLyogV2Vi
R1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY5NzI3NDM5Q0JBMDBG
MTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQzIy
NzQ2MjY3RjAwMkNDQjc4IC8qIFdlYkdQVUNvbXB1dGVQYXNzVGltZXN0YW1wV3JpdGVzLmNwcCAq
LywKIAkJCQkxQ0I3NDY4OTI3NDM5Q0I2MDBGMTk4NzQgLyogV2ViR1BVQ29tcHV0ZVBhc3NUaW1l
c3RhbXBXcml0ZXMuaCAqLywKKwkJCQkxQzk4QzBDNzI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2NzYyNzQzOUNCMTAw
RjE5ODc0IC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuaCAqLywKIAkJCQkxQ0I3
NDZBNDI3NDNBREJBMDBGMTk4NzQgLyogV2ViR1BVQ29udmVydEZyb21CYWNraW5nQ29udGV4dC5o
ICovLAogCQkJCTFDQjc0NjQ3Mjc0MzdBN0YwMEYxOTg3NCAvKiBXZWJHUFVDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC5oICovLAorCQkJCTFDOThDMEI4Mjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVE
ZXB0aFN0ZW5jaWxTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NzEyNzQzOUNCMDAwRjE5ODc0IC8q
IFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlLmggKi8sCisJCQkJMUM5OEMwRDcyNzQ2MjY4MjAwMkND
Qjc4IC8qIFdlYkdQVURldmljZURlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0Njg1Mjc0MzlD
QjUwMEYxOTg3NCAvKiBXZWJHUFVEZXZpY2VEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwQzAy
NzQ2MjY3RTAwMkNDQjc4IC8qIFdlYkdQVUVycm9yLmNwcCAqLywKIAkJCQkxQzk4QzA3RTI3NDRC
OURCMDAyQ0NCNzggLyogV2ViR1BVRXJyb3IuaCAqLywKKwkJCQkxQzk4QzBCOTI3NDYyNjdEMDAy
Q0NCNzggLyogV2ViR1BVRXh0ZW50M0QuY3BwICovLAogCQkJCTFDQjc0Njg3Mjc0MzlDQjYwMEYx
OTg3NCAvKiBXZWJHUFVFeHRlbnQzRC5oICovLAorCQkJCTFDOThDMEM0Mjc0NjI2N0YwMDJDQ0I3
OCAvKiBXZWJHUFVFeHRlcm5hbFRleHR1cmVCaW5kaW5nTGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3
NDY2RjI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlQmluZGluZ0xheW91
dC5oICovLAorCQkJCTFDOThDMEJBMjc0NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVFeHRlcm5hbFRl
eHR1cmVEZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4NjI3NDM5Q0I1MDBGMTk4NzQgLyog
V2ViR1BVRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEJDMjc0NjI2
N0UwMDJDQ0I3OCAvKiBXZWJHUFVGcmFnbWVudFN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY3QTI3
NDM5Q0IyMDBGMTk4NzQgLyogV2ViR1BVRnJhZ21lbnRTdGF0ZS5oICovLAogCQkJCTFDQjc0NjQ5
Mjc0MzdGQzUwMEYxOTg3NCAvKiBXZWJHUFVJZGVudGlmaWVyLmggKi8sCisJCQkJMUM5OEMwQUQy
NzQ2MjY3QjAwMkNDQjc4IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5jcHAgKi8sCiAJCQkJMUNC
NzQ2N0QyNzQzOUNCMzAwRjE5ODc0IC8qIFdlYkdQVUltYWdlQ29weUJ1ZmZlci5oICovLAorCQkJ
CTFDOThDMEM2Mjc0NjI2N0YwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlFeHRlcm5hbEltYWdl
LmNwcCAqLywKIAkJCQkxQ0I3NDY2ODI3NDM5Q0FFMDBGMTk4NzQgLyogV2ViR1BVSW1hZ2VDb3B5
RXh0ZXJuYWxJbWFnZS5oICovLAorCQkJCTFDOThDMENFMjc0NjI2ODEwMDJDQ0I3OCAvKiBXZWJH
UFVJbWFnZUNvcHlUZXh0dXJlLmNwcCAqLywKIAkJCQkxQ0I3NDY5QjI3NDM5Q0JCMDBGMTk4NzQg
LyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZS5oICovLAorCQkJCTFDOThDMDlEMjc0NjI2NzgwMDJD
Q0I3OCAvKiBXZWJHUFVJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkLmNwcCAqLywKIAkJCQkxQ0I3NDY3
NDI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVSW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZC5oICovLAor
CQkJCTFDOThDMEEzMjc0NjI2N0EwMDJDQ0I3OCAvKiBXZWJHUFVJbWFnZURhdGFMYXlvdXQuY3Bw
ICovLAogCQkJCTFDQjc0NjlGMjc0MzlDQkMwMEYxOTg3NCAvKiBXZWJHUFVJbWFnZURhdGFMYXlv
dXQuaCAqLywKKwkJCQkxQzk4QzBDOTI3NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVTXVsdGlzYW1w
bGVTdGF0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NjkyNzQzOUNBRTAwRjE5ODc0IC8qIFdlYkdQVU11
bHRpc2FtcGxlU3RhdGUuaCAqLywKKwkJCQkxQzk4QzBEODI3NDYyNjgyMDAyQ0NCNzggLyogV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwICovLAogCQkJCTFDQjc0NjZDMjc0MzlDQUYwMEYx
OTg3NCAvKiBXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oICovLAorCQkJCTFDOThDMEJGMjc0
NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVPcmlnaW4yRC5jcHAgKi8sCiAJCQkJMUNCNzQ2NzAyNzQz
OUNCMDAwRjE5ODc0IC8qIFdlYkdQVU9yaWdpbjJELmggKi8sCisJCQkJMUM5OEMwQTAyNzQ2MjY3
OTAwMkNDQjc4IC8qIFdlYkdQVU9yaWdpbjNELmNwcCAqLywKIAkJCQkxQ0I3NDZBMDI3NDM5Q0JE
MDBGMTk4NzQgLyogV2ViR1BVT3JpZ2luM0QuaCAqLywKKwkJCQkxQzk4QzBDMTI3NDYyNjdGMDAy
Q0NCNzggLyogV2ViR1BVT3V0T2ZNZW1vcnlFcnJvci5jcHAgKi8sCiAJCQkJMUM5OEMwN0MyNzQ0
Qjk5MTAwMkNDQjc4IC8qIFdlYkdQVU91dE9mTWVtb3J5RXJyb3IuaCAqLywKKwkJCQkxQzk4QzA5
RjI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAgKi8s
CiAJCQkJMUNCNzQ2OTQyNzQzOUNCOTAwRjE5ODc0IC8qIFdlYkdQVVBpcGVsaW5lRGVzY3JpcHRv
ckJhc2UuaCAqLywKKwkJCQkxQzk4QzBCNTI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVUGlwZWxp
bmVMYXlvdXREZXNjcmlwdG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY5ODI3NDM5Q0JCMDBGMTk4NzQg
LyogV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwOUIyNzQ2
MjY3ODAwMkNDQjc4IC8qIFdlYkdQVVByaW1pdGl2ZVN0YXRlLmNwcCAqLywKIAkJCQkxQ0I3NDY2
RDI3NDM5Q0FGMDBGMTk4NzQgLyogV2ViR1BVUHJpbWl0aXZlU3RhdGUuaCAqLywKKwkJCQkxQzk4
QzA5QzI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVUHJvZ3JhbW1hYmxlU3RhZ2UuY3BwICovLAog
CQkJCTFDQjc0Njg4Mjc0MzlDQjYwMEYxOTg3NCAvKiBXZWJHUFVQcm9ncmFtbWFibGVTdGFnZS5o
ICovLAorCQkJCTFDOThDMEExMjc0NjI2NzkwMDJDQ0I3OCAvKiBXZWJHUFVRdWVyeVNldERlc2Ny
aXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjlFMjc0MzlDQkMwMEYxOTg3NCAvKiBXZWJHUFVRdWVy
eVNldERlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBCNDI3NDYyNjdDMDAyQ0NCNzggLyogV2Vi
R1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2ODIyNzQzOUNCNDAw
RjE5ODc0IC8qIFdlYkdQVVJlbmRlckJ1bmRsZURlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBB
ODI3NDYyNjdBMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3Iu
Y3BwICovLAogCQkJCTFDQjc0NjdCMjc0MzlDQjMwMEYxOTg3NCAvKiBXZWJHUFVSZW5kZXJCdW5k
bGVFbmNvZGVyRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMEQ2Mjc0NjI2ODIwMDJDQ0I3OCAv
KiBXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmNwcCAqLywKIAkJCQkxQ0I3NDY5RDI3
NDM5Q0JDMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFzc0NvbG9yQXR0YWNobWVudC5oICovLAor
CQkJCTFDOThDMEJCMjc0NjI2N0UwMDJDQ0I3OCAvKiBXZWJHUFVSZW5kZXJQYXNzRGVwdGhTdGVu
Y2lsQXR0YWNobWVudC5jcHAgKi8sCiAJCQkJMUNCNzQ2N0UyNzQzOUNCMzAwRjE5ODc0IC8qIFdl
YkdQVVJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRhY2htZW50LmggKi8sCisJCQkJMUM5OEMwQTcy
NzQ2MjY3QTAwMkNDQjc4IC8qIFdlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCAqLywKIAkJ
CQkxQ0I3NDY2RTI3NDM5Q0IwMDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3Iu
aCAqLywKKwkJCQkxQzk4QzBDMzI3NDYyNjdGMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGFzc0xh
eW91dC5jcHAgKi8sCiAJCQkJMUNCNzQ2OTEyNzQzOUNCODAwRjE5ODc0IC8qIFdlYkdQVVJlbmRl
clBhc3NMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzA5RTI3NDYyNjc5MDAyQ0NCNzggLyogV2ViR1BV
UmVuZGVyUGFzc1RpbWVzdGFtcFdyaXRlcy5jcHAgKi8sCiAJCQkJMUNCNzQ2OTkyNzQzOUNCQjAw
RjE5ODc0IC8qIFdlYkdQVVJlbmRlclBhc3NUaW1lc3RhbXBXcml0ZXMuaCAqLywKKwkJCQkxQzk4
QzBENTI3NDYyNjgyMDAyQ0NCNzggLyogV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNw
cCAqLywKIAkJCQkxQ0I3NDY4RTI3NDM5Q0I4MDBGMTk4NzQgLyogV2ViR1BVUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yLmggKi8sCisJCQkJMUM5OEMwRDEyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQ
VVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5jcHAgKi8sCiAJCQkJMUNCNzQ2OEMyNzQzOUNCNzAwRjE5
ODc0IC8qIFdlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oICovLAorCQkJCTFDOThDMEI3Mjc0
NjI2N0QwMDJDQ0I3OCAvKiBXZWJHUFVTYW1wbGVyQmluZGluZ0xheW91dC5jcHAgKi8sCiAJCQkJ
MUNCNzQ2NjcyNzQzOUNBRTAwRjE5ODc0IC8qIFdlYkdQVVNhbXBsZXJCaW5kaW5nTGF5b3V0Lmgg
Ki8sCisJCQkJMUM5OEMwQ0MyNzQ2MjY4MDAwMkNDQjc4IC8qIFdlYkdQVVNhbXBsZXJEZXNjcmlw
dG9yLmNwcCAqLywKIAkJCQkxQ0I3NDY4RDI3NDM5Q0I3MDBGMTk4NzQgLyogV2ViR1BVU2FtcGxl
ckRlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzA5OTI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BV
U2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jcHAgKi8sCiAJCQkJMUNCNzQ2NkIyNzQzOUNBRjAwRjE5
ODc0IC8qIFdlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuaCAqLywKKwkJCQkxQzk4QzBDQTI3
NDYyNjgwMDAyQ0NCNzggLyogV2ViR1BVU3RlbmNpbEZhY2VTdGF0ZS5jcHAgKi8sCiAJCQkJMUNC
NzQ2NzMyNzQzOUNCMTAwRjE5ODc0IC8qIFdlYkdQVVN0ZW5jaWxGYWNlU3RhdGUuaCAqLywKKwkJ
CQkxQzk4QzBCNjI3NDYyNjdEMDAyQ0NCNzggLyogV2ViR1BVU3RvcmFnZVRleHR1cmVCaW5kaW5n
TGF5b3V0LmNwcCAqLywKIAkJCQkxQ0I3NDY5NjI3NDM5Q0JBMDBGMTk4NzQgLyogV2ViR1BVU3Rv
cmFnZVRleHR1cmVCaW5kaW5nTGF5b3V0LmggKi8sCisJCQkJMUM5OEMwRDMyNzQ2MjY4MjAwMkND
Qjc4IC8qIFdlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmNwcCAqLywKIAkJCQkxQzk4QzA3OTI3NDRB
MUNDMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCAqLywKKwkJCQkxQzk4QzBB
QTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmNwcCAqLywKIAkJCQkx
Qzk4QzA3QTI3NDRBMjA1MDAyQ0NCNzggLyogV2ViR1BVU3VwcG9ydGVkTGltaXRzLmggKi8sCisJ
CQkJMUM5OEMwQjIyNzQ2MjY3QzAwMkNDQjc4IC8qIFdlYkdQVVRleHR1cmVCaW5kaW5nTGF5b3V0
LmNwcCAqLywKIAkJCQkxQ0I3NDY3NTI3NDM5Q0IxMDBGMTk4NzQgLyogV2ViR1BVVGV4dHVyZUJp
bmRpbmdMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBBRTI3NDYyNjdCMDAyQ0NCNzggLyogV2ViR1BV
VGV4dHVyZURlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0NjgxMjc0MzlDQjQwMEYxOTg3NCAv
KiBXZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oICovLAorCQkJCTFDOThDMENCMjc0NjI2ODAwMDJD
Q0I3OCAvKiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwICovLAogCQkJCTFDQjc0Njgw
Mjc0MzlDQjQwMEYxOTg3NCAvKiBXZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuaCAqLywKKwkJ
CQkxQzk4QzA5ODI3NDYyNjc4MDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9yLmNwcCAq
LywKIAkJCQkxQzk4QzA3RDI3NDRCOUI3MDAyQ0NCNzggLyogV2ViR1BVVmFsaWRhdGlvbkVycm9y
LmggKi8sCisJCQkJMUM5OEMwRDAyNzQ2MjY4MTAwMkNDQjc4IC8qIFdlYkdQVVZlcnRleEF0dHJp
YnV0ZS5jcHAgKi8sCiAJCQkJMUNCNzQ2NzIyNzQzOUNCMDAwRjE5ODc0IC8qIFdlYkdQVVZlcnRl
eEF0dHJpYnV0ZS5oICovLAorCQkJCTFDOThDMEFDMjc0NjI2N0IwMDJDQ0I3OCAvKiBXZWJHUFVW
ZXJ0ZXhCdWZmZXJMYXlvdXQuY3BwICovLAogCQkJCTFDQjc0NjhGMjc0MzlDQjgwMEYxOTg3NCAv
KiBXZWJHUFVWZXJ0ZXhCdWZmZXJMYXlvdXQuaCAqLywKKwkJCQkxQzk4QzBDRDI3NDYyNjgxMDAy
Q0NCNzggLyogV2ViR1BVVmVydGV4U3RhdGUuY3BwICovLAogCQkJCTFDQjc0NjlBMjc0MzlDQkIw
MEYxOTg3NCAvKiBXZWJHUFVWZXJ0ZXhTdGF0ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJH
UFU7CkBAIC03ODU2LDYgKzc5OTgsMTQgQEAKIAkJCQkxQzU2NTU3QzI3NDVDNUEwMDA2MzAwQUYg
LyogVW5pZmllZFNvdXJjZTEwMS5jcHAgKi8sCiAJCQkJMUM1NjU1N0QyNzQ1QzVBMTAwNjMwMEFG
IC8qIFVuaWZpZWRTb3VyY2UxMDIuY3BwICovLAogCQkJCTFDNTY1NTdFMjc0NUM1QTEwMDYzMDBB
RiAvKiBVbmlmaWVkU291cmNlMTAzLmNwcCAqLywKKwkJCQkxQ0FFQ0I2MTI3NDY1QUUzMDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTEwNC5jcHAgKi8sCisJCQkJMUNBRUNCNjIyNzQ2NUFFNDAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDUuY3BwICovLAorCQkJCTFDQUVDQjYzMjc0NjVBRTQwMEFC
NzhEMCAvKiBVbmlmaWVkU291cmNlMTA2LmNwcCAqLywKKwkJCQkxQ0FFQ0I2NDI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgKi8sCisJCQkJMUNBRUNCNUYyNzQ2NUFFMzAw
QUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDguY3BwICovLAorCQkJCTFDQUVDQjVEMjc0NjVBRTMw
MEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA5LmNwcCAqLywKKwkJCQkxQ0FFQ0I2MDI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgKi8sCisJCQkJMUNBRUNCNUUyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAi
dW5pZmllZC1zb3VyY2VzIjsKIAkJCXBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi91bmlm
aWVkLXNvdXJjZXMiOwpAQCAtMTQ4OTAsNiArMTUwNDAsMTQgQEAKIAkJCQkxQzU2NTU3RjI3NDVD
NUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QzU2NTU4MDI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQzU2NTU4MTI3NDVDNUExMDA2MzAwQUYgLyogVW5pZmllZFNvdXJjZTEwMy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2OTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmll
ZFNvdXJjZTEwNC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2QTI3NDY1QUU0MDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTEwNS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2QjI3
NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQ0FFQ0I2QzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwNy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQ0FFQ0I2NzI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEw
OC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQ0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9tLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkx
QjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>