<?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>191911</bug_id>
          
          <creation_ts>2018-11-22 10:54:21 -0800</creation_ts>
          <short_desc>Implement WebGPUQueue and device.getQueue()</short_desc>
          <delta_ts>2018-11-26 02:58:31 -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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1480988</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-22 10:54:21 -0800</bug_when>
    <thetext>Implement WebGPUQueue and device.getQueue()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480989</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-22 10:55:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/46214871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480993</commentid>
    <comment_count>2</comment_count>
      <attachid>355478</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-22 11:04:44 -0800</bug_when>
    <thetext>Created attachment 355478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480995</commentid>
    <comment_count>3</comment_count>
      <attachid>355478</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-11-22 11:18:15 -0800</bug_when>
    <thetext>Comment on attachment 355478
Patch

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

&gt; Source/WebCore/Modules/webgpu/WebGPUQueue.cpp:54
&gt; +        gpuBuffers.append(buffer-&gt;commandBuffer());

This could use Vector::map().

&gt; Source/WebCore/Modules/webgpu/WebGPUQueue.idl:30
&gt; +    ImplementationLacksVTable

Is this necessary?

&gt; Source/WebCore/platform/graphics/gpu/cocoa/GPUQueueMetal.mm:59
&gt; +        LOG(WebGPU, &quot;GPUQueue::create(): Unable to create MTLCommandQueue.&quot;);

So much better.

&gt; LayoutTests/webgpu/queue-creation.html:15
&gt; +    const swapChain = canvas.getContext(&quot;webgpu&quot;);

Remove the canvas variable and do it in a single statement.

&gt; LayoutTests/webgpu/queue-creation.html:29
&gt; +}, &quot;getQueue() on WebGPUDevice&quot;);

I would put a full stop at the end of all those assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481006</commentid>
    <comment_count>4</comment_count>
      <attachid>355482</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-22 12:24:46 -0800</bug_when>
    <thetext>Created attachment 355482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481011</commentid>
    <comment_count>5</comment_count>
      <attachid>355483</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-22 12:48:27 -0800</bug_when>
    <thetext>Created attachment 355483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481018</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-22 13:18:31 -0800</bug_when>
    <thetext>Committed r238451: &lt;https://trac.webkit.org/changeset/238451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481196</commentid>
    <comment_count>7</comment_count>
      <attachid>355478</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-11-23 14:04:32 -0800</bug_when>
    <thetext>Comment on attachment 355478
Patch

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

Sorry for the post landing review.

&gt; Source/WebCore/Modules/webgpu/WebGPUDevice.idl:42
&gt;      WebGPUQueue getQueue();

Should this actually return a WebGPUQueue? since it can return null in some circumstances (I don&apos;t think this would actually effect code gen right now, but might in the future).

&gt;&gt; Source/WebCore/Modules/webgpu/WebGPUQueue.cpp:54
&gt;&gt; +    Vector&lt;Ref&lt;const GPUCommandBuffer&gt;&gt; gpuBuffers { buffers.size() };
&gt;&gt; +    for (const auto&amp; buffer : buffers)
&gt;&gt; +        gpuBuffers.append(buffer-&gt;commandBuffer());
&gt; 
&gt; This could use Vector::map().

This way of initialing gpuBuffers is a little less efficient than it could be. Instead, the preferred way is:

Vector&lt;Ref&lt;const GPUCommandBuffer&gt;&gt; gpuBuffers;
gpuBuffers.reserveInitialCapacity(buffers.size());
for (const auto&amp; buffer : buffers)
    gpuBuffers.appendUnchecked(buffer-&gt;commandBuffer());

This avoids unnecessary double construction of all the Ref&lt;const GPUCommandBuffer&gt;s in gpuBuffers (by doing setting the capacity rather than the size), and appendUnchecked avoids a few capacity checks.

&gt; LayoutTests/webgpu/queue-creation.html:27
&gt; +    queue.label = &quot;Example label&quot;;

Might be good to test what the default label is before setting it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481338</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-24 20:34:28 -0800</bug_when>
    <thetext>This test is failing a lot in EWS (see https://webkit-queues.webkit.org/results/10135967 for example)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481462</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-25 22:18:39 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #8)
&gt; This test is failing a lot in EWS (see
&gt; https://webkit-queues.webkit.org/results/10135967 for example)...
--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/webgpu/queue-creation-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/webgpu/queue-creation-actual.txt
@@ -1,3 +1,3 @@
 
-PASS getQueue() on WebGPUDevice 
+PASS getQueue() on WebGPUDevice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481465</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-25 22:55:44 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #9)
&gt; (In reply to Tim Horton from comment #8)

I went ahead and just rebaselined the test in https://trac.webkit.org/changeset/238487/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355478</attachid>
            <date>2018-11-22 11:04:44 -0800</date>
            <delta_ts>2018-11-22 11:18:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191911-20181123060443.patch</filename>
            <type>text/plain</type>
            <size>26508</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1MTYyYzgwYWM1Y2Fl
Njg4MDIzYzVmMDcyNGUwNTk0NTM0ZmZhYy4uNmY5YmE1NjMzYjFlZmQ0YjkyMjE3YzYyZWU5YmM5
YjQ2MmJlMzRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE4LTExLTIyICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR1BVUXVl
dWUgYW5kIGRldmljZS5nZXRRdWV1ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTE5MTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MjE0ODcx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBXZWJHUFVEZXZpY2U6OmdldFF1ZXVlKCksIHdoaWNoIGNyZWF0ZXMgYSBXZWJHUFVRdWV1
ZQorICAgICAgICBpbnN0YW5jZSBpZiBuZWNlc3NhcnkuIEFsc28gbGluayBXZWJHUFVRdWV1ZSB0
byB0aGUgZXhpc3RpbmcKKyAgICAgICAgR1BVUXVldWUgb2JqZWN0LCBhbmQgZXhwb3NlIHRoZSBs
YWJlbCBJREwgcHJvcGVydHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiBzb21l
IHdvcmsgZnJvbSBKdXN0aW4gRmFuLgorCisgICAgICAgIFRlc3Q6IHdlYmdwdS9xdWV1ZS1jcmVh
dGlvbi5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgICAgIE5ldyBmaWxlcy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUNvbW1hbmRCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVUNvbW1hbmRCdWZmZXI6
OmNvbW1hbmRCdWZmZXIgY29uc3QpOgorICAgICAgICAgICAgRXhwb3NlIGEgR1BVQ29tbWFuZEJ1
ZmZlciBnZXR0ZXIsIHVzZWQgd2hlbiBzdWJtaXR0aW5nIChldmVuIHRob3VnaAorICAgICAgICAg
ICAgdGhlIGFjdHVhbCBHUFUgc3VibWlzc2lvbiBpc24ndCBpbXBsZW1lbnRlZCB5ZXQpLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdQVURldmljZTo6Z2V0UXVldWUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dl
YkdQVURldmljZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGw6
CisgICAgICAgICAgICBJbXBsZW1lbnQgZ2V0UXVldWUoKS4KKworICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OldlYkdQVVF1ZXVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpzdWJtaXQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVF1ZXVlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVRdWV1ZTo6bGFi
ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OnNldExhYmVsKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGw6CisgICAgICAgICAgICBOZXcg
Y2xhc3MuIE1vc3RseSBzZW5kcyBzdHVmZiBvbnRvIEdQVVF1ZXVlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAgICAgQWRkIFdlYkdQVVF1
ZXVlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVF1ZXVlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW06CisgICAg
ICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVF1
ZXVlOjpzdWJtaXQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OmxhYmVsIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpzZXRMYWJlbCBjb25zdCk6CisgICAgICAgICAg
ICAibGFiZWwiIGdldHRlci9zZXR0ZXIgdGhhdCB1c2VzCisgICAgICAgICAgICB0aGUgdW5kZXJs
eWluZyBNVExDb21tYW5kUXVldWUgbGFiZWwgcHJvcGVydHksIGJ1dCBwcmVmaXhlcworICAgICAg
ICAgICAgaXQgd2l0aCBhIFdlYktpdCBpZGVudGlmaWVyLCBzbyBpdCBjYW4gYmUgY29ycmVjdGx5
CisgICAgICAgICAgICBpZGVudGlmaWVkIGluIHN5c3RlbSBjcmFzaCBsb2dzIGFzIGNvbWluZyBm
cm9tIFdlYkdQVS4KKwogMjAxOC0xMS0yMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBXZWJHUFUgcGxhdGZvcm0gY29kZSB0byBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGYxNmY3MTE2NjBlOWY1YTE1
YzllNDQwZTQ3NzMxYTM0NDQ1MDQzYTAuLmNiZTVlMDAwYzM5ZWY5MjQ2NTUxNDRkYTg2M2U1MjRi
OTRlOGVkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzc3LDYgKzM3Nyw3
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21tYW5kQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVF1ZXVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGlu
ZURlc2NyaXB0b3JCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmUuaWRsIFwKQEAgLTM4OCw3ICszODksNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVTd2Fw
Q2hhaW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVGb3JtYXRF
bnVtLmlkbCBcCi0JJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnZyL0RPTVdpbmRvd1dlYlZSLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmgKaW5kZXggMTYx
YjUyMTdlY2EwYmE3MWFkOTk3MTVkYzlkOTQxNjlmMTU4YTNlNS4uMzg3ODg1ZTE0MWFiMjYyOTBm
MWY2M2NiNTY2YTRjOGJmMTc3ZjMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaApAQCAtMzksNiArMzksOCBAQCBjbGFzcyBX
ZWJHUFVDb21tYW5kQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR1BVQ29tbWFuZEJ1ZmZl
cj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4gY3Jl
YXRlKFJlZlB0cjxHUFVDb21tYW5kQnVmZmVyPiYmKTsKIAorICAgIGNvbnN0IEdQVUNvbW1hbmRC
dWZmZXImIGNvbW1hbmRCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRCdWZmZXIuZ2V0
KCk7IH0KKwogcHJpdmF0ZToKICAgICBXZWJHUFVDb21tYW5kQnVmZmVyKFJlZjxHUFVDb21tYW5k
QnVmZmVyPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAKaW5kZXggMzRlZTE0OGU5NzM2YjllZTY1YjE1ZjUzYzQxNmUxMDJlZDZlYWU5ZC4u
ZTkwMWMxMmI5OTNjMmViZjI3M2Q0OTVmNmE0YTRmZTdiMWQxYzJhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIldlYkdQVUNvbW1hbmRCdWZmZXIuaCIK
ICNpbmNsdWRlICJXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIldl
YkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSAiV2ViR1BVUmVuZGVyUGlwZWxpbmUuaCIKICNpbmNsdWRl
ICJXZWJHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVTaGFk
ZXJNb2R1bGUuaCIKQEAgLTEyNCw2ICsxMjUsMTQgQEAgUmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZm
ZXI+IFdlYkdQVURldmljZTo6Y3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJu
IFdlYkdQVUNvbW1hbmRCdWZmZXI6OmNyZWF0ZShtX2RldmljZS0+Y3JlYXRlQ29tbWFuZEJ1ZmZl
cigpKTsKIH0KIAorUmVmUHRyPFdlYkdQVVF1ZXVlPiBXZWJHUFVEZXZpY2U6OmdldFF1ZXVlKCkK
K3sKKyAgICBpZiAoIW1fcXVldWUpCisgICAgICAgIG1fcXVldWUgPSBXZWJHUFVRdWV1ZTo6Y3Jl
YXRlKG1fZGV2aWNlLT5nZXRRdWV1ZSgpKTsKKworICAgIHJldHVybiBtX3F1ZXVlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaAppbmRleCA1MDdhMTg3ODdk
MmU0MDUxMjY1YWM2ODI0NTNhZTA3MDE2NjBhMmYwLi45ZmEzYTA3ZDk0MjY2Y2NjNjFjMTc0MTBm
YzIwNWJkNjlmZDAxOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiR1BVRGV2aWNlLmgiCiAj
aW5jbHVkZSAiV2ViR1BVQWRhcHRlci5oIgotCisjaW5jbHVkZSAiV2ViR1BVUXVldWUuaCIKICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC01NSwxMyArNTUsMTQgQEAgcHVibGljOgogICAgIFJlZlB0cjxX
ZWJHUFVSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlwZWxpbmUoV2ViR1BVUmVuZGVyUGlw
ZWxpbmVEZXNjcmlwdG9yJiYpIGNvbnN0OwogCiAgICAgUmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZm
ZXI+IGNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdDsKKyAgICBSZWZQdHI8V2ViR1BVUXVldWU+
IGdldFF1ZXVlKCk7CiAKIHByaXZhdGU6CiAgICAgV2ViR1BVRGV2aWNlKFJlZjxXZWJHUFVBZGFw
dGVyPiYmLCBSZWZQdHI8R1BVRGV2aWNlPiYmKTsKIAogICAgIFJlZjxXZWJHUFVBZGFwdGVyPiBt
X2FkYXB0ZXI7Ci0KICAgICBSZWZQdHI8R1BVRGV2aWNlPiBtX2RldmljZTsKKyAgICBSZWZQdHI8
V2ViR1BVUXVldWU+IG1fcXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAppbmRleCBmNjMx
YzllMWI5ZDlmMDc2NmM3OGI3YzYzY2YwMjAzNjg1MjJmZGRiLi42YmJkYWE2YzY4NjVjM2U2ODE0
OTBiMjhkOWY5YTYxODIzZDM4OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVURldmljZS5pZGwKQEAgLTM5LDI1ICszOSwyNCBAQAogICAgIC8vIEZJWE1FOiBD
dXJyZW50bHksIFdlYkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIGlzIGFuIGVtcHR5IGRpY3Rp
b25hcnkuCiAgICAgV2ViR1BVQ29tbWFuZEJ1ZmZlciBjcmVhdGVDb21tYW5kQnVmZmVyKC8qV2Vi
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciovKTsKIAotLyogVG8gQmUgSW1w
bGVtZW50ZWQ6Ci0gICAgV2ViR1BVQnVmZmVyIGNyZWF0ZUJ1ZmZlcihXZWJHUFVCdWZmZXJEZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQVVRleHR1cmUgY3JlYXRlVGV4dHVyZShXZWJH
UFVUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVTYW1wbGVyIGNyZWF0
ZVNhbXBsZXIoV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0KLSAgICBXZWJH
UFVCaW5kR3JvdXBMYXlvdXQgY3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVUGlwZWxpbmVMYXlvdXQgY3Jl
YXRlUGlwZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0
b3IpOwotICAgIFdlYkdQVUJpbmRHcm91cCBjcmVhdGVCaW5kR3JvdXAoV2ViR1BVQmluZEdyb3Vw
RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLQotICAgIFdlYkdQVUJsZW5kU3RhdGUgY3JlYXRlQmxl
bmRTdGF0ZShXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZSBjcmVhdGVEZXB0aFN0ZW5jaWxTdGF0ZShXZWJHUFVEZXB0aFN0
ZW5jaWxTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVSW5wdXRTdGF0ZSBj
cmVhdGVJbnB1dFN0YXRlKFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwot
ICAgIFdlYkdQVUF0dGFjaG1lbnRTdGF0ZSBjcmVhdGVBdHRhY2htZW50U3RhdGUoV2ViR1BVQXR0
YWNobWVudFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVDb21wdXRlUGlw
ZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0
b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVRmVuY2UgY3JlYXRlRmVuY2UoV2ViR1BVRmVuY2VE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotCiAgICAgV2ViR1BVUXVldWUgZ2V0UXVldWUoKTsKIAot
ICAgIGF0dHJpYnV0ZSBXZWJHUFVMb2dDYWxsYmFjayBvbkxvZzsKLSAgICBXZWJHUFVPYmplY3RT
dGF0dXNRdWVyeSBnZXRPYmplY3RTdGF0dXMoU3RhdHVzYWJsZU9iamVjdCBzdGF0dXNhYmxlT2Jq
ZWN0KTsKLSovCisgICAgLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQuCisgICAgLy8gV2ViR1BVQnVm
ZmVyIGNyZWF0ZUJ1ZmZlcihXZWJHUFVCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAg
IC8vIFdlYkdQVVRleHR1cmUgY3JlYXRlVGV4dHVyZShXZWJHUFVUZXh0dXJlRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKKyAgICAvLyBXZWJHUFVTYW1wbGVyIGNyZWF0ZVNhbXBsZXIoV2ViR1BVU2Ft
cGxlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8KKyAgICAvLyBXZWJHUFVCaW5kR3Jv
dXBMYXlvdXQgY3JlYXRlQmluZEdyb3VwTGF5b3V0KFdlYkdQVUJpbmRHcm91cExheW91dERlc2Ny
aXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8gV2ViR1BVUGlwZWxpbmVMYXlvdXQgY3JlYXRlUGlw
ZWxpbmVMYXlvdXQoV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwor
ICAgIC8vIFdlYkdQVUJpbmRHcm91cCBjcmVhdGVCaW5kR3JvdXAoV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLworICAgIC8vIFdlYkdQVUJsZW5kU3RhdGUgY3Jl
YXRlQmxlbmRTdGF0ZShXZWJHUFVCbGVuZFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAg
ICAvLyBXZWJHUFVEZXB0aFN0ZW5jaWxTdGF0ZSBjcmVhdGVEZXB0aFN0ZW5jaWxTdGF0ZShXZWJH
UFVEZXB0aFN0ZW5jaWxTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8gV2ViR1BV
SW5wdXRTdGF0ZSBjcmVhdGVJbnB1dFN0YXRlKFdlYkdQVUlucHV0U3RhdGVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IpOworICAgIC8vIFdlYkdQVUF0dGFjaG1lbnRTdGF0ZSBjcmVhdGVBdHRhY2htZW50
U3RhdGUoV2ViR1BVQXR0YWNobWVudFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAv
LyBXZWJHUFVDb21wdXRlUGlwZWxpbmUgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKFdlYkdQVUNvbXB1
dGVQaXBlbGluZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8gV2ViR1BVRmVuY2UgY3Jl
YXRlRmVuY2UoV2ViR1BVRmVuY2VEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8vCisgICAg
Ly8gYXR0cmlidXRlIFdlYkdQVUxvZ0NhbGxiYWNrIG9uTG9nOworICAgIC8vIFdlYkdQVU9iamVj
dFN0YXR1c1F1ZXJ5IGdldE9iamVjdFN0YXR1cyhTdGF0dXNhYmxlT2JqZWN0IHN0YXR1c2FibGVP
YmplY3QpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MzAxNDViZjkyYTE0MDNkMjBkNjUyNmIxY2ViMjBjMTI5N2QxMWYz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UXVldWUuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR1BVUXVldWUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNp
bmNsdWRlICJHUFVDb21tYW5kQnVmZmVyLmgiCisjaW5jbHVkZSAiR1BVUXVldWUuaCIKKyNpbmNs
dWRlICJXZWJHUFVDb21tYW5kQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
UHRyPFdlYkdQVVF1ZXVlPiBXZWJHUFVRdWV1ZTo6Y3JlYXRlKFJlZlB0cjxHUFVRdWV1ZT4mJiBx
dWV1ZSkKK3sKKyAgICBpZiAoIXF1ZXVlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViR1BVUXVldWUocXVldWUucmVsZWFzZU5vbk51bGwoKSkp
OworfQorCitXZWJHUFVRdWV1ZTo6V2ViR1BVUXVldWUoUmVmPEdQVVF1ZXVlPiYmIHF1ZXVlKQor
ICAgIDogbV9xdWV1ZShXVEZNb3ZlKHF1ZXVlKSkKK3sKK30KKwordm9pZCBXZWJHUFVRdWV1ZTo6
c3VibWl0KFZlY3RvcjxSZWZQdHI8V2ViR1BVQ29tbWFuZEJ1ZmZlcj4+JiYgYnVmZmVycykKK3sK
KyAgICBWZWN0b3I8UmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+PiBncHVCdWZmZXJzIHsgYnVm
ZmVycy5zaXplKCkgfTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ1ZmZlciA6IGJ1ZmZlcnMpCisg
ICAgICAgIGdwdUJ1ZmZlcnMuYXBwZW5kKGJ1ZmZlci0+Y29tbWFuZEJ1ZmZlcigpKTsKKworICAg
IG1fcXVldWUtPnN1Ym1pdChXVEZNb3ZlKGdwdUJ1ZmZlcnMpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkODJmNmZlN2RhMjg5NzBi
YmE0MWQ2ZmQ4ZThlYmUwNzMxNmUxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbmNsdWRlICJHUFVR
dWV1ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyOworCitjbGFzcyBXZWJHUFVRdWV1ZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdQVVF1ZXVlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxXZWJH
UFVRdWV1ZT4gY3JlYXRlKFJlZlB0cjxHUFVRdWV1ZT4mJik7CisKKyAgICB2b2lkIHN1Ym1pdChW
ZWN0b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+PiYmKTsKKworICAgIFN0cmluZyBsYWJl
bCgpIGNvbnN0IHsgcmV0dXJuIG1fcXVldWUtPmxhYmVsKCk7IH0KKyAgICB2b2lkIHNldExhYmVs
KGNvbnN0IFN0cmluZyYgbGFiZWwpIHsgbV9xdWV1ZS0+c2V0TGFiZWwobGFiZWwpOyB9CisKK3By
aXZhdGU6CisgICAgV2ViR1BVUXVldWUoUmVmPEdQVVF1ZXVlPiYmKTsKKworICAgIFJlZjxHUFVR
dWV1ZT4gbV9xdWV1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVRdWV1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVR
dWV1ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY2YTcwOWY5MGE5NzY0NDRkMGYwNzZhOWY0YjRlNzI4Njkw
OTMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVF1ZXVlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0
aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVyL2Rlc2lnbi9za2V0Y2gud2ViaWRsCisK
K1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHUFUs
CisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgV2ViR1BVUXVldWUg
eworICAgIHZvaWQgc3VibWl0KHNlcXVlbmNlPFdlYkdQVUNvbW1hbmRCdWZmZXI+IGJ1ZmZlcnMp
OworCisgICAgLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQuCisgICAgLy8gdm9pZCBzaWduYWwoV2Vi
R1BVRmVuY2UgZmVuY2UsIHU2NCBzaWduYWxWYWx1ZSk7CisgICAgLy8gdm9pZCB3YWl0KFdlYkdQ
VUZlbmNlIGZlbmNlLCB1NjQgdmFsdWVUb1dhaXQpOworfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI5MzllOGFkNTNlN2Q3NTdlMzEzMmNhMjk2MjNmOWM4
NzY0MTU1ZjQuLmU4OGU4ZmZhY2VlNDZkYWYwYjc2ZTg2ZjY2MGU2ODQyNGZkNzJhZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0zMDUsNiArMzA1LDcgQEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVLmNwcAog
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNv
bW1hbmRCdWZmZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCitNb2R1bGVz
L3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0Nv
bnRleHQuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAKQEAgLTMyMTQsNiArMzIxNSw3IEBAIEpT
V2ViR1BVQWRhcHRlci5jcHAKIEpTV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuY3BwCiBKU1dlYkdQ
VUNvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYkdQVURldmljZS5jcHAKK0pTV2ViR1BVUXVldWUuY3Bw
CiBKU1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCiBKU1dlYkdQVVBpcGVsaW5lU3Rh
Z2VEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA1MjI4
MWU3ZmY2ZjliNmZkOTEzZmJjY2M2MTU3NWI3MGVjNmNmNjUuLjY2M2Q2MGVjMjI3MWViYzA1NDg1
Nzc3Yjg2ZGIzY2UwYTcxMGJlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5NDEsNiArNjk0MSwxMSBAQAogCQkzMTJGRjkw
RTIxQTRDMzNGMDBFQjE5OUQgLyogR1BVTGVnYWN5UmVuZGVyUGlwZWxpbmVTdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVMZWdhY3lSZW5kZXJQaXBlbGluZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxMkZGOTBGMjFBNEMzM0YwMEVCMTk5RCAvKiBHUFVMZWdhY3lDb21t
YW5kUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVTGVnYWN5Q29tbWFuZFF1ZXVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEyRkY5MTAyMUE0QzMzRjAwRUIxOTlE
IC8qIEdQVUxlZ2FjeUZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUxlZ2FjeUZ1bmN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMkZGOTM5MjFBNjFDOUYwMEVCMTk5
RCAvKiBXZWJHUFVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
UFVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTJGRjkzQjIxQTYxQ0Ew
MDBFQjE5OUQgLyogV2ViR1BVUXVldWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQ
VVF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEyRkY5M0MyMUE2MUNB
MTAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdQVVF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzEyRkY5M0QyMUE2MUYwNzAwRUIxOTlEIC8qIEpTV2ViR1BVUXVldWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHUFVRdWV1ZS5oOyBwYXRoID0gSlNXZWJHUFVRdWV1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTJGRjkzRTIxQTYxRjA3MDBFQjE5
OUQgLyogSlNXZWJHUFVRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBKU1dlYkdQVVF1ZXVlLmNwcDsgcGF0aCA9IEpTV2ViR1BVUXVldWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTMxNzE1NDFGQjA3OUQxMDA4RDkxRkMgLyogQ2FudmFz
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYW52YXNCYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzE3MTU3MUZCMDk2OUUwMDhEOTFGQyAvKiBD
YW52YXNCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZh
c0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTM1OTEwMDFFN0REQzYw
MDBGMzA2MzAgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjI3MzAsNiArMjI3MzUsOCBAQAogCQkJCTMxQTA4OTJGMUU3MzhENTkwMDNC
NjYwOSAvKiBKU1dlYkdQVUZ1bmN0aW9uLmggKi8sCiAJCQkJMzFBMDg5MzAxRTczOEQ1OTAwM0I2
NjA5IC8qIEpTV2ViR1BVTGlicmFyeS5jcHAgKi8sCiAJCQkJMzFBMDg5MzIxRTczOEQ1OTAwM0I2
NjA5IC8qIEpTV2ViR1BVTGlicmFyeS5oICovLAorCQkJCTMxMkZGOTNFMjFBNjFGMDcwMEVCMTk5
RCAvKiBKU1dlYkdQVVF1ZXVlLmNwcCAqLywKKwkJCQkzMTJGRjkzRDIxQTYxRjA3MDBFQjE5OUQg
LyogSlNXZWJHUFVRdWV1ZS5oICovLAogCQkJCTMxQTA4OTMzMUU3MzhENTkwMDNCNjYwOSAvKiBK
U1dlYkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcCAqLywKIAkJCQkzMUEwODkzNTFFNzM4RDU5
MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rlci5oICovLAogCQkJCTMxQTA4
OTM2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwICovLApA
QCAtMjU2NzMsNiArMjU2ODAsOSBAQAogCQkJCUQwQzQxOUYxMjE4M0VCMzEwMDlFQzFERSAvKiBX
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAqLywKIAkJCQlEMEM0MTlFQjIxODNDRkEy
MDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCAqLywKIAkJCQlEMEM0
MTlFQzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRs
ICovLAorCQkJCTMxMkZGOTNDMjFBNjFDQTEwMEVCMTk5RCAvKiBXZWJHUFVRdWV1ZS5jcHAgKi8s
CisJCQkJMzEyRkY5MzkyMUE2MUM5RjAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVlLmggKi8sCisJCQkJ
MzEyRkY5M0IyMUE2MUNBMDAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVlLmlkbCAqLywKIAkJCQlEMDkz
RDIyOTIxNzk1NDE2MDAzMjkyMTcgLyogV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJRDA5M0QyMjUyMTc5NTFENDAwMzI5MjE3IC8qIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQuaCAq
LywKIAkJCQlEMDkzRDIyNzIxNzk1MUQ0MDAzMjkyMTcgLyogV2ViR1BVUmVuZGVyaW5nQ29udGV4
dC5pZGwgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKaW5kZXggYWVjZTFjMzdiMTI4NjIxMmQxMWNkZWUzMmVjY2U5NzM4OTdlZDNlOC4u
ZjYwNmQ3YzZkOTNkNjBjZTUwMzczMTdjNDkzYzdiNjYwYzgzNzQyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTgxLDYgKzE4
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhXZWJHUFVBZGFwdGVyKSBcCiAg
ICAgbWFjcm8oV2ViR1BVRGV2aWNlKSBcCiAgICAgbWFjcm8oV2ViR1BVQ29tbWFuZEJ1ZmZlcikg
XAorICAgIG1hY3JvKFdlYkdQVVF1ZXVlKSBcCiAgICAgbWFjcm8oV2ViR1BVUmVuZGVyaW5nQ29u
dGV4dCkgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBpcGVsaW5lKSBcCiAgICAgbWFjcm8oV2Vi
R1BVU2hhZGVyU3RhZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVF1ZXVlLmgKaW5kZXggM2ZkZDAwY2ZhOGMyYTExY2Y2NGUzYTRkNTAyNTY4ZGY0MjIx
OGJkYS4uY2FmY2ZjN2E5NjMzNGMwMzdiZDQ3ZmRkMWM0ZTI3YzY1NTJmNGUwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVF1ZXVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVF1ZXVlLmgKQEAgLTM1LDE3
ICszNSwyMyBAQCBPQkpDX1BST1RPQ09MKE1UTENvbW1hbmRRdWV1ZSk7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR1BVRGV2aWNlOwotCiB1c2luZyBQbGF0Zm9ybVF1ZXVlID0gTVRM
Q29tbWFuZFF1ZXVlOwogdXNpbmcgUGxhdGZvcm1RdWV1ZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1U
TENvbW1hbmRRdWV1ZT47CiAKK2NsYXNzIEdQVUNvbW1hbmRCdWZmZXI7CitjbGFzcyBHUFVEZXZp
Y2U7CisKIGNsYXNzIEdQVVF1ZXVlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUXVldWU+IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVF1ZXVlPiBjcmVhdGUoY29uc3QgR1BVRGV2aWNl
Jik7CiAKICAgICBQbGF0Zm9ybVF1ZXVlKiBwbGF0Zm9ybVF1ZXVlKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF0Zm9ybVF1ZXVlLmdldCgpOyB9CiAKKyAgICB2b2lkIHN1Ym1pdChWZWN0b3I8UmVmPGNv
bnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmKTsKKworICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
R1BVUXVldWUoUGxhdGZvcm1RdWV1ZVNtYXJ0UHRyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1t
CmluZGV4IDhlNjliZTNiY2M4NjBiYTc1ZDBmZjg4NTdmNTY4MTcyZTI1NTU1OGIuLjE5NWY1N2Fh
YjNhMzdkZDkyZmUxYzcyNzNiNDA3NTcxNzg1YTk5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1t
CkBAIC0zNiwxMCArMzYsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNT
dHJpbmcgKiBjb25zdCBjb21tYW5kUXVldWVEZWZhdWx0TGFiZWwgPSBAImNvbS5hcHBsZS5XZWJL
aXQiOworc3RhdGljIE5TU3RyaW5nICogY29uc3QgY29tbWFuZFF1ZXVlTGFiZWxQcmVmaXggPSBA
ImNvbS5hcHBsZS5XZWJLaXQuIjsKKwogUmVmUHRyPEdQVVF1ZXVlPiBHUFVRdWV1ZTo6Y3JlYXRl
KGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQogewogICAgIGlmICghZGV2aWNlLnBsYXRmb3JtRGV2
aWNlKCkpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVF1ZXVlOjpjcmVhdGUoKTogSW52YWxp
ZCBHUFVEZXZpY2UhIik7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6Y3JlYXRlKCk6
IEludmFsaWQgR1BVRGV2aWNlLiIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
QEAgLTQ4LDExICs1MSwxMiBAQCBSZWZQdHI8R1BVUXVldWU+IEdQVVF1ZXVlOjpjcmVhdGUoY29u
c3QgR1BVRGV2aWNlJiBkZXZpY2UpCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
CiAgICAgcXVldWUgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdDb21tYW5k
UXVldWVdKTsKKyAgICBbcXVldWUgc2V0TGFiZWw6Y29tbWFuZFF1ZXVlRGVmYXVsdExhYmVsXTsK
IAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIXF1ZXVlKSB7Ci0g
ICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6Y3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUg
TVRMQ29tbWFuZFF1ZXVlISIpOworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUXVldWU6OmNyZWF0
ZSgpOiBVbmFibGUgdG8gY3JlYXRlIE1UTENvbW1hbmRRdWV1ZS4iKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCkBAIC02NCw2ICs2OCwzMyBAQCBHUFVRdWV1ZTo6R1BVUXVldWUo
UGxhdGZvcm1RdWV1ZVNtYXJ0UHRyJiYgcXVldWUpCiB7CiB9CiAKK3ZvaWQgR1BVUXVldWU6OnN1
Ym1pdChWZWN0b3I8UmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmKQoreworICAgIC8vIEZJ
WE1FOiBNaXNzaW5nIGltcGxlbWVudGF0aW9uLgorfQorCitTdHJpbmcgR1BVUXVldWU6OmxhYmVs
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1RdWV1ZSkKKyAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CisKKyAgICBOU1N0cmluZyAqcHJlZml4ZWRMYWJlbCA9IFttX3BsYXRmb3Jt
UXVldWUgbGFiZWxdOworCisgICAgaWYgKFtwcmVmaXhlZExhYmVsIGlzRXF1YWxUb1N0cmluZzpj
b21tYW5kUXVldWVEZWZhdWx0TGFiZWxdKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
KworICAgIEFTU0VSVChwcmVmaXhlZExhYmVsLmxlbmd0aCA+IGNvbW1hbmRRdWV1ZUxhYmVsUHJl
Zml4Lmxlbmd0aCk7CisgICAgcmV0dXJuIFtwcmVmaXhlZExhYmVsIHN1YnN0cmluZ0Zyb21JbmRl
eDpjb21tYW5kUXVldWVMYWJlbFByZWZpeC5sZW5ndGhdOworfQorCit2b2lkIEdQVVF1ZXVlOjpz
ZXRMYWJlbChjb25zdCBTdHJpbmcmIGxhYmVsKSBjb25zdAoreworICAgIGlmIChsYWJlbC5pc0Vt
cHR5KCkpCisgICAgICAgIFttX3BsYXRmb3JtUXVldWUgc2V0TGFiZWw6Y29tbWFuZFF1ZXVlRGVm
YXVsdExhYmVsXTsKKyAgICBlbHNlCisgICAgICAgIFttX3BsYXRmb3JtUXVldWUgc2V0TGFiZWw6
W2NvbW1hbmRRdWV1ZUxhYmVsUHJlZml4IHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOmxhYmVsXV07
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTUzNzMzMjg2ZDhhZTU4Y2Q0ZmZjMGU1YmQwOGExOGU5MjNiYTcyYi4uZTI3MGFk
Yzg5YTdmYTdjZGFmNzQzMWEzZDYzODI0YjBiNjI2MmY2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTExLTIyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgV2ViR1BVUXVldWUgYW5kIGRldmljZS5nZXRRdWV1ZSgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE5MTEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ2MjE0ODcxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdQVC1zdHlsZSB0ZXN0IGZvciBxdWV1ZSBjcmVhdGlvbi4KKworICAgICAg
ICAqIHdlYmdwdS9xdWV1ZS1jcmVhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdwdS9xdWV1ZS1jcmVhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxOC0xMS0xOSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDbGljayBvbiBub2RlIGFzc2ln
bmVkIHRvIHNsb3QgaW4gYnV0dG9uJ3Mgc2hhZG93IGNhdXNlIGxvc3Mgb2YgYnV0dG9uIGZvY3Vz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNTAzOGVmMDlhMzdjN2I3OTEyNDA1OWYzNWY2OGQxNzM1YzVhMjk0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBnZXRRdWV1ZSgpIG9uIFdlYkdQVURldmljZSAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmU1NGJkZTQ4
YjhkZjI0MjEwOTM4ZjcwMDJmODEwNjc4ZDA3YWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6V2ViR1BVRW5h
YmxlZD10cnVlIF0gLS0+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkdldCB0aGUgV2Vi
R1BVRGV2aWNlIGFuZCBhc2sgZm9yIHRoZSBXZWJHUFVRdWV1ZTwvdGl0bGU+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBh
c3NlcnRfbm90X2VxdWFscyh3aW5kb3cud2ViZ3B1LCB1bmRlZmluZWQsICJ3aW5kb3cud2ViZ3B1
IGV4aXN0cyIpOworCisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIik7CisgICAgY29uc3Qgc3dhcENoYWluID0gY2FudmFzLmdldENvbnRleHQoIndlYmdw
dSIpOworICAgIGFzc2VydF90cnVlKHN3YXBDaGFpbiBpbnN0YW5jZW9mIFdlYkdQVVN3YXBDaGFp
biwgImdldENvbnRleHQgcmV0dXJuZWQgYSBXZWJHUFVTd2FwQ2hhaW4iKTsKKworICAgIGNvbnN0
IGFkYXB0ZXIgPSBhd2FpdCB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9KTsKKyAgICBh
c3NlcnRfdHJ1ZShhZGFwdGVyIGluc3RhbmNlb2YgV2ViR1BVQWRhcHRlciwgInJlcXVlc3RBZGFw
dGVyIHJldHVybmVkIGEgV2ViR1BVQWRhcHRlciIpOworCisgICAgY29uc3QgZGV2aWNlID0gYWRh
cHRlci5jcmVhdGVEZXZpY2UoKTsKKyAgICBhc3NlcnRfdHJ1ZShkZXZpY2UgaW5zdGFuY2VvZiBX
ZWJHUFVEZXZpY2UsICJjcmVhdGVEZXZpY2UgcmV0dXJuZWQgYSBXZWJHUFVEZXZpY2UiKTsKKwor
ICAgIGNvbnN0IHF1ZXVlID0gZGV2aWNlLmdldFF1ZXVlKCk7CisgICAgYXNzZXJ0X3RydWUocXVl
dWUgaW5zdGFuY2VvZiBXZWJHUFVRdWV1ZSwgImdldFF1ZXVlIHJldHVybmVkIGEgV2ViR1BVUXVl
dWUiKTsKKworICAgIHF1ZXVlLmxhYmVsID0gIkV4YW1wbGUgbGFiZWwiOworICAgIGFzc2VydF9l
cXVhbHMocXVldWUubGFiZWwsICJFeGFtcGxlIGxhYmVsIiwgInF1ZXVlLmxhYmVsIHdhcyBzZXQi
KTsKK30sICJnZXRRdWV1ZSgpIG9uIFdlYkdQVURldmljZSIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4K
</data>
<flag name="review"
          id="372574"
          type_id="1"
          status="+"
          setter="graouts"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355482</attachid>
            <date>2018-11-22 12:24:46 -0800</date>
            <delta_ts>2018-11-22 12:24:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191911-20181123072444.patch</filename>
            <type>text/plain</type>
            <size>26555</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1MTYyYzgwYWM1Y2Fl
Njg4MDIzYzVmMDcyNGUwNTk0NTM0ZmZhYy4uZjhmOWEwNzhkMTZiMDc0ODdhYzRkMTkyMWEzOWVl
ZjZlNzM3ODkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE4LTExLTIyICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR1BVUXVl
dWUgYW5kIGRldmljZS5nZXRRdWV1ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTE5MTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MjE0ODcx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9pbmUgUXVpbnQuCisKKyAgICAgICAgSW1wbGVt
ZW50IFdlYkdQVURldmljZTo6Z2V0UXVldWUoKSwgd2hpY2ggY3JlYXRlcyBhIFdlYkdQVVF1ZXVl
CisgICAgICAgIGluc3RhbmNlIGlmIG5lY2Vzc2FyeS4gQWxzbyBsaW5rIFdlYkdQVVF1ZXVlIHRv
IHRoZSBleGlzdGluZworICAgICAgICBHUFVRdWV1ZSBvYmplY3QsIGFuZCBleHBvc2UgdGhlIGxh
YmVsIElETCBwcm9wZXJ0eS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHNvbWUg
d29yayBmcm9tIEp1c3RpbiBGYW4uCisKKyAgICAgICAgVGVzdDogd2ViZ3B1L3F1ZXVlLWNyZWF0
aW9uLmh0bWwKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAgICAgTmV3IGZpbGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tbWFuZEJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6
Y29tbWFuZEJ1ZmZlciBjb25zdCk6CisgICAgICAgICAgICBFeHBvc2UgYSBHUFVDb21tYW5kQnVm
ZmVyIGdldHRlciwgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgKGV2ZW4gdGhvdWdoCisgICAgICAgICAg
ICB0aGUgYWN0dWFsIEdQVSBzdWJtaXNzaW9uIGlzbid0IGltcGxlbWVudGVkIHlldCkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVRGV2aWNlOjpnZXRRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbDoK
KyAgICAgICAgICAgIEltcGxlbWVudCBnZXRRdWV1ZSgpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVRdWV1ZTo6V2ViR1BVUXVldWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OnN1Ym1pdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpsYWJl
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVRdWV1ZTo6c2V0TGFiZWwpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlkbDoKKyAgICAgICAgICAgIE5ldyBj
bGFzcy4gTW9zdGx5IHNlbmRzIHN0dWZmIG9udG8gR1BVUXVldWUuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICAgICBBZGQgV2ViR1BVUXVl
dWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVl
dWU6OnN1Ym1pdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6bGFiZWwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OnNldExhYmVsIGNvbnN0KToKKyAgICAgICAgICAg
ICJsYWJlbCIgZ2V0dGVyL3NldHRlciB0aGF0IHVzZXMKKyAgICAgICAgICAgIHRoZSB1bmRlcmx5
aW5nIE1UTENvbW1hbmRRdWV1ZSBsYWJlbCBwcm9wZXJ0eSwgYnV0IHByZWZpeGVzCisgICAgICAg
ICAgICBpdCB3aXRoIGEgV2ViS2l0IGlkZW50aWZpZXIsIHNvIGl0IGNhbiBiZSBjb3JyZWN0bHkK
KyAgICAgICAgICAgIGlkZW50aWZpZWQgaW4gc3lzdGVtIGNyYXNoIGxvZ3MgYXMgY29taW5nIGZy
b20gV2ViR1BVLgorCiAyMDE4LTExLTIwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
IAogICAgICAgICBNb3ZlIFdlYkdQVSBwbGF0Zm9ybSBjb2RlIHRvIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZjE2ZjcxMTY2MGU5ZjVhMTVj
OWU0NDBlNDc3MzFhMzQ0NDUwNDNhMC4uY2JlNWUwMDBjMzllZjkyNDY1NTE0NGRhODYzZTUyNGI5
NGU4ZWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzcsNiArMzc3LDcg
QEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQWRhcHRlckRlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbW1hbmRCdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
UXVldWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5l
RGVzY3JpcHRvckJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmdwdS9XZWJHUFVSZW5kZXJQaXBlbGluZS5pZGwgXApAQCAtMzg4LDcgKzM4OSw3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBD
aGFpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZUZvcm1hdEVu
dW0uaWRsIFwKLQkkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VidnIvRE9NV2luZG93V2ViVlIuaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuaAppbmRleCAxNjFi
NTIxN2VjYTBiYTcxYWQ5OTcxNWRjOWQ5NDE2OWYxNThhM2U1Li4zODc4ODVlMTQxYWIyNjI5MGYx
ZjYzY2I1NjZhNGM4YmYxNzdmMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCkBAIC0zOSw2ICszOSw4IEBAIGNsYXNzIFdl
YkdQVUNvbW1hbmRCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVDb21tYW5kQnVmZmVy
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxXZWJHUFVDb21tYW5kQnVmZmVyPiBjcmVh
dGUoUmVmUHRyPEdQVUNvbW1hbmRCdWZmZXI+JiYpOwogCisgICAgY29uc3QgR1BVQ29tbWFuZEJ1
ZmZlciYgY29tbWFuZEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWFuZEJ1ZmZlci5nZXQo
KTsgfQorCiBwcml2YXRlOgogICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIoUmVmPEdQVUNvbW1hbmRC
dWZmZXI+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2
aWNlLmNwcAppbmRleCAzNGVlMTQ4ZTk3MzZiOWVlNjViMTVmNTNjNDE2ZTEwMmVkNmVhZTlkLi5l
OTAxYzEyYjk5M2MyZWJmMjczZDQ5NWY2YTRhNGZlN2IxZDFjMmEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViR1BVQ29tbWFuZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIldlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiV2Vi
R1BVUXVldWUuaCIKICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQaXBlbGluZS5oIgogI2luY2x1ZGUg
IldlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVVNoYWRl
ck1vZHVsZS5oIgpAQCAtMTI0LDYgKzEyNSwxNCBAQCBSZWZQdHI8V2ViR1BVQ29tbWFuZEJ1ZmZl
cj4gV2ViR1BVRGV2aWNlOjpjcmVhdGVDb21tYW5kQnVmZmVyKCkgY29uc3QKICAgICByZXR1cm4g
V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6Y3JlYXRlKG1fZGV2aWNlLT5jcmVhdGVDb21tYW5kQnVmZmVy
KCkpOwogfQogCitSZWZQdHI8V2ViR1BVUXVldWU+IFdlYkdQVURldmljZTo6Z2V0UXVldWUoKQor
eworICAgIGlmICghbV9xdWV1ZSkKKyAgICAgICAgbV9xdWV1ZSA9IFdlYkdQVVF1ZXVlOjpjcmVh
dGUobV9kZXZpY2UtPmdldFF1ZXVlKCkpOworCisgICAgcmV0dXJuIG1fcXVldWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oCmluZGV4IDUwN2ExODc4N2Qy
ZTQwNTEyNjVhYzY4MjQ1M2FlMDcwMTY2MGEyZjAuLjlmYTNhMDdkOTQyNjZjY2M2MWMxNzQxMGZj
MjA1YmQ2OWZkMDE5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VURldmljZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJHUFVEZXZpY2UuaCIKICNp
bmNsdWRlICJXZWJHUFVBZGFwdGVyLmgiCi0KKyNpbmNsdWRlICJXZWJHUFVRdWV1ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTU1LDEzICs1NSwxNCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdl
YkdQVVJlbmRlclBpcGVsaW5lPiBjcmVhdGVSZW5kZXJQaXBlbGluZShXZWJHUFVSZW5kZXJQaXBl
bGluZURlc2NyaXB0b3ImJikgY29uc3Q7CiAKICAgICBSZWZQdHI8V2ViR1BVQ29tbWFuZEJ1ZmZl
cj4gY3JlYXRlQ29tbWFuZEJ1ZmZlcigpIGNvbnN0OworICAgIFJlZlB0cjxXZWJHUFVRdWV1ZT4g
Z2V0UXVldWUoKTsKIAogcHJpdmF0ZToKICAgICBXZWJHUFVEZXZpY2UoUmVmPFdlYkdQVUFkYXB0
ZXI+JiYsIFJlZlB0cjxHUFVEZXZpY2U+JiYpOwogCiAgICAgUmVmPFdlYkdQVUFkYXB0ZXI+IG1f
YWRhcHRlcjsKLQogICAgIFJlZlB0cjxHUFVEZXZpY2U+IG1fZGV2aWNlOworICAgIFJlZlB0cjxX
ZWJHUFVRdWV1ZT4gbV9xdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuaWRsCmluZGV4IGY2MzFj
OWUxYjlkOWYwNzY2Yzc4YjdjNjNjZjAyMDM2ODUyMmZkZGIuLjZiYmRhYTZjNjg2NWMzZTY4MTQ5
MGIyOGQ5ZjlhNjE4MjNkMzg5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dlYkdQVURldmljZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV2ViR1BVRGV2aWNlLmlkbApAQCAtMzksMjUgKzM5LDI0IEBACiAgICAgLy8gRklYTUU6IEN1
cnJlbnRseSwgV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IgaXMgYW4gZW1wdHkgZGljdGlv
bmFyeS4KICAgICBXZWJHUFVDb21tYW5kQnVmZmVyIGNyZWF0ZUNvbW1hbmRCdWZmZXIoLypXZWJH
UFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKi8pOwogCi0vKiBUbyBCZSBJbXBs
ZW1lbnRlZDoKLSAgICBXZWJHUFVCdWZmZXIgY3JlYXRlQnVmZmVyKFdlYkdQVUJ1ZmZlckRlc2Ny
aXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJlKFdlYkdQ
VVRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQVVNhbXBsZXIgY3JlYXRl
U2FtcGxlcihXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLQotICAgIFdlYkdQ
VUJpbmRHcm91cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVQaXBlbGluZUxheW91dCBjcmVh
dGVQaXBlbGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVzY3JpcHRv
cik7Ci0gICAgV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5kR3JvdXBE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotCi0gICAgV2ViR1BVQmxlbmRTdGF0ZSBjcmVhdGVCbGVu
ZFN0YXRlKFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlIGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQVURlcHRoU3Rl
bmNpbFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVJbnB1dFN0YXRlIGNy
ZWF0ZUlucHV0U3RhdGUoV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0g
ICAgV2ViR1BVQXR0YWNobWVudFN0YXRlIGNyZWF0ZUF0dGFjaG1lbnRTdGF0ZShXZWJHUFVBdHRh
Y2htZW50U3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQVUNvbXB1dGVQaXBl
bGluZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVGZW5jZSBjcmVhdGVGZW5jZShXZWJHUFVGZW5jZURl
c2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0KICAgICBXZWJHUFVRdWV1ZSBnZXRRdWV1ZSgpOwogCi0g
ICAgYXR0cmlidXRlIFdlYkdQVUxvZ0NhbGxiYWNrIG9uTG9nOwotICAgIFdlYkdQVU9iamVjdFN0
YXR1c1F1ZXJ5IGdldE9iamVjdFN0YXR1cyhTdGF0dXNhYmxlT2JqZWN0IHN0YXR1c2FibGVPYmpl
Y3QpOwotKi8KKyAgICAvLyBGSVhNRTogVW5pbXBsZW1lbnRlZC4KKyAgICAvLyBXZWJHUFVCdWZm
ZXIgY3JlYXRlQnVmZmVyKFdlYkdQVUJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAg
Ly8gV2ViR1BVVGV4dHVyZSBjcmVhdGVUZXh0dXJlKFdlYkdQVVRleHR1cmVEZXNjcmlwdG9yIGRl
c2NyaXB0b3IpOworICAgIC8vIFdlYkdQVVNhbXBsZXIgY3JlYXRlU2FtcGxlcihXZWJHUFVTYW1w
bGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLworICAgIC8vIFdlYkdQVUJpbmRHcm91
cExheW91dCBjcmVhdGVCaW5kR3JvdXBMYXlvdXQoV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLyBXZWJHUFVQaXBlbGluZUxheW91dCBjcmVhdGVQaXBl
bGluZUxheW91dChXZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IgZGVzY3JpcHRvcik7Cisg
ICAgLy8gV2ViR1BVQmluZEdyb3VwIGNyZWF0ZUJpbmRHcm91cChXZWJHUFVCaW5kR3JvdXBEZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8vCisgICAgLy8gV2ViR1BVQmxlbmRTdGF0ZSBjcmVh
dGVCbGVuZFN0YXRlKFdlYkdQVUJsZW5kU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAg
IC8vIFdlYkdQVURlcHRoU3RlbmNpbFN0YXRlIGNyZWF0ZURlcHRoU3RlbmNpbFN0YXRlKFdlYkdQ
VURlcHRoU3RlbmNpbFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLyBXZWJHUFVJ
bnB1dFN0YXRlIGNyZWF0ZUlucHV0U3RhdGUoV2ViR1BVSW5wdXRTdGF0ZURlc2NyaXB0b3IgZGVz
Y3JpcHRvcik7CisgICAgLy8gV2ViR1BVQXR0YWNobWVudFN0YXRlIGNyZWF0ZUF0dGFjaG1lbnRT
dGF0ZShXZWJHUFVBdHRhY2htZW50U3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8v
IFdlYkdQVUNvbXB1dGVQaXBlbGluZSBjcmVhdGVDb21wdXRlUGlwZWxpbmUoV2ViR1BVQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLyBXZWJHUFVGZW5jZSBjcmVh
dGVGZW5jZShXZWJHUFVGZW5jZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8KKyAgICAv
LyBhdHRyaWJ1dGUgV2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7CisgICAgLy8gV2ViR1BVT2JqZWN0
U3RhdHVzUXVlcnkgZ2V0T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVPYmplY3Qgc3RhdHVzYWJsZU9i
amVjdCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2Vi
R1BVUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBkOTE4ZDhjMjgwNTJkNDI0MGE1NTY4MmQ4MTc3MzM3NzRiMDIwMDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVR
dWV1ZS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJHUFVRdWV1ZS5oIgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2lu
Y2x1ZGUgIkdQVUNvbW1hbmRCdWZmZXIuaCIKKyNpbmNsdWRlICJHUFVRdWV1ZS5oIgorI2luY2x1
ZGUgIldlYkdQVUNvbW1hbmRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQ
dHI8V2ViR1BVUXVldWU+IFdlYkdQVVF1ZXVlOjpjcmVhdGUoUmVmUHRyPEdQVVF1ZXVlPiYmIHF1
ZXVlKQoreworICAgIGlmICghcXVldWUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHUFVRdWV1ZShxdWV1ZS5yZWxlYXNlTm9uTnVsbCgpKSk7
Cit9CisKK1dlYkdQVVF1ZXVlOjpXZWJHUFVRdWV1ZShSZWY8R1BVUXVldWU+JiYgcXVldWUpCisg
ICAgOiBtX3F1ZXVlKFdURk1vdmUocXVldWUpKQoreworfQorCit2b2lkIFdlYkdQVVF1ZXVlOjpz
dWJtaXQoVmVjdG9yPFJlZlB0cjxXZWJHUFVDb21tYW5kQnVmZmVyPj4mJiBidWZmZXJzKQorewor
ICAgIGF1dG8gZ3B1QnVmZmVycyA9IGJ1ZmZlcnMubWFwKFtdIChjb25zdCBhdXRvJiBidWZmZXIp
IC0+IFJlZjxjb25zdCBHUFVDb21tYW5kQnVmZmVyPiB7CisgICAgICAgIHJldHVybiBidWZmZXIt
PmNvbW1hbmRCdWZmZXIoKTsKKyAgICB9KTsKKyAgICBtX3F1ZXVlLT5zdWJtaXQoV1RGTW92ZShn
cHVCdWZmZXJzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
ZWJHUFVRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZDgyZjZmZTdkYTI4OTcwYmJhNDFkNmZkOGU4ZWJlMDczMTZlMWFhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVl
dWUuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAiR1BVUXVldWUuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR1BVQ29tbWFuZEJ1ZmZlcjsK
KworY2xhc3MgV2ViR1BVUXVldWUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHUFVRdWV1ZT4gewor
cHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8V2ViR1BVUXVldWU+IGNyZWF0ZShSZWZQdHI8R1BV
UXVldWU+JiYpOworCisgICAgdm9pZCBzdWJtaXQoVmVjdG9yPFJlZlB0cjxXZWJHUFVDb21tYW5k
QnVmZmVyPj4mJik7CisKKyAgICBTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX3F1ZXVl
LT5sYWJlbCgpOyB9CisgICAgdm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmIGxhYmVsKSB7IG1f
cXVldWUtPnNldExhYmVsKGxhYmVsKTsgfQorCitwcml2YXRlOgorICAgIFdlYkdQVVF1ZXVlKFJl
ZjxHUFVRdWV1ZT4mJik7CisKKyAgICBSZWY8R1BVUXVldWU+IG1fcXVldWU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNmE3
MDlmOTBhOTc2NDQ0ZDBmMDc2YTlmNGI0ZTcyODY5MDkzMjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGwKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisvLyBodHRwczovL2dpdGh1Yi5jb20vZ3B1d2ViL2dwdXdlYi9ibG9i
L21hc3Rlci9kZXNpZ24vc2tldGNoLndlYmlkbAorCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR1BV
LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR1BVLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUKK10gaW50ZXJmYWNlIFdlYkdQVVF1ZXVlIHsKKyAgICB2b2lkIHN1Ym1pdChzZXF1ZW5j
ZTxXZWJHUFVDb21tYW5kQnVmZmVyPiBidWZmZXJzKTsKKworICAgIC8vIEZJWE1FOiBVbmltcGxl
bWVudGVkLgorICAgIC8vIHZvaWQgc2lnbmFsKFdlYkdQVUZlbmNlIGZlbmNlLCB1NjQgc2lnbmFs
VmFsdWUpOworICAgIC8vIHZvaWQgd2FpdChXZWJHUFVGZW5jZSBmZW5jZSwgdTY0IHZhbHVlVG9X
YWl0KTsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAy
OTM5ZThhZDUzZTdkNzU3ZTMxMzJjYTI5NjIzZjljODc2NDE1NWY0Li5lODhlOGZmYWNlZTQ2ZGFm
MGI3NmU4NmY2NjBlNjg0MjRmZDcyYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzA1LDYgKzMwNSw3
IEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0
ZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogTW9kdWxlcy93
ZWJncHUvV2ViR1BVRGV2aWNlLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVUXVldWUuY3BwCiBN
b2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcAogTW9kdWxlcy93ZWJncHUv
V2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVTaGFkZXJNb2R1
bGUuY3BwCkBAIC0zMjE0LDYgKzMyMTUsNyBAQCBKU1dlYkdQVUFkYXB0ZXIuY3BwCiBKU1dlYkdQ
VUFkYXB0ZXJEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcAogSlNXZWJH
UFVEZXZpY2UuY3BwCitKU1dlYkdQVVF1ZXVlLmNwcAogSlNXZWJHUFVQaXBlbGluZURlc2NyaXB0
b3JCYXNlLmNwcAogSlNXZWJHUFVQaXBlbGluZVN0YWdlRGVzY3JpcHRvci5jcHAKIEpTV2ViR1BV
UmVuZGVyaW5nQ29udGV4dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNTIyODFlN2ZmNmY5YjZmZDkxM2ZiY2NjNjE1NzVi
NzBlYzZjZjY1Li42NjNkNjBlYzIyNzFlYmMwNTQ4NTc3N2I4NmRiM2NlMGE3MTBiZTdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02OTQxLDYgKzY5NDEsMTEgQEAKIAkJMzEyRkY5MEUyMUE0QzMzRjAwRUIxOTlEIC8qIEdQVUxl
Z2FjeVJlbmRlclBpcGVsaW5lU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVTGVnYWN5UmVuZGVy
UGlwZWxpbmVTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTJGRjkwRjIx
QTRDMzNGMDBFQjE5OUQgLyogR1BVTGVnYWN5Q29tbWFuZFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdQVUxlZ2FjeUNvbW1hbmRRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxMkZGOTEwMjFBNEMzM0YwMEVCMTk5RCAvKiBHUFVMZWdhY3lGdW5jdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHUFVMZWdhY3lGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTJGRjkzOTIxQTYxQzlGMDBFQjE5OUQgLyogV2ViR1BVUXVldWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUXVldWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzEyRkY5M0IyMUE2MUNBMDAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHUFVRdWV1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxMkZGOTNDMjFBNjFDQTEwMEVCMTk5RCAvKiBXZWJHUFVRdWV1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVRdWV1ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMkZGOTNEMjFBNjFGMDcwMEVCMTk5RCAv
KiBKU1dlYkdQVVF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2Vi
R1BVUXVldWUuaDsgcGF0aCA9IEpTV2ViR1BVUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzEyRkY5M0UyMUE2MUYwNzAwRUIxOTlEIC8qIEpTV2ViR1BVUXVldWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHUFVRdWV1ZS5jcHA7IHBh
dGggPSBKU1dlYkdQVVF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEz
MTcxNTQxRkIwNzlEMTAwOEQ5MUZDIC8qIENhbnZhc0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FudmFzQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTMxNzE1NzFGQjA5NjlFMDA4RDkxRkMgLyogQ2FudmFzQmFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzEzNTkxMDAxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ0ljZUNvbm5lY3Rp
b25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENJY2VDb25uZWN0
aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNzMwLDYgKzIyNzM1
LDggQEAKIAkJCQkzMUEwODkyRjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVGdW5jdGlvbi5o
ICovLAogCQkJCTMxQTA4OTMwMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUxpYnJhcnkuY3Bw
ICovLAogCQkJCTMxQTA4OTMyMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUxpYnJhcnkuaCAq
LywKKwkJCQkzMTJGRjkzRTIxQTYxRjA3MDBFQjE5OUQgLyogSlNXZWJHUFVRdWV1ZS5jcHAgKi8s
CisJCQkJMzEyRkY5M0QyMUE2MUYwNzAwRUIxOTlEIC8qIEpTV2ViR1BVUXVldWUuaCAqLywKIAkJ
CQkzMUEwODkzMzFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJDb21tYW5kRW5jb2Rl
ci5jcHAgKi8sCiAJCQkJMzFBMDg5MzUxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVy
Q29tbWFuZEVuY29kZXIuaCAqLywKIAkJCQkzMUEwODkzNjFFNzM4RDU5MDAzQjY2MDkgLyogSlNX
ZWJHUFVSZW5kZXJpbmdDb250ZXh0LmNwcCAqLywKQEAgLTI1NjczLDYgKzI1NjgwLDkgQEAKIAkJ
CQlEMEM0MTlGMTIxODNFQjMxMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFz
ZS5pZGwgKi8sCiAJCQkJRDBDNDE5RUIyMTgzQ0ZBMjAwOUVDMURFIC8qIFdlYkdQVVBpcGVsaW5l
U3RhZ2VEZXNjcmlwdG9yLmggKi8sCiAJCQkJRDBDNDE5RUMyMTgzQ0ZBMjAwOUVDMURFIC8qIFdl
YkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmlkbCAqLywKKwkJCQkzMTJGRjkzQzIxQTYxQ0Ex
MDBFQjE5OUQgLyogV2ViR1BVUXVldWUuY3BwICovLAorCQkJCTMxMkZGOTM5MjFBNjFDOUYwMEVC
MTk5RCAvKiBXZWJHUFVRdWV1ZS5oICovLAorCQkJCTMxMkZGOTNCMjFBNjFDQTAwMEVCMTk5RCAv
KiBXZWJHUFVRdWV1ZS5pZGwgKi8sCiAJCQkJRDA5M0QyMjkyMTc5NTQxNjAwMzI5MjE3IC8qIFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCUQwOTNEMjI1MjE3OTUxRDQwMDMyOTIx
NyAvKiBXZWJHUFVSZW5kZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJRDA5M0QyMjcyMTc5NTFENDAw
MzI5MjE3IC8qIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGFlY2UxYzM3YjEy
ODYyMTJkMTFjZGVlMzJlY2NlOTczODk3ZWQzZTguLmY2MDZkN2M2ZDkzZDYwY2U1MDM3MzE3YzQ5
M2M3YjY2MGM4Mzc0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oV2ViR1BVQWRhcHRlcikgXAogICAgIG1hY3JvKFdlYkdQVURldmljZSkgXAog
ICAgIG1hY3JvKFdlYkdQVUNvbW1hbmRCdWZmZXIpIFwKKyAgICBtYWNybyhXZWJHUFVRdWV1ZSkg
XAogICAgIG1hY3JvKFdlYkdQVVJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHUFVS
ZW5kZXJQaXBlbGluZSkgXAogICAgIG1hY3JvKFdlYkdQVVNoYWRlclN0YWdlKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVRdWV1ZS5oCmluZGV4IDNmZGQw
MGNmYThjMmExMWNmNjRlM2E0ZDUwMjU2OGRmNDIyMThiZGEuLmNhZmNmYzdhOTYzMzRjMDM3YmQ0
N2ZkZDFjNGUyN2M2NTUyZjRlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVRdWV1ZS5oCkBAIC0zNSwxNyArMzUsMjMgQEAgT0JKQ19QUk9UT0NPTChN
VExDb21tYW5kUXVldWUpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdQVURldmlj
ZTsKLQogdXNpbmcgUGxhdGZvcm1RdWV1ZSA9IE1UTENvbW1hbmRRdWV1ZTsKIHVzaW5nIFBsYXRm
b3JtUXVldWVTbWFydFB0ciA9IFJldGFpblB0cjxNVExDb21tYW5kUXVldWU+OwogCitjbGFzcyBH
UFVDb21tYW5kQnVmZmVyOworY2xhc3MgR1BVRGV2aWNlOworCiBjbGFzcyBHUFVRdWV1ZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEdQVVF1ZXVlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxH
UFVRdWV1ZT4gY3JlYXRlKGNvbnN0IEdQVURldmljZSYpOwogCiAgICAgUGxhdGZvcm1RdWV1ZSog
cGxhdGZvcm1RdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1RdWV1ZS5nZXQoKTsgfQog
CisgICAgdm9pZCBzdWJtaXQoVmVjdG9yPFJlZjxjb25zdCBHUFVDb21tYW5kQnVmZmVyPj4mJik7
CisKKyAgICBTdHJpbmcgbGFiZWwoKSBjb25zdDsKKyAgICB2b2lkIHNldExhYmVsKGNvbnN0IFN0
cmluZyYpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEdQVVF1ZXVlKFBsYXRmb3JtUXVldWVTbWFy
dFB0ciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQppbmRleCA4ZTY5YmUzYmNjODYwYmE3NWQw
ZmY4ODU3ZjU2ODE3MmUyNTU1NThiLi5hNzVhNjc3MzkxMDU0ODBhZTM4NGYzMDFhY2JmNzU1YmI1
NDk0Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVUXVldWVNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbQpAQCAtMzMsMTMgKzMzLDE3IEBACiAKICNp
bXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorc3RhdGljIE5TU3RyaW5nICogY29uc3QgY29tbWFuZFF1ZXVlRGVmYXVsdExhYmVsID0gQCJj
b20uYXBwbGUuV2ViS2l0IjsKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGNvbW1hbmRRdWV1ZUxh
YmVsUHJlZml4ID0gQCJjb20uYXBwbGUuV2ViS2l0LiI7CisKIFJlZlB0cjxHUFVRdWV1ZT4gR1BV
UXVldWU6OmNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmljZSkKIHsKICAgICBpZiAoIWRldmlj
ZS5wbGF0Zm9ybURldmljZSgpKSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6Y3Jl
YXRlKCk6IEludmFsaWQgR1BVRGV2aWNlISIpOworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUXVl
dWU6OmNyZWF0ZSgpOiBJbnZhbGlkIEdQVURldmljZS4iKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCkBAIC00OCwxMSArNTIsMTIgQEAgUmVmUHRyPEdQVVF1ZXVlPiBHUFVRdWV1
ZTo6Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIAogICAgIHF1ZXVlID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNl
KCkgbmV3Q29tbWFuZFF1ZXVlXSk7CisgICAgW3F1ZXVlIHNldExhYmVsOmNvbW1hbmRRdWV1ZURl
ZmF1bHRMYWJlbF07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgaWYg
KCFxdWV1ZSkgewotICAgICAgICBMT0coV2ViR1BVLCAiR1BVUXVldWU6OmNyZWF0ZSgpOiBVbmFi
bGUgdG8gY3JlYXRlIE1UTENvbW1hbmRRdWV1ZSEiKTsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQ
VVF1ZXVlOjpjcmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0ZSBNVExDb21tYW5kUXVldWUuIik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApAQCAtNjQsNiArNjksMzMgQEAgR1BVUXVl
dWU6OkdQVVF1ZXVlKFBsYXRmb3JtUXVldWVTbWFydFB0ciYmIHF1ZXVlKQogewogfQogCit2b2lk
IEdQVVF1ZXVlOjpzdWJtaXQoVmVjdG9yPFJlZjxjb25zdCBHUFVDb21tYW5kQnVmZmVyPj4mJikK
K3sKKyAgICAvLyBGSVhNRTogTWlzc2luZyBpbXBsZW1lbnRhdGlvbi4KK30KKworU3RyaW5nIEdQ
VVF1ZXVlOjpsYWJlbCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3BsYXRmb3JtUXVldWUpCisgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisgICAgTlNTdHJpbmcgKnByZWZpeGVkTGFiZWwg
PSBbbV9wbGF0Zm9ybVF1ZXVlIGxhYmVsXTsKKworICAgIGlmIChbcHJlZml4ZWRMYWJlbCBpc0Vx
dWFsVG9TdHJpbmc6Y29tbWFuZFF1ZXVlRGVmYXVsdExhYmVsXSkKKyAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CisKKyAgICBBU1NFUlQocHJlZml4ZWRMYWJlbC5sZW5ndGggPiBjb21tYW5k
UXVldWVMYWJlbFByZWZpeC5sZW5ndGgpOworICAgIHJldHVybiBbcHJlZml4ZWRMYWJlbCBzdWJz
dHJpbmdGcm9tSW5kZXg6Y29tbWFuZFF1ZXVlTGFiZWxQcmVmaXgubGVuZ3RoXTsKK30KKwordm9p
ZCBHUFVRdWV1ZTo6c2V0TGFiZWwoY29uc3QgU3RyaW5nJiBsYWJlbCkgY29uc3QKK3sKKyAgICBp
ZiAobGFiZWwuaXNFbXB0eSgpKQorICAgICAgICBbbV9wbGF0Zm9ybVF1ZXVlIHNldExhYmVsOmNv
bW1hbmRRdWV1ZURlZmF1bHRMYWJlbF07CisgICAgZWxzZQorICAgICAgICBbbV9wbGF0Zm9ybVF1
ZXVlIHNldExhYmVsOltjb21tYW5kUXVldWVMYWJlbFByZWZpeCBzdHJpbmdCeUFwcGVuZGluZ1N0
cmluZzpsYWJlbF1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCR1BVKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU1MzczMzI4NmQ4YWU1OGNkNGZmYzBlNWJkMDhhMThlOTIz
YmE3MmIuLjMwMGE0NTc2ZjRiZDYxZGFhNzdkMDI3ZGI5ODExNDRhYmFhOTMzZDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxOC0xMS0yMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdQVVF1ZXVlIGFuZCBkZXZpY2UuZ2V0UXVldWUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxOTExCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjIxNDg3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBB
bnRvaW5lIFF1aW50LgorCisgICAgICAgIFdQVC1zdHlsZSB0ZXN0IGZvciBxdWV1ZSBjcmVhdGlv
bi4KKworICAgICAgICAqIHdlYmdwdS9xdWV1ZS1jcmVhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmdwdS9xdWV1ZS1jcmVhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxOC0x
MS0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDbGljayBv
biBub2RlIGFzc2lnbmVkIHRvIHNsb3QgaW4gYnV0dG9uJ3Mgc2hhZG93IGNhdXNlIGxvc3Mgb2Yg
YnV0dG9uIGZvY3VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNTAzOGVmMDlhMzdjN2I3OTEyNDA1OWYzNWY2OGQxNzM1YzVh
Mjk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBnZXRRdWV1ZSgpIG9uIFdlYkdQ
VURldmljZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Njk5ZjcwNjJhY2I5ZTRhNzVlZTUwODdhYjQ5OGQxYzAxNzk3ZWMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLmh0bWwKQEAgLTAsMCArMSwz
MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50
YWw6V2ViR1BVRW5hYmxlZD10cnVlIF0gLS0+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PkdldCB0aGUgV2ViR1BVRGV2aWNlIGFuZCBhc2sgZm9yIHRoZSBXZWJHUFVRdWV1ZTwvdGl0bGU+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cud2ViZ3B1LCB1bmRlZmluZWQsICJ3
aW5kb3cud2ViZ3B1IGV4aXN0cyIpOworCisgICAgY29uc3Qgc3dhcENoYWluID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ3B1Iik7CisgICAgYXNzZXJ0
X3RydWUoc3dhcENoYWluIGluc3RhbmNlb2YgV2ViR1BVU3dhcENoYWluLCAiZ2V0Q29udGV4dCBy
ZXR1cm5lZCBhIFdlYkdQVVN3YXBDaGFpbi4iKTsKKworICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2Fp
dCB3aW5kb3cud2ViZ3B1LnJlcXVlc3RBZGFwdGVyKHt9KTsKKyAgICBhc3NlcnRfdHJ1ZShhZGFw
dGVyIGluc3RhbmNlb2YgV2ViR1BVQWRhcHRlciwgInJlcXVlc3RBZGFwdGVyIHJldHVybmVkIGEg
V2ViR1BVQWRhcHRlci4iKTsKKworICAgIGNvbnN0IGRldmljZSA9IGFkYXB0ZXIuY3JlYXRlRGV2
aWNlKCk7CisgICAgYXNzZXJ0X3RydWUoZGV2aWNlIGluc3RhbmNlb2YgV2ViR1BVRGV2aWNlLCAi
Y3JlYXRlRGV2aWNlIHJldHVybmVkIGEgV2ViR1BVRGV2aWNlLiIpOworCisgICAgY29uc3QgcXVl
dWUgPSBkZXZpY2UuZ2V0UXVldWUoKTsKKyAgICBhc3NlcnRfdHJ1ZShxdWV1ZSBpbnN0YW5jZW9m
IFdlYkdQVVF1ZXVlLCAiZ2V0UXVldWUgcmV0dXJuZWQgYSBXZWJHUFVRdWV1ZS4iKTsKKworICAg
IHF1ZXVlLmxhYmVsID0gIkV4YW1wbGUgbGFiZWwiOworICAgIGFzc2VydF9lcXVhbHMocXVldWUu
bGFiZWwsICJFeGFtcGxlIGxhYmVsIiwgInF1ZXVlLmxhYmVsIHdhcyBzZXQuIik7Cit9LCAiZ2V0
UXVldWUoKSBvbiBXZWJHUFVEZXZpY2UuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355483</attachid>
            <date>2018-11-22 12:48:27 -0800</date>
            <delta_ts>2018-11-22 12:48:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191911-20181123074825.patch</filename>
            <type>text/plain</type>
            <size>27175</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1MTYyYzgwYWM1Y2Fl
Njg4MDIzYzVmMDcyNGUwNTk0NTM0ZmZhYy4uZjhmOWEwNzhkMTZiMDc0ODdhYzRkMTkyMWEzOWVl
ZjZlNzM3ODkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE4LTExLTIyICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR1BVUXVl
dWUgYW5kIGRldmljZS5nZXRRdWV1ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTE5MTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MjE0ODcx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9pbmUgUXVpbnQuCisKKyAgICAgICAgSW1wbGVt
ZW50IFdlYkdQVURldmljZTo6Z2V0UXVldWUoKSwgd2hpY2ggY3JlYXRlcyBhIFdlYkdQVVF1ZXVl
CisgICAgICAgIGluc3RhbmNlIGlmIG5lY2Vzc2FyeS4gQWxzbyBsaW5rIFdlYkdQVVF1ZXVlIHRv
IHRoZSBleGlzdGluZworICAgICAgICBHUFVRdWV1ZSBvYmplY3QsIGFuZCBleHBvc2UgdGhlIGxh
YmVsIElETCBwcm9wZXJ0eS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHNvbWUg
d29yayBmcm9tIEp1c3RpbiBGYW4uCisKKyAgICAgICAgVGVzdDogd2ViZ3B1L3F1ZXVlLWNyZWF0
aW9uLmh0bWwKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAgICAgTmV3IGZpbGVzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tbWFuZEJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVQ29tbWFuZEJ1ZmZlcjo6
Y29tbWFuZEJ1ZmZlciBjb25zdCk6CisgICAgICAgICAgICBFeHBvc2UgYSBHUFVDb21tYW5kQnVm
ZmVyIGdldHRlciwgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgKGV2ZW4gdGhvdWdoCisgICAgICAgICAg
ICB0aGUgYWN0dWFsIEdQVSBzdWJtaXNzaW9uIGlzbid0IGltcGxlbWVudGVkIHlldCkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR1BVRGV2aWNlOjpnZXRRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2Vi
R1BVRGV2aWNlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbDoK
KyAgICAgICAgICAgIEltcGxlbWVudCBnZXRRdWV1ZSgpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVRdWV1ZTo6V2ViR1BVUXVldWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR1BVUXVldWU6OnN1Ym1pdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdQVVF1ZXVlOjpsYWJl
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHUFVRdWV1ZTo6c2V0TGFiZWwpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlkbDoKKyAgICAgICAgICAgIE5ldyBj
bGFzcy4gTW9zdGx5IHNlbmRzIHN0dWZmIG9udG8gR1BVUXVldWUuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICAgICBBZGQgV2ViR1BVUXVl
dWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVUXVldWUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUXVldWVNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVF1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUXVl
dWU6OnN1Ym1pdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVRdWV1ZTo6bGFiZWwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R1BVUXVldWU6OnNldExhYmVsIGNvbnN0KToKKyAgICAgICAgICAg
ICJsYWJlbCIgZ2V0dGVyL3NldHRlciB0aGF0IHVzZXMKKyAgICAgICAgICAgIHRoZSB1bmRlcmx5
aW5nIE1UTENvbW1hbmRRdWV1ZSBsYWJlbCBwcm9wZXJ0eSwgYnV0IHByZWZpeGVzCisgICAgICAg
ICAgICBpdCB3aXRoIGEgV2ViS2l0IGlkZW50aWZpZXIsIHNvIGl0IGNhbiBiZSBjb3JyZWN0bHkK
KyAgICAgICAgICAgIGlkZW50aWZpZWQgaW4gc3lzdGVtIGNyYXNoIGxvZ3MgYXMgY29taW5nIGZy
b20gV2ViR1BVLgorCiAyMDE4LTExLTIwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
IAogICAgICAgICBNb3ZlIFdlYkdQVSBwbGF0Zm9ybSBjb2RlIHRvIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyNzlkNWMzMTgzMjBlNTFmZjRkNWY4YTEwODc3
YzhmM2U1YmIyM2E4Li42MmQ3ZjllNzZlNzA3ZTYxYmZhODgyNmJjYTUxMzkzNjgzYTQ4YzhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDYyLDYgKzQ2Miw3IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbAogICAgIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuaWRsCiAgICAgTW9kdWxl
cy93ZWJncHUvV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsCisgICAgTW9kdWxlcy93
ZWJncHUvV2ViR1BVUXVldWUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlw
ZWxpbmUuaWRsCiAgICAgTW9kdWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yLmlkbAogICAgIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBmMTZmNzExNjYwZTlmNWExNWM5ZTQ0MGU0
NzczMWEzNDQ0NTA0M2EwLi5jYmU1ZTAwMGMzOWVmOTI0NjU1MTQ0ZGE4NjNlNTI0Yjk0ZThlZDg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3Nyw2ICszNzcsNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFw
dGVyRGVzY3JpcHRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
Q29tbWFuZEJ1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxpbmVEZXNjcmlw
dG9yQmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVUGlwZWxp
bmVTdGFnZURlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVVJlbmRlclBpcGVsaW5lLmlkbCBcCkBAIC0zODgsNyArMzg5LDcgQEAgSlNfQklORElOR19J
RExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVU3dhcENoYWluLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlRm9ybWF0RW51bS5pZGwg
XAotCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJ2ci9ET01XaW5kb3dXZWJWUi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQ29tbWFuZEJ1ZmZlci5oCmluZGV4IDE2MWI1MjE3ZWNh
MGJhNzFhZDk5NzE1ZGM5ZDk0MTY5ZjE1OGEzZTUuLjM4Nzg4NWUxNDFhYjI2MjkwZjFmNjNjYjU2
NmE0YzhiZjE3N2YzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbW1hbmRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XZWJHUFVDb21tYW5kQnVmZmVyLmgKQEAgLTM5LDYgKzM5LDggQEAgY2xhc3MgV2ViR1BVQ29t
bWFuZEJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVUNvbW1hbmRCdWZmZXI+IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+IGNyZWF0ZShSZWZQ
dHI8R1BVQ29tbWFuZEJ1ZmZlcj4mJik7CiAKKyAgICBjb25zdCBHUFVDb21tYW5kQnVmZmVyJiBj
b21tYW5kQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kQnVmZmVyLmdldCgpOyB9CisK
IHByaXZhdGU6CiAgICAgV2ViR1BVQ29tbWFuZEJ1ZmZlcihSZWY8R1BVQ29tbWFuZEJ1ZmZlcj4m
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURl
dmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2UuY3Bw
CmluZGV4IDM0ZWUxNDhlOTczNmI5ZWU2NWIxNWY1M2M0MTZlMTAyZWQ2ZWFlOWQuLmU5MDFjMTJi
OTkzYzJlYmYyNzNkNDk1ZjZhNGE0ZmU3YjFkMWMyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJHUFVDb21tYW5kQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVUGlwZWxpbmVTdGFnZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJXZWJHUFVRdWV1
ZS5oIgogI2luY2x1ZGUgIldlYkdQVVJlbmRlclBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiV2ViR1BV
UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV2ViR1BVU2hhZGVyTW9kdWxl
LmgiCkBAIC0xMjQsNiArMTI1LDE0IEBAIFJlZlB0cjxXZWJHUFVDb21tYW5kQnVmZmVyPiBXZWJH
UFVEZXZpY2U6OmNyZWF0ZUNvbW1hbmRCdWZmZXIoKSBjb25zdAogICAgIHJldHVybiBXZWJHUFVD
b21tYW5kQnVmZmVyOjpjcmVhdGUobV9kZXZpY2UtPmNyZWF0ZUNvbW1hbmRCdWZmZXIoKSk7CiB9
CiAKK1JlZlB0cjxXZWJHUFVRdWV1ZT4gV2ViR1BVRGV2aWNlOjpnZXRRdWV1ZSgpCit7CisgICAg
aWYgKCFtX3F1ZXVlKQorICAgICAgICBtX3F1ZXVlID0gV2ViR1BVUXVldWU6OmNyZWF0ZShtX2Rl
dmljZS0+Z2V0UXVldWUoKSk7CisKKyAgICByZXR1cm4gbV9xdWV1ZTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdQVSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmgKaW5kZXggNTA3YTE4Nzg3ZDJlNDA1MTI2
NWFjNjgyNDUzYWUwNzAxNjYwYTJmMC4uOWZhM2EwN2Q5NDI2NmNjYzYxYzE3NDEwZmMyMDViZDY5
ZmQwMTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BV
RGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNl
LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkdQVURldmljZS5oIgogI2luY2x1ZGUg
IldlYkdQVUFkYXB0ZXIuaCIKLQorI2luY2x1ZGUgIldlYkdQVVF1ZXVlLmgiCiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgpAQCAtNTUsMTMgKzU1LDE0IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViR1BVUmVu
ZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKFdlYkdQVVJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYmKSBjb25zdDsKIAogICAgIFJlZlB0cjxXZWJHUFVDb21tYW5kQnVmZmVyPiBjcmVh
dGVDb21tYW5kQnVmZmVyKCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYkdQVVF1ZXVlPiBnZXRRdWV1
ZSgpOwogCiBwcml2YXRlOgogICAgIFdlYkdQVURldmljZShSZWY8V2ViR1BVQWRhcHRlcj4mJiwg
UmVmUHRyPEdQVURldmljZT4mJik7CiAKICAgICBSZWY8V2ViR1BVQWRhcHRlcj4gbV9hZGFwdGVy
OwotCiAgICAgUmVmUHRyPEdQVURldmljZT4gbV9kZXZpY2U7CisgICAgUmVmUHRyPFdlYkdQVVF1
ZXVlPiBtX3F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVRGV2aWNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVURldmljZS5pZGwKaW5kZXggZjYzMWM5ZTFiOWQ5
ZjA3NjZjNzhiN2M2M2NmMDIwMzY4NTIyZmRkYi4uNmJiZGFhNmM2ODY1YzNlNjgxNDkwYjI4ZDlm
OWE2MTgyM2QzODk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V2ViR1BVRGV2aWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuaWRsCkBAIC0zOSwyNSArMzksMjQgQEAKICAgICAvLyBGSVhNRTogQ3VycmVudGx5
LCBXZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvciBpcyBhbiBlbXB0eSBkaWN0aW9uYXJ5Lgog
ICAgIFdlYkdQVUNvbW1hbmRCdWZmZXIgY3JlYXRlQ29tbWFuZEJ1ZmZlcigvKldlYkdQVUNvbW1h
bmRCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IqLyk7CiAKLS8qIFRvIEJlIEltcGxlbWVudGVk
OgotICAgIFdlYkdQVUJ1ZmZlciBjcmVhdGVCdWZmZXIoV2ViR1BVQnVmZmVyRGVzY3JpcHRvciBk
ZXNjcmlwdG9yKTsKLSAgICBXZWJHUFVUZXh0dXJlIGNyZWF0ZVRleHR1cmUoV2ViR1BVVGV4dHVy
ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVU2FtcGxlciBjcmVhdGVTYW1wbGVy
KFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotCi0gICAgV2ViR1BVQmluZEdy
b3VwTGF5b3V0IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGNyZWF0ZVBpcGVs
aW5lTGF5b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAg
ICBXZWJHUFVCaW5kR3JvdXAgY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0
b3IgZGVzY3JpcHRvcik7Ci0KLSAgICBXZWJHUFVCbGVuZFN0YXRlIGNyZWF0ZUJsZW5kU3RhdGUo
V2ViR1BVQmxlbmRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVRGVwdGhT
dGVuY2lsU3RhdGUgY3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BVRGVwdGhTdGVuY2lsU3Rh
dGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOwotICAgIFdlYkdQVUlucHV0U3RhdGUgY3JlYXRlSW5w
dXRTdGF0ZShXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKLSAgICBXZWJH
UFVBdHRhY2htZW50U3RhdGUgY3JlYXRlQXR0YWNobWVudFN0YXRlKFdlYkdQVUF0dGFjaG1lbnRT
dGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7Ci0gICAgV2ViR1BVQ29tcHV0ZVBpcGVsaW5lIGNy
ZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpOwotICAgIFdlYkdQVUZlbmNlIGNyZWF0ZUZlbmNlKFdlYkdQVUZlbmNlRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKTsKLQogICAgIFdlYkdQVVF1ZXVlIGdldFF1ZXVlKCk7CiAKLSAgICBhdHRy
aWJ1dGUgV2ViR1BVTG9nQ2FsbGJhY2sgb25Mb2c7Ci0gICAgV2ViR1BVT2JqZWN0U3RhdHVzUXVl
cnkgZ2V0T2JqZWN0U3RhdHVzKFN0YXR1c2FibGVPYmplY3Qgc3RhdHVzYWJsZU9iamVjdCk7Ci0q
LworICAgIC8vIEZJWE1FOiBVbmltcGxlbWVudGVkLgorICAgIC8vIFdlYkdQVUJ1ZmZlciBjcmVh
dGVCdWZmZXIoV2ViR1BVQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLyBXZWJH
UFVUZXh0dXJlIGNyZWF0ZVRleHR1cmUoV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRv
cik7CisgICAgLy8gV2ViR1BVU2FtcGxlciBjcmVhdGVTYW1wbGVyKFdlYkdQVVNhbXBsZXJEZXNj
cmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8vCisgICAgLy8gV2ViR1BVQmluZEdyb3VwTGF5b3V0
IGNyZWF0ZUJpbmRHcm91cExheW91dChXZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yIGRl
c2NyaXB0b3IpOworICAgIC8vIFdlYkdQVVBpcGVsaW5lTGF5b3V0IGNyZWF0ZVBpcGVsaW5lTGF5
b3V0KFdlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLyBX
ZWJHUFVCaW5kR3JvdXAgY3JlYXRlQmluZEdyb3VwKFdlYkdQVUJpbmRHcm91cERlc2NyaXB0b3Ig
ZGVzY3JpcHRvcik7CisgICAgLy8KKyAgICAvLyBXZWJHUFVCbGVuZFN0YXRlIGNyZWF0ZUJsZW5k
U3RhdGUoV2ViR1BVQmxlbmRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8gV2Vi
R1BVRGVwdGhTdGVuY2lsU3RhdGUgY3JlYXRlRGVwdGhTdGVuY2lsU3RhdGUoV2ViR1BVRGVwdGhT
dGVuY2lsU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8vIFdlYkdQVUlucHV0U3Rh
dGUgY3JlYXRlSW5wdXRTdGF0ZShXZWJHUFVJbnB1dFN0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9y
KTsKKyAgICAvLyBXZWJHUFVBdHRhY2htZW50U3RhdGUgY3JlYXRlQXR0YWNobWVudFN0YXRlKFdl
YkdQVUF0dGFjaG1lbnRTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisgICAgLy8gV2ViR1BV
Q29tcHV0ZVBpcGVsaW5lIGNyZWF0ZUNvbXB1dGVQaXBlbGluZShXZWJHUFVDb21wdXRlUGlwZWxp
bmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworICAgIC8vIFdlYkdQVUZlbmNlIGNyZWF0ZUZlbmNl
KFdlYkdQVUZlbmNlRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKyAgICAvLworICAgIC8vIGF0dHJp
YnV0ZSBXZWJHUFVMb2dDYWxsYmFjayBvbkxvZzsKKyAgICAvLyBXZWJHUFVPYmplY3RTdGF0dXNR
dWVyeSBnZXRPYmplY3RTdGF0dXMoU3RhdHVzYWJsZU9iamVjdCBzdGF0dXNhYmxlT2JqZWN0KTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGQ5MThkOGMyODA1MmQ0MjQwYTU1NjgyZDgxNzczMzc3NGIwMjAwNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNw
cApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdQVVF1ZXVlLmgiCisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCisjaW5jbHVkZSAi
R1BVQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkdQVVF1ZXVlLmgiCisjaW5jbHVkZSAiV2Vi
R1BVQ29tbWFuZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxXZWJH
UFVRdWV1ZT4gV2ViR1BVUXVldWU6OmNyZWF0ZShSZWZQdHI8R1BVUXVldWU+JiYgcXVldWUpCit7
CisgICAgaWYgKCFxdWV1ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkdQVVF1ZXVlKHF1ZXVlLnJlbGVhc2VOb25OdWxsKCkpKTsKK30KKwor
V2ViR1BVUXVldWU6OldlYkdQVVF1ZXVlKFJlZjxHUFVRdWV1ZT4mJiBxdWV1ZSkKKyAgICA6IG1f
cXVldWUoV1RGTW92ZShxdWV1ZSkpCit7Cit9CisKK3ZvaWQgV2ViR1BVUXVldWU6OnN1Ym1pdChW
ZWN0b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+PiYmIGJ1ZmZlcnMpCit7CisgICAgYXV0
byBncHVCdWZmZXJzID0gYnVmZmVycy5tYXAoW10gKGNvbnN0IGF1dG8mIGJ1ZmZlcikgLT4gUmVm
PGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+IHsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci0+Y29tbWFu
ZEJ1ZmZlcigpOworICAgIH0pOworICAgIG1fcXVldWUtPnN1Ym1pdChXVEZNb3ZlKGdwdUJ1ZmZl
cnMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdQVSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1
ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRkODJmNmZlN2RhMjg5NzBiYmE0MWQ2ZmQ4ZThlYmUwNzMxNmUxYWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJHUFUpCisKKyNpbmNsdWRlICJHUFVRdWV1ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHUFVDb21tYW5kQnVmZmVyOworCitjbGFz
cyBXZWJHUFVRdWV1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdQVVF1ZXVlPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZlB0cjxXZWJHUFVRdWV1ZT4gY3JlYXRlKFJlZlB0cjxHUFVRdWV1ZT4m
Jik7CisKKyAgICB2b2lkIHN1Ym1pdChWZWN0b3I8UmVmUHRyPFdlYkdQVUNvbW1hbmRCdWZmZXI+
PiYmKTsKKworICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcXVldWUtPmxhYmVs
KCk7IH0KKyAgICB2b2lkIHNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpIHsgbV9xdWV1ZS0+
c2V0TGFiZWwobGFiZWwpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViR1BVUXVldWUoUmVmPEdQVVF1
ZXVlPiYmKTsKKworICAgIFJlZjxHUFVRdWV1ZT4gbV9xdWV1ZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHUFUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY2YTcwOWY5MGE5
NzY0NDRkMGYwNzZhOWY0YjRlNzI4NjkwOTMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmlkbApAQCAtMCwwICsxLDM3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncHV3ZWIvZ3B1d2ViL2Jsb2IvbWFzdGVy
L2Rlc2lnbi9za2V0Y2gud2ViaWRsCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHUFUsCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJHUFUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQor
XSBpbnRlcmZhY2UgV2ViR1BVUXVldWUgeworICAgIHZvaWQgc3VibWl0KHNlcXVlbmNlPFdlYkdQ
VUNvbW1hbmRCdWZmZXI+IGJ1ZmZlcnMpOworCisgICAgLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQu
CisgICAgLy8gdm9pZCBzaWduYWwoV2ViR1BVRmVuY2UgZmVuY2UsIHU2NCBzaWduYWxWYWx1ZSk7
CisgICAgLy8gdm9pZCB3YWl0KFdlYkdQVUZlbmNlIGZlbmNlLCB1NjQgdmFsdWVUb1dhaXQpOwor
fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI5MzllOGFk
NTNlN2Q3NTdlMzEzMmNhMjk2MjNmOWM4NzY0MTU1ZjQuLmU4OGU4ZmZhY2VlNDZkYWYwYjc2ZTg2
ZjY2MGU2ODQyNGZkNzJhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMDUsNiArMzA1LDcgQEAgTW9k
dWxlcy93ZWJncHUvV2ViR1BVLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAK
IE1vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVEZXZpY2UuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVRdWV1ZS5jcHAKIE1vZHVsZXMv
d2ViZ3B1L1dlYkdQVVJlbmRlcmluZ0NvbnRleHQuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVS
ZW5kZXJQaXBlbGluZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVsZS5jcHAK
QEAgLTMyMTQsNiArMzIxNSw3IEBAIEpTV2ViR1BVQWRhcHRlci5jcHAKIEpTV2ViR1BVQWRhcHRl
ckRlc2NyaXB0b3IuY3BwCiBKU1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCiBKU1dlYkdQVURldmlj
ZS5jcHAKK0pTV2ViR1BVUXVldWUuY3BwCiBKU1dlYkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2Uu
Y3BwCiBKU1dlYkdQVVBpcGVsaW5lU3RhZ2VEZXNjcmlwdG9yLmNwcAogSlNXZWJHUFVSZW5kZXJp
bmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDA1MjI4MWU3ZmY2ZjliNmZkOTEzZmJjY2M2MTU3NWI3MGVjNmNm
NjUuLjY2M2Q2MGVjMjI3MWViYzA1NDg1Nzc3Yjg2ZGIzY2UwYTcxMGJlN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5NDEs
NiArNjk0MSwxMSBAQAogCQkzMTJGRjkwRTIxQTRDMzNGMDBFQjE5OUQgLyogR1BVTGVnYWN5UmVu
ZGVyUGlwZWxpbmVTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVMZWdhY3lSZW5kZXJQaXBlbGlu
ZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkZGOTBGMjFBNEMzM0Yw
MEVCMTk5RCAvKiBHUFVMZWdhY3lDb21tYW5kUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R1BVTGVnYWN5Q29tbWFuZFF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzEyRkY5MTAyMUE0QzMzRjAwRUIxOTlEIC8qIEdQVUxlZ2FjeUZ1bmN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdQVUxlZ2FjeUZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxMkZGOTM5MjFBNjFDOUYwMEVCMTk5RCAvKiBXZWJHUFVRdWV1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHUFVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTJGRjkzQjIxQTYxQ0EwMDBFQjE5OUQgLyogV2ViR1BVUXVldWUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdQVVF1ZXVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzEyRkY5M0MyMUE2MUNBMTAwRUIxOTlEIC8qIFdlYkdQVVF1ZXVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVF1ZXVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEyRkY5M0QyMUE2MUYwNzAwRUIxOTlEIC8qIEpTV2Vi
R1BVUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHUFVRdWV1
ZS5oOyBwYXRoID0gSlNXZWJHUFVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTJGRjkzRTIxQTYxRjA3MDBFQjE5OUQgLyogSlNXZWJHUFVRdWV1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdQVVF1ZXVlLmNwcDsgcGF0aCA9IEpT
V2ViR1BVUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTMxNzE1NDFG
QjA3OUQxMDA4RDkxRkMgLyogQ2FudmFzQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYW52YXNCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzE3
MTU3MUZCMDk2OUUwMDhEOTFGQyAvKiBDYW52YXNCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZhc0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwMDFFN0REQzYwMDBGMzA2MzAgLyogUlRDSWNlQ29ubmVjdGlvblN0YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI3MzAsNiArMjI3MzUsOCBAQAog
CQkJCTMxQTA4OTJGMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUZ1bmN0aW9uLmggKi8sCiAJ
CQkJMzFBMDg5MzAxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVTGlicmFyeS5jcHAgKi8sCiAJ
CQkJMzFBMDg5MzIxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVTGlicmFyeS5oICovLAorCQkJ
CTMxMkZGOTNFMjFBNjFGMDcwMEVCMTk5RCAvKiBKU1dlYkdQVVF1ZXVlLmNwcCAqLywKKwkJCQkz
MTJGRjkzRDIxQTYxRjA3MDBFQjE5OUQgLyogSlNXZWJHUFVRdWV1ZS5oICovLAogCQkJCTMxQTA4
OTMzMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJlbmRlckNvbW1hbmRFbmNvZGVyLmNwcCAq
LywKIAkJCQkzMUEwODkzNTFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVSZW5kZXJDb21tYW5k
RW5jb2Rlci5oICovLAogCQkJCTMxQTA4OTM2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVVJl
bmRlcmluZ0NvbnRleHQuY3BwICovLApAQCAtMjU2NzMsNiArMjU2ODAsOSBAQAogCQkJCUQwQzQx
OUYxMjE4M0VCMzEwMDlFQzFERSAvKiBXZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmlkbCAq
LywKIAkJCQlEMEM0MTlFQjIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlwZWxpbmVTdGFnZURl
c2NyaXB0b3IuaCAqLywKIAkJCQlEMEM0MTlFQzIxODNDRkEyMDA5RUMxREUgLyogV2ViR1BVUGlw
ZWxpbmVTdGFnZURlc2NyaXB0b3IuaWRsICovLAorCQkJCTMxMkZGOTNDMjFBNjFDQTEwMEVCMTk5
RCAvKiBXZWJHUFVRdWV1ZS5jcHAgKi8sCisJCQkJMzEyRkY5MzkyMUE2MUM5RjAwRUIxOTlEIC8q
IFdlYkdQVVF1ZXVlLmggKi8sCisJCQkJMzEyRkY5M0IyMUE2MUNBMDAwRUIxOTlEIC8qIFdlYkdQ
VVF1ZXVlLmlkbCAqLywKIAkJCQlEMDkzRDIyOTIxNzk1NDE2MDAzMjkyMTcgLyogV2ViR1BVUmVu
ZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJRDA5M0QyMjUyMTc5NTFENDAwMzI5MjE3IC8qIFdl
YkdQVVJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQlEMDkzRDIyNzIxNzk1MUQ0MDAzMjkyMTcg
LyogV2ViR1BVUmVuZGVyaW5nQ29udGV4dC5pZGwgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggYWVjZTFjMzdiMTI4NjIxMmQx
MWNkZWUzMmVjY2U5NzM4OTdlZDNlOC4uZjYwNmQ3YzZkOTNkNjBjZTUwMzczMTdjNDkzYzdiNjYw
YzgzNzQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtMTgxLDYgKzE4MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBt
YWNybyhXZWJHUFVBZGFwdGVyKSBcCiAgICAgbWFjcm8oV2ViR1BVRGV2aWNlKSBcCiAgICAgbWFj
cm8oV2ViR1BVQ29tbWFuZEJ1ZmZlcikgXAorICAgIG1hY3JvKFdlYkdQVVF1ZXVlKSBcCiAgICAg
bWFjcm8oV2ViR1BVUmVuZGVyaW5nQ29udGV4dCkgXAogICAgIG1hY3JvKFdlYkdQVVJlbmRlclBp
cGVsaW5lKSBcCiAgICAgbWFjcm8oV2ViR1BVU2hhZGVyU3RhZ2UpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVRdWV1ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVF1ZXVlLmgKaW5kZXggM2ZkZDAwY2ZhOGMy
YTExY2Y2NGUzYTRkNTAyNTY4ZGY0MjIxOGJkYS4uY2FmY2ZjN2E5NjMzNGMwMzdiZDQ3ZmRkMWM0
ZTI3YzY1NTJmNGUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVVF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVF1ZXVlLmgKQEAgLTM1LDE3ICszNSwyMyBAQCBPQkpDX1BST1RPQ09MKE1UTENvbW1h
bmRRdWV1ZSk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1BVRGV2aWNlOwotCiB1
c2luZyBQbGF0Zm9ybVF1ZXVlID0gTVRMQ29tbWFuZFF1ZXVlOwogdXNpbmcgUGxhdGZvcm1RdWV1
ZVNtYXJ0UHRyID0gUmV0YWluUHRyPE1UTENvbW1hbmRRdWV1ZT47CiAKK2NsYXNzIEdQVUNvbW1h
bmRCdWZmZXI7CitjbGFzcyBHUFVEZXZpY2U7CisKIGNsYXNzIEdQVVF1ZXVlIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVUXVldWU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdQVVF1ZXVl
PiBjcmVhdGUoY29uc3QgR1BVRGV2aWNlJik7CiAKICAgICBQbGF0Zm9ybVF1ZXVlKiBwbGF0Zm9y
bVF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybVF1ZXVlLmdldCgpOyB9CiAKKyAgICB2
b2lkIHN1Ym1pdChWZWN0b3I8UmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmKTsKKworICAg
IFN0cmluZyBsYWJlbCgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJikg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgR1BVUXVldWUoUGxhdGZvcm1RdWV1ZVNtYXJ0UHRyJiYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVUXVldWVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCmluZGV4IDhlNjliZTNiY2M4NjBiYTc1ZDBmZjg4NTdm
NTY4MTcyZTI1NTU1OGIuLmE3NWE2NzczOTEwNTQ4MGFlMzg0ZjMwMWFjYmY3NTViYjU0OTRjODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVRdWV1ZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tCkBAIC0zMywxMyArMzMsMTcgQEAKIAogI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0
aWMgTlNTdHJpbmcgKiBjb25zdCBjb21tYW5kUXVldWVEZWZhdWx0TGFiZWwgPSBAImNvbS5hcHBs
ZS5XZWJLaXQiOworc3RhdGljIE5TU3RyaW5nICogY29uc3QgY29tbWFuZFF1ZXVlTGFiZWxQcmVm
aXggPSBAImNvbS5hcHBsZS5XZWJLaXQuIjsKKwogUmVmUHRyPEdQVVF1ZXVlPiBHUFVRdWV1ZTo6
Y3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlKQogewogICAgIGlmICghZGV2aWNlLnBsYXRm
b3JtRGV2aWNlKCkpIHsKLSAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVF1ZXVlOjpjcmVhdGUoKTog
SW52YWxpZCBHUFVEZXZpY2UhIik7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6Y3Jl
YXRlKCk6IEludmFsaWQgR1BVRGV2aWNlLiIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKQEAgLTQ4LDExICs1MiwxMiBAQCBSZWZQdHI8R1BVUXVldWU+IEdQVVF1ZXVlOjpjcmVh
dGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpY2UpCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogCiAgICAgcXVldWUgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdD
b21tYW5kUXVldWVdKTsKKyAgICBbcXVldWUgc2V0TGFiZWw6Y29tbWFuZFF1ZXVlRGVmYXVsdExh
YmVsXTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoIXF1ZXVl
KSB7Ci0gICAgICAgIExPRyhXZWJHUFUsICJHUFVRdWV1ZTo6Y3JlYXRlKCk6IFVuYWJsZSB0byBj
cmVhdGUgTVRMQ29tbWFuZFF1ZXVlISIpOworICAgICAgICBMT0coV2ViR1BVLCAiR1BVUXVldWU6
OmNyZWF0ZSgpOiBVbmFibGUgdG8gY3JlYXRlIE1UTENvbW1hbmRRdWV1ZS4iKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCkBAIC02NCw2ICs2OSwzMyBAQCBHUFVRdWV1ZTo6R1BV
UXVldWUoUGxhdGZvcm1RdWV1ZVNtYXJ0UHRyJiYgcXVldWUpCiB7CiB9CiAKK3ZvaWQgR1BVUXVl
dWU6OnN1Ym1pdChWZWN0b3I8UmVmPGNvbnN0IEdQVUNvbW1hbmRCdWZmZXI+PiYmKQoreworICAg
IC8vIEZJWE1FOiBNaXNzaW5nIGltcGxlbWVudGF0aW9uLgorfQorCitTdHJpbmcgR1BVUXVldWU6
OmxhYmVsKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGxhdGZvcm1RdWV1ZSkKKyAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICBOU1N0cmluZyAqcHJlZml4ZWRMYWJlbCA9IFttX3Bs
YXRmb3JtUXVldWUgbGFiZWxdOworCisgICAgaWYgKFtwcmVmaXhlZExhYmVsIGlzRXF1YWxUb1N0
cmluZzpjb21tYW5kUXVldWVEZWZhdWx0TGFiZWxdKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKKworICAgIEFTU0VSVChwcmVmaXhlZExhYmVsLmxlbmd0aCA+IGNvbW1hbmRRdWV1ZUxh
YmVsUHJlZml4Lmxlbmd0aCk7CisgICAgcmV0dXJuIFtwcmVmaXhlZExhYmVsIHN1YnN0cmluZ0Zy
b21JbmRleDpjb21tYW5kUXVldWVMYWJlbFByZWZpeC5sZW5ndGhdOworfQorCit2b2lkIEdQVVF1
ZXVlOjpzZXRMYWJlbChjb25zdCBTdHJpbmcmIGxhYmVsKSBjb25zdAoreworICAgIGlmIChsYWJl
bC5pc0VtcHR5KCkpCisgICAgICAgIFttX3BsYXRmb3JtUXVldWUgc2V0TGFiZWw6Y29tbWFuZFF1
ZXVlRGVmYXVsdExhYmVsXTsKKyAgICBlbHNlCisgICAgICAgIFttX3BsYXRmb3JtUXVldWUgc2V0
TGFiZWw6W2NvbW1hbmRRdWV1ZUxhYmVsUHJlZml4IHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOmxh
YmVsXV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJHUFUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTUzNzMzMjg2ZDhhZTU4Y2Q0ZmZjMGU1YmQwOGExOGU5MjNiYTcyYi4u
MzAwYTQ1NzZmNGJkNjFkYWE3N2QwMjdkYjk4MTE0NGFiYWE5MzNkMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE4LTExLTIyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgV2ViR1BVUXVldWUgYW5kIGRldmljZS5nZXRRdWV1ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE5MTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ2MjE0ODcxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9pbmUg
UXVpbnQuCisKKyAgICAgICAgV1BULXN0eWxlIHRlc3QgZm9yIHF1ZXVlIGNyZWF0aW9uLgorCisg
ICAgICAgICogd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ3B1L3F1ZXVlLWNyZWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE4LTExLTE5ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENsaWNrIG9uIG5vZGUg
YXNzaWduZWQgdG8gc2xvdCBpbiBidXR0b24ncyBzaGFkb3cgY2F1c2UgbG9zcyBvZiBidXR0b24g
Zm9jdXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS9xdWV1ZS1jcmVhdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY1MDM4ZWYwOWEzN2M3Yjc5MTI0MDU5ZjM1ZjY4ZDE3MzVjNWEyOTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGdldFF1ZXVlKCkgb24gV2ViR1BVRGV2aWNl
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdwdS9xdWV1ZS1jcmVhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2OTlm
NzA2MmFjYjllNGE3NWVlNTA4N2FiNDk4ZDFjMDE3OTdlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJncHUvcXVldWUtY3JlYXRpb24uaHRtbApAQCAtMCwwICsxLDMxIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpXZWJH
UFVFbmFibGVkPXRydWUgXSAtLT4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+R2V0IHRo
ZSBXZWJHUFVEZXZpY2UgYW5kIGFzayBmb3IgdGhlIFdlYkdQVVF1ZXVlPC90aXRsZT4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy53ZWJncHUsIHVuZGVmaW5lZCwgIndpbmRvdy53
ZWJncHUgZXhpc3RzIik7CisKKyAgICBjb25zdCBzd2FwQ2hhaW4gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJncHUiKTsKKyAgICBhc3NlcnRfdHJ1ZShz
d2FwQ2hhaW4gaW5zdGFuY2VvZiBXZWJHUFVTd2FwQ2hhaW4sICJnZXRDb250ZXh0IHJldHVybmVk
IGEgV2ViR1BVU3dhcENoYWluLiIpOworCisgICAgY29uc3QgYWRhcHRlciA9IGF3YWl0IHdpbmRv
dy53ZWJncHUucmVxdWVzdEFkYXB0ZXIoe30pOworICAgIGFzc2VydF90cnVlKGFkYXB0ZXIgaW5z
dGFuY2VvZiBXZWJHUFVBZGFwdGVyLCAicmVxdWVzdEFkYXB0ZXIgcmV0dXJuZWQgYSBXZWJHUFVB
ZGFwdGVyLiIpOworCisgICAgY29uc3QgZGV2aWNlID0gYWRhcHRlci5jcmVhdGVEZXZpY2UoKTsK
KyAgICBhc3NlcnRfdHJ1ZShkZXZpY2UgaW5zdGFuY2VvZiBXZWJHUFVEZXZpY2UsICJjcmVhdGVE
ZXZpY2UgcmV0dXJuZWQgYSBXZWJHUFVEZXZpY2UuIik7CisKKyAgICBjb25zdCBxdWV1ZSA9IGRl
dmljZS5nZXRRdWV1ZSgpOworICAgIGFzc2VydF90cnVlKHF1ZXVlIGluc3RhbmNlb2YgV2ViR1BV
UXVldWUsICJnZXRRdWV1ZSByZXR1cm5lZCBhIFdlYkdQVVF1ZXVlLiIpOworCisgICAgcXVldWUu
bGFiZWwgPSAiRXhhbXBsZSBsYWJlbCI7CisgICAgYXNzZXJ0X2VxdWFscyhxdWV1ZS5sYWJlbCwg
IkV4YW1wbGUgbGFiZWwiLCAicXVldWUubGFiZWwgd2FzIHNldC4iKTsKK30sICJnZXRRdWV1ZSgp
IG9uIFdlYkdQVURldmljZS4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>